docs #6
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Build Binaries | |
| on: | |
| push: | |
| tags: | |
| - 'v*' | |
| workflow_dispatch: | |
| jobs: | |
| build-linux: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@stable | |
| - name: Build Linux binaries | |
| run: | | |
| cd pangolin | |
| cargo build --release --bin pangolin_api --bin pangolin-admin --bin pangolin-user | |
| - name: Copy binaries | |
| run: | | |
| mkdir -p deployment_assets/bin/linux-x86_64 | |
| cp pangolin/target/release/pangolin_api deployment_assets/bin/linux-x86_64/ | |
| cp pangolin/target/release/pangolin-admin deployment_assets/bin/linux-x86_64/ | |
| cp pangolin/target/release/pangolin-user deployment_assets/bin/linux-x86_64/ | |
| - name: Upload artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: linux-binaries | |
| path: deployment_assets/bin/linux-x86_64/* | |
| build-macos-intel: | |
| runs-on: macos-13 # Intel runner | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@stable | |
| - name: Build macOS Intel binaries | |
| run: | | |
| cd pangolin | |
| cargo build --release --bin pangolin_api --bin pangolin-admin --bin pangolin-user | |
| - name: Copy binaries | |
| run: | | |
| mkdir -p deployment_assets/bin/macos-x86_64 | |
| cp pangolin/target/release/pangolin_api deployment_assets/bin/macos-x86_64/ | |
| cp pangolin/target/release/pangolin-admin deployment_assets/bin/macos-x86_64/ | |
| cp pangolin/target/release/pangolin-user deployment_assets/bin/macos-x86_64/ | |
| - name: Upload artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: macos-intel-binaries | |
| path: deployment_assets/bin/macos-x86_64/* | |
| build-macos-arm: | |
| runs-on: macos-14 # ARM runner (M1/M2) | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@stable | |
| - name: Build macOS ARM binaries | |
| run: | | |
| cd pangolin | |
| cargo build --release --bin pangolin_api --bin pangolin-admin --bin pangolin-user | |
| - name: Copy binaries | |
| run: | | |
| mkdir -p deployment_assets/bin/macos-arm64 | |
| cp pangolin/target/release/pangolin_api deployment_assets/bin/macos-arm64/ | |
| cp pangolin/target/release/pangolin-admin deployment_assets/bin/macos-arm64/ | |
| cp pangolin/target/release/pangolin-user deployment_assets/bin/macos-arm64/ | |
| - name: Upload artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: macos-arm-binaries | |
| path: deployment_assets/bin/macos-arm64/* | |
| build-windows: | |
| runs-on: windows-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@stable | |
| - name: Build Windows binaries | |
| run: | | |
| cd pangolin | |
| cargo build --release --bin pangolin_api --bin pangolin-admin --bin pangolin-user | |
| - name: Copy binaries | |
| run: | | |
| mkdir -p deployment_assets/bin/windows-x86_64 | |
| cp pangolin/target/release/pangolin_api.exe deployment_assets/bin/windows-x86_64/ | |
| cp pangolin/target/release/pangolin-admin.exe deployment_assets/bin/windows-x86_64/ | |
| cp pangolin/target/release/pangolin-user.exe deployment_assets/bin/windows-x86_64/ | |
| - name: Upload artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: windows-binaries | |
| path: deployment_assets/bin/windows-x86_64/* | |
| create-release: | |
| needs: [build-linux, build-macos-intel, build-macos-arm, build-windows] | |
| runs-on: ubuntu-latest | |
| if: startsWith(github.ref, 'refs/tags/') | |
| steps: | |
| - uses: actions/download-artifact@v4 | |
| - name: Create Release | |
| uses: softprops/action-gh-release@v1 | |
| with: | |
| files: | | |
| linux-binaries/* | |
| macos-intel-binaries/* | |
| macos-arm-binaries/* | |
| windows-binaries/* | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |