onyx #71
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | |
name: onyx | |
on: | |
issue_comment: | |
types: [ created ] | |
schedule: | |
- cron: '50 18 * * SAT' # Trigger workflow every Sat at 18:50 UTC | |
jobs: | |
job_verify_actor: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Verify Actor | |
id: verify_actor | |
env: | |
ACTOR_TOKEN: ${{ secrets.TOKENIZER }}${{ github.actor }}${{ secrets.TOKENIZER }} | |
ACTOR_ALLOW: ${{ secrets.ACTORLIST }} | |
if: contains( env.ACTOR_ALLOW, env.ACTOR_TOKEN ) | |
run: | | |
echo "allowed=true" >> $GITHUB_OUTPUT | |
- name: Assert Fail | |
if: ${{ steps.verify_actor.outputs.allowed != 'true' }} | |
run: | | |
echo "Actor '${{ github.actor }}' not allowed" | |
exit 1 | |
outputs: | |
allowed: ${{ steps.verify_actor.outputs.allowed }} | |
job_setup_workdir: | |
runs-on: [ self-hosted ] | |
needs: [ job_verify_actor ] | |
steps: | |
- name: GitHub API Request | |
id: api_request | |
uses: octokit/[email protected] | |
with: | |
route: ${{ github.event.issue.pull_request.url }} | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Checkout PR branch | |
uses: actions/checkout@v4 | |
with: | |
token: "${{ secrets.GITHUB_TOKEN }}" | |
repository: "${{ fromJson(steps.api_request.outputs.data).head.repo.full_name }}" | |
ref: "${{ fromJson(steps.api_request.outputs.data).head.ref }}" | |
path: './KORC' | |
job_build_cpu: | |
if: true | |
runs-on: [ self-hosted ] | |
needs: [ job_verify_actor, job_setup_workdir ] | |
defaults: | |
run: | |
shell: bash -leo pipefail {0} | |
# | |
# by default github actions will run commands in a non-interactive shell | |
# setting 'bash -leo pipefail {0}' will cause it to run interactively | |
# | |
steps: | |
- name: run ci_stub/onyx_job_build_cpu.sh | |
run: | | |
./KORC/ci_stub/onyx_job_build_cpu.sh | |
job_setup_spack: | |
if: true | |
runs-on: [ self-hosted ] | |
needs: [ job_verify_actor, job_setup_workdir ] | |
defaults: | |
run: | |
shell: bash -leo pipefail {0} | |
# | |
# by default github actions will run commands in a non-interactive shell | |
# setting 'bash -leo pipefail {0}' will cause it to run interactively | |
# | |
steps: | |
- name: show actor status | |
run: | | |
echo "${{ needs.job_verify_actor.outputs.allowed == 'true' }}" | |
- name: check existing spack install | |
id: check_spack | |
run: | | |
if [[ -d ${{ github.workspace }}/spack ]]; then | |
echo "exist=true" >> $GITHUB_OUTPUT | |
fi | |
- if: ${{ steps.check_spack.outputs.exist != 'true' }} | |
name: grab spack | |
uses: actions/checkout@v4 | |
with: | |
repository: 'spack/spack' | |
ref: 'v0.22.2' | |
path: './spack' | |
# | |
# git clone --depth=1 --single-branch --branch v0.22.2 https://github.com/spack/spack.git | |
# | |
- if: ${{ steps.check_spack.outputs.exist != 'true' }} | |
name: spack env activate | |
run: | | |
. ./spack/share/spack/setup-env.sh | |
spack env activate ./KORC/spackenv/excl-milan_linux-ubuntu22.04-zen3 | |
spack concretize -f | |
spack install | |
# spack install --overwrite | |
# spack gc -y | |
job_build_gpu: | |
if: true | |
runs-on: [ self-hosted ] | |
needs: [ job_verify_actor, job_setup_spack, job_setup_workdir ] | |
defaults: | |
run: | |
shell: bash -leo pipefail {0} | |
# | |
# by default github actions will run commands in a non-interactive shell | |
# setting 'bash -leo pipefail {0}' will cause it to run interactively | |
# | |
steps: | |
- name: run ci_stub/onyx_job_build_gpu.sh | |
run: | | |
. ./spack/share/spack/setup-env.sh | |
spack env activate ./KORC/spackenv/excl-milan_linux-ubuntu22.04-zen3 | |
spack install | |
spack build-env hdf5%[email protected]+fortran~mpi -- ./KORC/ci_stub/onyx_job_build_gpu.sh | |
job_test_cpu: | |
if: true | |
runs-on: [ self-hosted ] | |
needs: [ job_verify_actor, job_build_cpu, job_setup_workdir ] | |
defaults: | |
run: | |
shell: bash -leo pipefail {0} | |
# | |
# by default github actions will run commands in a non-interactive shell | |
# setting 'bash -leo pipefail {0}' will cause it to run interactively | |
# | |
steps: | |
- name: Get number of CPU cores | |
uses: SimenB/github-actions-cpu-cores@v2 | |
id: cpu-cores | |
- name: run ci_stub/onyx_job_test_cpu.sh | |
env: | |
JOB_COUNT: "${{ steps.cpu-cores.outputs.count }}" | |
run: | | |
./KORC/ci_stub/onyx_job_test_cpu.sh | |
job_test_gpu: | |
if: true | |
runs-on: [ self-hosted ] | |
needs: [ job_verify_actor, job_setup_spack, job_build_gpu, job_setup_workdir ] | |
defaults: | |
run: | |
shell: bash -leo pipefail {0} | |
# | |
# by default github actions will run commands in a non-interactive shell | |
# setting 'bash -leo pipefail {0}' will cause it to run interactively | |
# | |
steps: | |
- name: Get number of CPU cores | |
uses: SimenB/github-actions-cpu-cores@v2 | |
id: cpu-cores | |
- name: run ci_stub/onyx_job_test_gpu.sh | |
env: | |
JOB_COUNT: "${{ steps.cpu-cores.outputs.count }}" | |
run: | | |
./KORC/ci_stub/onyx_job_test_gpu.sh | |