mirror of
https://github.com/vosen/ZLUDA.git
synced 2025-07-25 13:16:23 +03:00
128 lines
3.9 KiB
YAML
128 lines
3.9 KiB
YAML
name: ZLUDA
|
|
on:
|
|
pull_request:
|
|
branches: [ master ]
|
|
|
|
env:
|
|
CARGO_TERM_COLOR: always
|
|
CARGO_PROFILE: release
|
|
SCCACHE_GHA_ENABLED: "true"
|
|
RUSTC_WRAPPER: "sccache"
|
|
ROCM_VERSION: "6.3.1"
|
|
|
|
jobs:
|
|
build_linux:
|
|
name: Build (Linux)
|
|
runs-on: ubuntu-22.04
|
|
steps:
|
|
- uses: jlumbroso/free-disk-space@main
|
|
with:
|
|
# Removing Android stuff should be enough
|
|
android: true
|
|
dotnet: false
|
|
haskell: false
|
|
large-packages: false
|
|
docker-images: false
|
|
swap-storage: false
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
submodules: true
|
|
- name: Install ROCm
|
|
run: sudo bash .github/workflows/rocm_setup_build.sh ${{ env.ROCM_VERSION }}
|
|
- name: Run sccache-cache
|
|
uses: mozilla-actions/sccache-action@v0.0.9
|
|
- name: Build
|
|
# https://github.com/actions/upload-artifact/issues/39
|
|
run: |
|
|
cargo xtask zip --profile ${{ env.CARGO_PROFILE }}
|
|
mkdir target/${{ env.CARGO_PROFILE }}/zluda
|
|
tar -xzf target/${{ env.CARGO_PROFILE }}/zluda.tar.gz -C target/${{ env.CARGO_PROFILE }}/zluda
|
|
- 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/${{ env.CARGO_PROFILE }}/zluda
|
|
build_windows:
|
|
name: Build (Windows)
|
|
runs-on: windows-2022
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
submodules: true
|
|
- name: Run sccache-cache
|
|
uses: mozilla-actions/sccache-action@v0.0.9
|
|
- name: Build
|
|
run: |
|
|
cargo xtask zip --profile ${{ env.CARGO_PROFILE }}
|
|
Expand-Archive -Path target/${{ env.CARGO_PROFILE }}/zluda.zip -DestinationPath target/${{ env.CARGO_PROFILE }}/zluda
|
|
- 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/${{ env.CARGO_PROFILE }}/zluda
|
|
build_tests:
|
|
name: Build AMD GPU unit tests
|
|
runs-on: ubuntu-22.04
|
|
outputs:
|
|
test_package: ${{ steps.upload_artifacts.outputs.artifact-id }}
|
|
steps:
|
|
- uses: jlumbroso/free-disk-space@main
|
|
with:
|
|
# Removing Android stuff should be enough
|
|
android: true
|
|
dotnet: false
|
|
haskell: false
|
|
large-packages: false
|
|
docker-images: false
|
|
swap-storage: false
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
submodules: true
|
|
- name: Install ROCm
|
|
run: sudo bash .github/workflows/rocm_setup_build.sh ${{ env.ROCM_VERSION }}
|
|
- name: Run sccache-cache
|
|
uses: mozilla-actions/sccache-action@v0.0.9
|
|
- uses: taiki-e/install-action@v2
|
|
with:
|
|
tool: cargo-export
|
|
- name: Build
|
|
run: |
|
|
cargo export target/tests -- test --features ci_build --workspace --exclude cuda_base --exclude ptx_parser_macros
|
|
mkdir -p target/amdgpu
|
|
bash .github/workflows/move_tests.sh target/tests amdgpu
|
|
strip target/amdgpu/*
|
|
- name: Upload
|
|
id: upload_artifacts
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: tests
|
|
path: target/amdgpu
|
|
retention-days: 7
|
|
run_tests:
|
|
name: Run AMD GPU unit tests
|
|
runs-on: gpu_small
|
|
needs: [build_tests]
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
submodules: false
|
|
sparse-checkout: .github
|
|
- name: Install ROCm
|
|
run: sudo bash .github/workflows/rocm_setup_run.sh ${{ env.ROCM_VERSION }}
|
|
- uses: actions/download-artifact@v4
|
|
with:
|
|
artifact-ids: ${{ needs.build_tests.outputs.test_package }}
|
|
path: target
|
|
- name: Run tests
|
|
run: |
|
|
chmod +x target/tests/*
|
|
error_occurred=0
|
|
for exe in target/tests/*; do
|
|
./"$exe" _amdgpu || { error_occurred=1; true; }
|
|
done
|
|
exit $error_occurred
|