mirror of
https://github.com/vosen/ZLUDA.git
synced 2025-08-02 14:57:43 +03:00
Add nightly tests (#433)
This commit is contained in:
56
.github/workflows/nightly_tests.yml
vendored
Normal file
56
.github/workflows/nightly_tests.yml
vendored
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
name: Nightly tests
|
||||||
|
on:
|
||||||
|
workflow_call:
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
env:
|
||||||
|
ROCM_VERSION: "6.3.1"
|
||||||
|
TEST_THREADS: 24
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
run_tests:
|
||||||
|
runs-on: gpu_large
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
repository: 'vosen/ZLUDA'
|
||||||
|
path: zluda-src
|
||||||
|
sparse-checkout: |
|
||||||
|
.github/workflows/rocm_setup_run.sh
|
||||||
|
- name: Install ROCm
|
||||||
|
run: sudo bash zluda-src/.github/workflows/rocm_setup_run.sh ${{ env.ROCM_VERSION }}
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
repository: 'vosen/ptx_tests'
|
||||||
|
- uses: robinraju/release-downloader@v1
|
||||||
|
with:
|
||||||
|
repository: 'vosen/ZLUDA'
|
||||||
|
latest: true
|
||||||
|
preRelease: true
|
||||||
|
extract: true
|
||||||
|
fileName: 'zluda-linux-*.tar.gz'
|
||||||
|
- name: Build and run
|
||||||
|
run: |
|
||||||
|
pids=()
|
||||||
|
exit_codes=()
|
||||||
|
for i in $(seq 0 $((${{ env.TEST_THREADS }} - 1))); do
|
||||||
|
cargo run -r -- zluda/libcuda.so.1 --shard-index $i --shard-count ${{ env.TEST_THREADS }} > output_$i.log 2>&1 &
|
||||||
|
pids+=($!)
|
||||||
|
done
|
||||||
|
for pid in "${pids[@]}"; do
|
||||||
|
wait $pid
|
||||||
|
exit_codes+=($?)
|
||||||
|
done
|
||||||
|
error_occurred=0
|
||||||
|
for i in "${!exit_codes[@]}"; do
|
||||||
|
if [ ${exit_codes[$i]} -ne 0 ]; then
|
||||||
|
error_occurred=1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
exit $error_occurred
|
||||||
|
- name: Upload logs
|
||||||
|
if: always()
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: output_logs
|
||||||
|
path: output_*.log
|
24
.github/workflows/trigger_nightly_tests.yml
vendored
Normal file
24
.github/workflows/trigger_nightly_tests.yml
vendored
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
name: Nightly tests
|
||||||
|
on:
|
||||||
|
schedule:
|
||||||
|
- cron: "0 8 * * *"
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
check_last_nightly_run:
|
||||||
|
runs-on: 'ubuntu-latest'
|
||||||
|
outputs:
|
||||||
|
last_sha: ${{ fromJson(steps.check_last_run.outputs.data).workflow_runs[0].head_sha }}
|
||||||
|
steps:
|
||||||
|
- uses: octokit/request-action@v2.4
|
||||||
|
id: check_last_run
|
||||||
|
with:
|
||||||
|
route: GET /repos/${{github.repository}}/actions/workflows/nightly_tests.yml/runs?per_page=1&status=completed
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
- run: "echo Last nightly build: ${{ fromJson(steps.check_last_run.outputs.data).workflow_runs[0].head_sha }}"
|
||||||
|
build:
|
||||||
|
runs-on: gpu_large
|
||||||
|
needs: [check_last_nightly_run]
|
||||||
|
if: needs.check_last_nightly_run.outputs.last_sha != github.sha
|
||||||
|
uses: ./.github/workflows/nightly_tests.yml
|
||||||
|
secrets: inherit
|
Reference in New Issue
Block a user