Fix publish order: codegen must precede cuda-codegen and wgpu-codegen #11
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: Release | |
| on: | |
| push: | |
| tags: | |
| - 'v*' | |
| workflow_dispatch: | |
| inputs: | |
| tag: | |
| description: 'Tag to build (e.g., v0.1.1)' | |
| required: true | |
| env: | |
| CARGO_TERM_COLOR: always | |
| jobs: | |
| build-linux-cpu: | |
| name: Linux CPU | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install system dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y \ | |
| libxkbcommon-dev \ | |
| libwayland-dev \ | |
| libxcb-render0-dev \ | |
| libxcb-shape0-dev \ | |
| libxcb-xfixes0-dev \ | |
| libgtk-3-dev \ | |
| libssl-dev \ | |
| pkg-config | |
| - uses: dtolnay/rust-toolchain@stable | |
| - uses: Swatinem/rust-cache@v2 | |
| with: | |
| key: linux-cpu | |
| - name: Build WaveSim | |
| run: cargo build -p ringkernel-wavesim --release --no-default-features --features cpu | |
| - name: Build TxMon | |
| run: cargo build -p ringkernel-txmon --release --features cpu | |
| - name: Build AccNet | |
| run: cargo build -p ringkernel-accnet --release | |
| - name: Build ProcInt | |
| run: cargo build -p ringkernel-procint --release | |
| - name: Package binaries | |
| run: | | |
| mkdir -p dist | |
| cp target/release/wavesim dist/ | |
| cp target/release/txmon dist/ | |
| cp target/release/accnet dist/ | |
| cp target/release/procint dist/ | |
| cd dist | |
| tar -czvf ../ringkernel-showcase-linux-x86_64-cpu.tar.gz * | |
| - name: Upload artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: linux-cpu | |
| path: ringkernel-showcase-linux-x86_64-cpu.tar.gz | |
| build-linux-cuda: | |
| name: Linux CUDA | |
| runs-on: ubuntu-22.04 # Use 22.04 for CUDA compatibility | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install system dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y \ | |
| libxkbcommon-dev \ | |
| libwayland-dev \ | |
| libxcb-render0-dev \ | |
| libxcb-shape0-dev \ | |
| libxcb-xfixes0-dev \ | |
| libgtk-3-dev \ | |
| libssl-dev \ | |
| pkg-config | |
| - name: Install CUDA toolkit | |
| uses: Jimver/cuda-toolkit@v0.2.16 | |
| with: | |
| cuda: '12.5.0' | |
| method: 'network' | |
| sub-packages: '["nvcc", "cudart"]' | |
| - uses: dtolnay/rust-toolchain@stable | |
| - uses: Swatinem/rust-cache@v2 | |
| with: | |
| key: linux-cuda | |
| - name: Build WaveSim (CUDA) | |
| run: cargo build -p ringkernel-wavesim --release --features cuda-codegen | |
| - name: Build TxMon (CUDA) | |
| run: cargo build -p ringkernel-txmon --release --features cuda-codegen | |
| - name: Build AccNet (CUDA) | |
| run: cargo build -p ringkernel-accnet --release --features cuda | |
| - name: Build ProcInt (CUDA) | |
| run: cargo build -p ringkernel-procint --release --features cuda | |
| - name: Package binaries | |
| run: | | |
| mkdir -p dist | |
| cp target/release/wavesim dist/ | |
| cp target/release/txmon dist/ | |
| cp target/release/accnet dist/ | |
| cp target/release/procint dist/ | |
| cd dist | |
| tar -czvf ../ringkernel-showcase-linux-x86_64-cuda.tar.gz * | |
| - name: Upload artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: linux-cuda | |
| path: ringkernel-showcase-linux-x86_64-cuda.tar.gz | |
| build-windows-cpu: | |
| name: Windows CPU | |
| runs-on: windows-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@stable | |
| - uses: Swatinem/rust-cache@v2 | |
| with: | |
| key: windows-cpu | |
| - name: Build WaveSim | |
| run: cargo build -p ringkernel-wavesim --release --no-default-features --features cpu | |
| - name: Build TxMon | |
| run: cargo build -p ringkernel-txmon --release --features cpu | |
| - name: Build AccNet | |
| run: cargo build -p ringkernel-accnet --release | |
| - name: Build ProcInt | |
| run: cargo build -p ringkernel-procint --release | |
| - name: Package binaries | |
| shell: pwsh | |
| run: | | |
| New-Item -ItemType Directory -Force -Path dist | |
| Copy-Item target/release/wavesim.exe dist/ | |
| Copy-Item target/release/txmon.exe dist/ | |
| Copy-Item target/release/accnet.exe dist/ | |
| Copy-Item target/release/procint.exe dist/ | |
| Compress-Archive -Path dist/* -DestinationPath ringkernel-showcase-windows-x86_64-cpu.zip | |
| - name: Upload artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: windows-cpu | |
| path: ringkernel-showcase-windows-x86_64-cpu.zip | |
| build-windows-cuda: | |
| name: Windows CUDA | |
| runs-on: windows-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install CUDA toolkit | |
| uses: Jimver/cuda-toolkit@v0.2.16 | |
| with: | |
| cuda: '12.5.0' | |
| method: 'network' | |
| sub-packages: '["nvcc", "cudart"]' | |
| - uses: dtolnay/rust-toolchain@stable | |
| - uses: Swatinem/rust-cache@v2 | |
| with: | |
| key: windows-cuda | |
| - name: Build WaveSim (CUDA) | |
| run: cargo build -p ringkernel-wavesim --release --features cuda-codegen | |
| - name: Build TxMon (CUDA) | |
| run: cargo build -p ringkernel-txmon --release --features cuda-codegen | |
| - name: Build AccNet (CUDA) | |
| run: cargo build -p ringkernel-accnet --release --features cuda | |
| - name: Build ProcInt (CUDA) | |
| run: cargo build -p ringkernel-procint --release --features cuda | |
| - name: Package binaries | |
| shell: pwsh | |
| run: | | |
| New-Item -ItemType Directory -Force -Path dist | |
| Copy-Item target/release/wavesim.exe dist/ | |
| Copy-Item target/release/txmon.exe dist/ | |
| Copy-Item target/release/accnet.exe dist/ | |
| Copy-Item target/release/procint.exe dist/ | |
| Compress-Archive -Path dist/* -DestinationPath ringkernel-showcase-windows-x86_64-cuda.zip | |
| - name: Upload artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: windows-cuda | |
| path: ringkernel-showcase-windows-x86_64-cuda.zip | |
| release: | |
| name: Create Release | |
| needs: [build-linux-cpu, build-linux-cuda, build-windows-cpu, build-windows-cuda] | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: write | |
| steps: | |
| - name: Download all artifacts | |
| uses: actions/download-artifact@v4 | |
| with: | |
| path: artifacts | |
| - name: List artifacts | |
| run: find artifacts -type f | |
| - name: Upload to Release | |
| uses: softprops/action-gh-release@v2 | |
| if: startsWith(github.ref, 'refs/tags/') | |
| with: | |
| files: | | |
| artifacts/linux-cpu/*.tar.gz | |
| artifacts/linux-cuda/*.tar.gz | |
| artifacts/windows-cpu/*.zip | |
| artifacts/windows-cuda/*.zip | |
| fail_on_unmatched_files: false | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Upload to manual release | |
| if: github.event_name == 'workflow_dispatch' | |
| uses: softprops/action-gh-release@v2 | |
| with: | |
| tag_name: ${{ github.event.inputs.tag }} | |
| files: | | |
| artifacts/linux-cpu/*.tar.gz | |
| artifacts/linux-cuda/*.tar.gz | |
| artifacts/windows-cpu/*.zip | |
| artifacts/windows-cuda/*.zip | |
| fail_on_unmatched_files: false | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |