Skip to content

Fix publish order: codegen must precede cuda-codegen and wgpu-codegen #11

Fix publish order: codegen must precede cuda-codegen and wgpu-codegen

Fix publish order: codegen must precede cuda-codegen and wgpu-codegen #11

Workflow file for this run

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 }}