aboutsummaryrefslogtreecommitdiffhomepage
path: root/.github/workflows/rust.yml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/rust.yml')
-rw-r--r--.github/workflows/rust.yml67
1 files changed, 67 insertions, 0 deletions
diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml
new file mode 100644
index 0000000..a9037fd
--- /dev/null
+++ b/.github/workflows/rust.yml
@@ -0,0 +1,67 @@
+name: Rust
+on:
+ push:
+ branches: [ master ]
+ pull_request:
+ branches: [ master ]
+
+env:
+ CARGO_TERM_COLOR: always
+ ROCM_VERSION: "5.7.3"
+
+jobs:
+ build_lin:
+ name: Build and publish (Linux)
+ runs-on: ubuntu-20.04
+ steps:
+ - uses: jlumbroso/free-disk-space@main
+ - name: Install ROCm
+ run: |
+ sudo mkdir --parents --mode=0755 /etc/apt/keyrings
+ sudo sh -c 'wget https://repo.radeon.com/rocm/rocm.gpg.key -O - | gpg --dearmor | tee /etc/apt/keyrings/rocm.gpg > /dev/null'
+ sudo sh -c 'echo deb [arch=amd64 signed-by=/etc/apt/keyrings/rocm.gpg] https://repo.radeon.com/rocm/apt/${{ env.ROCM_VERSION }} focal main > /etc/apt/sources.list.d/rocm.list'
+ sudo apt-get update
+ sudo DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends rocm-smi-lib hip-runtime-amd comgr hipblaslt-dev hipfft-dev rocblas-dev rocsolver-dev rocsparse-dev miopen-hip-dev rocm-device-libs
+ echo 'export PATH="$PATH:/opt/rocm/bin"' | sudo tee /etc/profile.d/rocm.sh
+ echo '/opt/rocm/lib' | sudo tee /etc/ld.so.conf.d/rocm.conf
+ sudo ldconfig
+ - uses: actions/checkout@v4
+ with:
+ submodules: true
+ - uses: Swatinem/rust-cache@v2
+ - name: Build
+ # We use tar to unpack .tar.gz we've created because Github actions/upload-artifact
+ # is broken and will _always_ zip your artifact (even if it is a single file).
+ # See here: https://github.com/actions/upload-artifact/issues/39
+ # and here: https://github.com/actions/upload-artifact/issues/109
+ run: |
+ cargo xtask zip -r
+ tar -xzf target/release/zluda.tar.gz -C target/release
+ # https://stackoverflow.com/a/64195658
+ - name: Set revision hash
+ run: echo "SHORT_SHA=$(git rev-parse --short HEAD)" >> $GITHUB_ENV
+ - name: Upload
+ uses: actions/upload-artifact@v4
+ with:
+ name: zluda-linux-${{ env.SHORT_SHA }}
+ path: target/release/zluda
+ build_win:
+ name: Build and publish (Windows)
+ runs-on: windows-2019
+ steps:
+ - uses: actions/checkout@v4
+ with:
+ submodules: true
+ - uses: Swatinem/rust-cache@v2
+ - name: Build
+ run: |
+ cargo xtask zip -r
+ Expand-Archive -Path target/release/zluda.zip -DestinationPath target/release
+ # https://stackoverflow.com/a/74033027
+ - name: Set revision hash
+ run: echo "SHORT_SHA=$("${{ github.sha }}".SubString(0, 7))" >> $env:GITHUB_ENV
+ - name: Upload
+ uses: actions/upload-artifact@v4
+ with:
+ name: zluda-windows-${{ env.SHORT_SHA }}
+ path: target/release/zluda