diff options
author | Andrzej Janik <[email protected]> | 2024-04-28 01:22:43 +0200 |
---|---|---|
committer | GitHub <[email protected]> | 2024-04-28 01:22:43 +0200 |
commit | 995bc951745db30e39a1ff0c909f9a95b12c4ec7 (patch) | |
tree | 21af8d80797466ee7da0a45ca0df78949055a616 /.github/workflows/rust.yml | |
parent | 5d5f7cca75115b1a47255120e4ca1236f01a2828 (diff) | |
download | ZLUDA-995bc951745db30e39a1ff0c909f9a95b12c4ec7.tar.gz ZLUDA-995bc951745db30e39a1ff0c909f9a95b12c4ec7.zip |
Build improvements (#206)
* Allow to create .zip package on Windows
* Allow to create .tar.gz package on Linux
* Add configuration for post-build Github CI
Diffstat (limited to '.github/workflows/rust.yml')
-rw-r--r-- | .github/workflows/rust.yml | 67 |
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 |