| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
|
| name: Multi Channel Release |
| 'on': |
| release: |
| types: |
| - published |
| permissions: |
| contents: write |
| pull-requests: write |
| jobs: |
| build_release: |
| name: build-release |
| runs-on: ${{ matrix.os }} |
| permissions: |
| contents: write |
| pull-requests: write |
| strategy: |
| matrix: |
| include: |
| - binary_name: forge-x86_64-unknown-linux-musl |
| binary_path: target/x86_64-unknown-linux-musl/release/forge |
| cross: 'true' |
| os: ubuntu-latest |
| target: x86_64-unknown-linux-musl |
| - binary_name: forge-aarch64-unknown-linux-musl |
| binary_path: target/aarch64-unknown-linux-musl/release/forge |
| cross: 'true' |
| os: ubuntu-latest |
| target: aarch64-unknown-linux-musl |
| - binary_name: forge-x86_64-unknown-linux-gnu |
| binary_path: target/x86_64-unknown-linux-gnu/release/forge |
| cross: 'false' |
| os: ubuntu-latest |
| target: x86_64-unknown-linux-gnu |
| - binary_name: forge-aarch64-unknown-linux-gnu |
| binary_path: target/aarch64-unknown-linux-gnu/release/forge |
| cross: 'true' |
| os: ubuntu-latest |
| target: aarch64-unknown-linux-gnu |
| - binary_name: forge-x86_64-apple-darwin |
| binary_path: target/x86_64-apple-darwin/release/forge |
| cross: 'false' |
| os: macos-latest |
| target: x86_64-apple-darwin |
| - binary_name: forge-aarch64-apple-darwin |
| binary_path: target/aarch64-apple-darwin/release/forge |
| cross: 'false' |
| os: macos-latest |
| target: aarch64-apple-darwin |
| - binary_name: forge-x86_64-pc-windows-msvc.exe |
| binary_path: target/x86_64-pc-windows-msvc/release/forge.exe |
| cross: 'false' |
| os: windows-latest |
| target: x86_64-pc-windows-msvc |
| - binary_name: forge-aarch64-pc-windows-msvc.exe |
| binary_path: target/aarch64-pc-windows-msvc/release/forge.exe |
| cross: 'false' |
| os: windows-latest |
| target: aarch64-pc-windows-msvc |
| - binary_name: forge-aarch64-linux-android |
| binary_path: target/aarch64-linux-android/release/forge |
| cross: 'true' |
| os: ubuntu-latest |
| target: aarch64-linux-android |
| steps: |
| - name: Checkout Code |
| uses: actions/checkout@v6 |
| - name: Setup Protobuf Compiler |
| if: ${{ matrix.cross == 'false' }} |
| uses: arduino/setup-protoc@v3 |
| with: |
| repo-token: ${{ secrets.GITHUB_TOKEN }} |
| - name: Setup Cross Toolchain |
| if: ${{ matrix.cross == 'false' }} |
| uses: taiki-e/setup-cross-toolchain-action@v1 |
| with: |
| target: ${{ matrix.target }} |
| - name: Add Rust target |
| if: ${{ matrix.cross == 'false' }} |
| run: rustup target add ${{ matrix.target }} |
| - name: Set Rust Flags |
| if: '!(contains(matrix.target, ''-unknown-linux-'') || contains(matrix.target, ''-android''))' |
| run: echo "RUSTFLAGS=-C target-feature=+crt-static" >> $GITHUB_ENV |
| - name: Build Binary |
| uses: ClementTsang/cargo-action@v0.0.7 |
| with: |
| command: build --release |
| args: '--target ${{ matrix.target }}' |
| use-cross: ${{ matrix.cross }} |
| cross-version: '0.2.5' |
| env: |
| RUSTFLAGS: ${{ env.RUSTFLAGS }} |
| POSTHOG_API_SECRET: ${{secrets.POSTHOG_API_SECRET}} |
| APP_VERSION: ${{ github.event.release.tag_name }} |
| - name: Copy Binary |
| run: cp ${{ matrix.binary_path }} ${{ matrix.binary_name }} |
| - name: Upload to Release |
| uses: xresloader/upload-to-github-release@v1 |
| with: |
| release_id: ${{ github.event.release.id }} |
| file: ${{ matrix.binary_name }} |
| overwrite: 'true' |
| npm_release: |
| needs: |
| - build_release |
| name: npm_release |
| runs-on: ubuntu-latest |
| strategy: |
| matrix: |
| repository: |
| - antinomyhq/npm-code-forge |
| - antinomyhq/npm-forgecode |
| steps: |
| - name: Checkout Code |
| uses: actions/checkout@v6 |
| with: |
| repository: ${{ matrix.repository }} |
| ref: main |
| token: ${{ secrets.NPM_ACCESS }} |
| - name: Update NPM Package |
| run: './update-package.sh ${{ github.event.release.tag_name }}' |
| env: |
| AUTO_PUSH: 'true' |
| CI: 'true' |
| NPM_TOKEN: ${{ secrets.NPM_TOKEN }} |
| homebrew_release: |
| needs: |
| - build_release |
| name: homebrew_release |
| runs-on: ubuntu-latest |
| steps: |
| - name: Checkout Code |
| uses: actions/checkout@v6 |
| with: |
| repository: antinomyhq/homebrew-code-forge |
| ref: main |
| token: ${{ secrets.HOMEBREW_ACCESS }} |
| - name: Update Homebrew Formula |
| run: GITHUB_TOKEN="${{ secrets.HOMEBREW_ACCESS }}" ./update-formula.sh ${{ github.event.release.tag_name }} |
|
|