mirror of https://github.com/QMCPACK/qmcpack.git
296 lines
12 KiB
YAML
296 lines
12 KiB
YAML
name: ornl CI
|
|
|
|
on:
|
|
issue_comment:
|
|
types: [created]
|
|
|
|
jobs:
|
|
sulfur-cpu:
|
|
if: |
|
|
github.repository_owner == 'QMCPACK' &&
|
|
github.event.issue.pull_request &&
|
|
startsWith(github.event.comment.body, 'Test this please')
|
|
|
|
runs-on: [self-hosted, Linux, X64, ornl-sulfur-1]
|
|
|
|
env:
|
|
GH_JOBNAME: ${{matrix.jobname}}
|
|
GH_OS: Linux
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
jobname: [
|
|
GCC11-NoMPI-MKL-Real-Mixed, # mixed precision
|
|
GCC11-NoMPI-MKL-Complex-Mixed,
|
|
GCC11-NoMPI-MKL-Real, # full precision
|
|
GCC11-NoMPI-MKL-Complex,
|
|
]
|
|
|
|
steps:
|
|
- name: Verify actor
|
|
# Only trigger for certain "actors" (those commenting the PR, not the PR originator)
|
|
# this is in-line with the current workflow
|
|
env:
|
|
ACTOR_TOKEN: ${{secrets.TOKENIZER}}${{github.actor}}${{secrets.TOKENIZER}}
|
|
SECRET_ACTORS: ${{secrets.CI_GPU_ACTORS}}
|
|
if: contains(env.SECRET_ACTORS, env.ACTOR_TOKEN)
|
|
id: check
|
|
run: |
|
|
echo "triggered=true" >> $GITHUB_OUTPUT
|
|
|
|
# Request repo info, required since issue_comment doesn't point at PR commit, but develop
|
|
- name: GitHub API Request
|
|
if: steps.check.outputs.triggered == 'true'
|
|
id: request
|
|
uses: octokit/request-action@v2.1.7
|
|
with:
|
|
route: ${{github.event.issue.pull_request.url}}
|
|
env:
|
|
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
|
|
|
|
# Create a separate PR status pointing at GitHub Actions tab URL
|
|
# just like any other third-party service
|
|
- name: Create PR status
|
|
if: steps.check.outputs.triggered == 'true'
|
|
uses: guibranco/github-status-action-v2@v1.1.7
|
|
with:
|
|
authToken: ${{secrets.GITHUB_TOKEN}}
|
|
context: "ornl-sulfur CI ${{ matrix.jobname }}"
|
|
state: "pending"
|
|
sha: ${{fromJson(steps.request.outputs.data).head.sha}}
|
|
target_url: https://github.com/${{github.repository}}/actions/runs/${{github.run_id}}
|
|
|
|
- name: Get PR information
|
|
if: steps.check.outputs.triggered == 'true'
|
|
id: pr_data
|
|
run: |
|
|
echo "branch=${{ fromJson(steps.request.outputs.data).head.ref }}" >> $GITHUB_OUTPUT
|
|
echo "repo_name=${{ fromJson(steps.request.outputs.data).head.repo.full_name }}" >> $GITHUB_OUTPUT
|
|
echo "repo_clone_url=${{ fromJson(steps.request.outputs.data).head.repo.clone_url }}" >> $GITHUB_OUTPUT
|
|
echo "repo_ssh_url=${{ fromJson(steps.request.outputs.data).head.repo.ssh_url }}" >> $GITHUB_OUTPUT
|
|
|
|
- name: Checkout PR branch
|
|
if: steps.check.outputs.triggered == 'true'
|
|
uses: actions/checkout@v4
|
|
with:
|
|
token: ${{secrets.GITHUB_TOKEN}}
|
|
repository: ${{fromJson(steps.request.outputs.data).head.repo.full_name}}
|
|
ref: ${{steps.pr_data.outputs.branch}}
|
|
|
|
- name: Configure
|
|
if: steps.check.outputs.triggered == 'true'
|
|
run: tests/test_automation/github-actions/ci/run_step_ornl-sulfur-1.sh configure
|
|
|
|
- name: Build
|
|
if: steps.check.outputs.triggered == 'true'
|
|
run: tests/test_automation/github-actions/ci/run_step_ornl-sulfur-1.sh build
|
|
|
|
- name: Test
|
|
if: steps.check.outputs.triggered == 'true'
|
|
run: tests/test_automation/github-actions/ci/run_step_ornl-sulfur-1.sh test
|
|
|
|
- name: Report PR status
|
|
if: always() && steps.check.outputs.triggered == 'true'
|
|
uses: guibranco/github-status-action-v2@v1.1.7
|
|
with:
|
|
authToken: ${{secrets.GITHUB_TOKEN}}
|
|
context: "ornl-sulfur CI ${{matrix.jobname}}"
|
|
state: ${{job.status}}
|
|
sha: ${{fromJson(steps.request.outputs.data).head.sha}}
|
|
target_url: https://github.com/${{github.repository}}/actions/runs/${{github.run_id}}
|
|
|
|
sulfur-cuda:
|
|
if: |
|
|
github.repository_owner == 'QMCPACK' &&
|
|
github.event.issue.pull_request &&
|
|
( startsWith(github.event.comment.body, 'Test this please') ||
|
|
startsWith(github.event.comment.body, 'Start testing in-house') )
|
|
|
|
runs-on: [self-hosted, Linux, X64, ornl-sulfur-2]
|
|
|
|
env:
|
|
GH_JOBNAME: ${{matrix.jobname}}
|
|
GH_OS: Linux
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
jobname: [
|
|
V100-Clang16-MPI-CUDA-AFQMC-Offload-Real-Mixed, # auxiliary field, offload
|
|
V100-Clang16-MPI-CUDA-AFQMC-Offload-Real,
|
|
V100-Clang16-MPI-CUDA-AFQMC-Offload-Complex-Mixed,
|
|
V100-Clang16-MPI-CUDA-AFQMC-Offload-Complex,
|
|
V100-GCC11-MPI-CUDA-Real-Mixed,
|
|
V100-GCC11-MPI-CUDA-Real,
|
|
V100-GCC11-MPI-CUDA-Complex-Mixed,
|
|
V100-GCC11-MPI-CUDA-Complex,
|
|
]
|
|
|
|
steps:
|
|
- name: Verify actor
|
|
# Only trigger for certain "actors" (those commenting the PR, not the PR originator)
|
|
# this is in-line with the current workflow
|
|
env:
|
|
ACTOR_TOKEN: ${{secrets.TOKENIZER}}${{github.actor}}${{secrets.TOKENIZER}}
|
|
SECRET_ACTORS: ${{secrets.CI_GPU_ACTORS}}
|
|
if: contains(env.SECRET_ACTORS, env.ACTOR_TOKEN)
|
|
id: check
|
|
run: |
|
|
echo "triggered=true" >> $GITHUB_OUTPUT
|
|
|
|
# Request repo info, required since issue_comment doesn't point at PR commit, but develop
|
|
- name: GitHub API Request
|
|
if: steps.check.outputs.triggered == 'true'
|
|
id: request
|
|
uses: octokit/request-action@v2.1.7
|
|
with:
|
|
route: ${{github.event.issue.pull_request.url}}
|
|
env:
|
|
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
|
|
|
|
# Create a separate PR status pointing at GitHub Actions tab URL
|
|
# just like any other third-party service
|
|
- name: Create PR status
|
|
if: steps.check.outputs.triggered == 'true'
|
|
uses: guibranco/github-status-action-v2@v1.1.7
|
|
with:
|
|
authToken: ${{secrets.GITHUB_TOKEN}}
|
|
context: "ornl-sulfur CI ${{ matrix.jobname }}"
|
|
state: "pending"
|
|
sha: ${{fromJson(steps.request.outputs.data).head.sha}}
|
|
target_url: https://github.com/${{github.repository}}/actions/runs/${{github.run_id}}
|
|
|
|
- name: Get PR information
|
|
if: steps.check.outputs.triggered == 'true'
|
|
id: pr_data
|
|
run: |
|
|
echo "branch=${{ fromJson(steps.request.outputs.data).head.ref }}" >> $GITHUB_OUTPUT
|
|
echo "repo_name=${{ fromJson(steps.request.outputs.data).head.repo.full_name }}" >> $GITHUB_OUTPUT
|
|
echo "repo_clone_url=${{ fromJson(steps.request.outputs.data).head.repo.clone_url }}" >> $GITHUB_OUTPUT
|
|
echo "repo_ssh_url=${{ fromJson(steps.request.outputs.data).head.repo.ssh_url }}" >> $GITHUB_OUTPUT
|
|
|
|
- name: Checkout PR branch
|
|
if: steps.check.outputs.triggered == 'true'
|
|
uses: actions/checkout@v4
|
|
with:
|
|
token: ${{secrets.GITHUB_TOKEN}}
|
|
repository: ${{fromJson(steps.request.outputs.data).head.repo.full_name}}
|
|
ref: ${{steps.pr_data.outputs.branch}}
|
|
|
|
- name: Configure
|
|
if: steps.check.outputs.triggered == 'true'
|
|
run: tests/test_automation/github-actions/ci/run_step_ornl-sulfur-2.sh configure
|
|
|
|
- name: Build
|
|
if: steps.check.outputs.triggered == 'true'
|
|
run: tests/test_automation/github-actions/ci/run_step_ornl-sulfur-2.sh build
|
|
|
|
- name: Test
|
|
if: steps.check.outputs.triggered == 'true'
|
|
run: tests/test_automation/github-actions/ci/run_step_ornl-sulfur-2.sh test
|
|
|
|
- name: Report PR status
|
|
if: always() && steps.check.outputs.triggered == 'true'
|
|
uses: guibranco/github-status-action-v2@v1.1.7
|
|
with:
|
|
authToken: ${{secrets.GITHUB_TOKEN}}
|
|
context: "ornl-sulfur CI ${{matrix.jobname}}"
|
|
state: ${{job.status}}
|
|
sha: ${{fromJson(steps.request.outputs.data).head.sha}}
|
|
target_url: https://github.com/${{github.repository}}/actions/runs/${{github.run_id}}
|
|
|
|
nitrogen-rocm:
|
|
if: |
|
|
github.repository_owner == 'QMCPACK' &&
|
|
github.event.issue.pull_request &&
|
|
( startsWith(github.event.comment.body, 'Test this please') ||
|
|
startsWith(github.event.comment.body, 'Start testing in-house') )
|
|
|
|
runs-on: [self-hosted, Linux, X64, ornl-nitrogen-1]
|
|
|
|
env:
|
|
GH_JOBNAME: ${{matrix.jobname}}
|
|
GH_OS: Linux
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
jobname:
|
|
[
|
|
RadeonVII-ROCm-NoMPI-CUDA2HIP-Real-Mixed,
|
|
RadeonVII-ROCm-NoMPI-CUDA2HIP-Real,
|
|
RadeonVII-ROCm-NoMPI-CUDA2HIP-Complex-Mixed,
|
|
RadeonVII-ROCm-NoMPI-CUDA2HIP-Complex,
|
|
]
|
|
|
|
steps:
|
|
- name: Verify actor
|
|
# Only trigger for certain "actors" (those commenting the PR, not the PR originator)
|
|
# this is in-line with the current workflow
|
|
env:
|
|
ACTOR_TOKEN: ${{secrets.TOKENIZER}}${{github.actor}}${{secrets.TOKENIZER}}
|
|
SECRET_ACTORS: ${{secrets.CI_GPU_ACTORS}}
|
|
if: contains(env.SECRET_ACTORS, env.ACTOR_TOKEN)
|
|
id: check
|
|
run: |
|
|
echo "triggered=true" >> $GITHUB_OUTPUT
|
|
|
|
# Request repo info, required since issue_comment doesn't point at PR commit, but develop
|
|
- name: GitHub API Request
|
|
if: steps.check.outputs.triggered == 'true'
|
|
id: request
|
|
uses: octokit/request-action@v2.1.7
|
|
with:
|
|
route: ${{github.event.issue.pull_request.url}}
|
|
env:
|
|
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
|
|
|
|
# Create a separate PR status pointing at GitHub Actions tab URL
|
|
# just like any other third-party service
|
|
- name: Create PR status
|
|
if: steps.check.outputs.triggered == 'true'
|
|
uses: guibranco/github-status-action-v2@v1.1.7
|
|
with:
|
|
authToken: ${{secrets.GITHUB_TOKEN}}
|
|
context: "ornl-nitrogen CI ${{matrix.jobname}}"
|
|
state: "pending"
|
|
sha: ${{fromJson(steps.request.outputs.data).head.sha}}
|
|
target_url: https://github.com/${{github.repository}}/actions/runs/${{github.run_id}}
|
|
|
|
- name: Get PR information
|
|
if: steps.check.outputs.triggered == 'true'
|
|
id: pr_data
|
|
run: |
|
|
echo "branch=${{ fromJson(steps.request.outputs.data).head.ref }}" >> $GITHUB_OUTPUT
|
|
echo "repo_name=${{ fromJson(steps.request.outputs.data).head.repo.full_name }}" >> $GITHUB_OUTPUT
|
|
echo "repo_clone_url=${{ fromJson(steps.request.outputs.data).head.repo.clone_url }}" >> $GITHUB_OUTPUT
|
|
echo "repo_ssh_url=${{ fromJson(steps.request.outputs.data).head.repo.ssh_url }}" >> $GITHUB_OUTPUT
|
|
|
|
- name: Checkout PR branch
|
|
if: steps.check.outputs.triggered == 'true'
|
|
uses: actions/checkout@v4
|
|
with:
|
|
token: ${{secrets.GITHUB_TOKEN}}
|
|
repository: ${{fromJson(steps.request.outputs.data).head.repo.full_name}}
|
|
ref: ${{steps.pr_data.outputs.branch}}
|
|
|
|
- name: Configure
|
|
if: steps.check.outputs.triggered == 'true'
|
|
run: tests/test_automation/github-actions/ci/run_step_ornl-nitrogen-1.sh configure
|
|
|
|
- name: Build
|
|
if: steps.check.outputs.triggered == 'true'
|
|
run: tests/test_automation/github-actions/ci/run_step_ornl-nitrogen-1.sh build
|
|
|
|
- name: Test
|
|
if: steps.check.outputs.triggered == 'true'
|
|
run: tests/test_automation/github-actions/ci/run_step_ornl-nitrogen-1.sh test
|
|
|
|
- name: Report PR status
|
|
if: always() && steps.check.outputs.triggered == 'true'
|
|
uses: guibranco/github-status-action-v2@v1.1.7
|
|
with:
|
|
authToken: ${{secrets.GITHUB_TOKEN}}
|
|
context: "ornl-nitrogen CI ${{matrix.jobname}}"
|
|
state: ${{job.status}}
|
|
sha: ${{fromJson(steps.request.outputs.data).head.sha}}
|
|
target_url: https://github.com/${{github.repository}}/actions/runs/${{github.run_id}}
|