Skip to content

Workflows: reworked actions and ways to skip eamxx testing jobs #38

Workflows: reworked actions and ways to skip eamxx testing jobs

Workflows: reworked actions and ways to skip eamxx testing jobs #38

name: eamxx-sa
on:
# Runs on PRs against master
pull_request:
branches: [ master ]
types: [opened, synchronize, ready_for_review, reopened]
# Manual run is used to bless
workflow_dispatch:
inputs:
job_to_run:
description: 'Job to run'
required: true
type: choice
options:
- gcc-openmp
- gcc-cuda
- all
bless:
description: 'Generate baselines'
required: true
type: boolean
# Add schedule trigger for nightly runs at midnight MT (Standard Time)
schedule:
- cron: '0 7 * * *' # Runs at 7 AM UTC, which is midnight MT during Standard Time
concurrency:
# Two runs are in the same group if they are testing the same git ref
# - if trigger=pull_request, the ref is refs/pull/<PR_NUMBER>/merge
# - for other triggers, the ref is the branch tested
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
env:
submit: ${{ github.event_name == 'schedule' && 'true' || 'false' }} # Submit to cdash only for nightlies
jobs:
pr_relevant:
runs-on: ubuntu-latest # This job can run anywhere
outputs:
value: ${{ steps.check_paths.outputs.touched }}
steps:
- name: check_paths
if: ${{ github.event_name == "pull_request" }}
uses: ./.github/actions/check-pr-relevance
with:
paths: |
components/eamxx
components/eam/src/physics/rrtmgp
components/eam/src/physics/p3/scream
components/eam/src/physics/cam
components/eam/src/physics/rrtmgp/external
externals/ekat
externals/scorpio
externals/haero
externals/YAKL
.github/workflows/eamxx-sa-testing.yml
get_labels:
runs-on: ubuntu-latest
outputs: ${{ steps.get_labels.outputs.labels }}
steps:
- name: get_labels
uses: ./.github/actions/get-labels
gcc-openmp:
needs: pr_relevant, get_labels
if: ${{
(github.event_name == 'pull_request' &&
needs.pr_relevant.outputs.value=='true' &&
!contains(needs.get_labels.outputs.labels,'CI: skip gcc') &&

Check failure on line 71 in .github/workflows/eamxx-sa-testing.yml

View workflow run for this annotation

GitHub Actions / .github/workflows/eamxx-sa-testing.yml

Invalid workflow file

You have an error in your yaml syntax on line 71
!contains(needs.get_labels.outputs.labels,'CI: skip openmp') &&
!contains(needs.get_labels.outputs.labels,'CI: skip eamxx-sa') &&
!contains(needs.get_labels.outputs.labels,'CI: skip eamxx-all')) ||
(github.event_name == 'workflow_dispatch' &&
github.event.inputs.job_to_run == 'gcc-openmp' ||
github.event.inputs.job_to_run == 'all') ||
github.event_name == 'schedule'
}}
runs-on: [self-hosted, ghci-snl-cpu, gcc]
strategy:
fail-fast: false
matrix:
build_type: [sp, dbg, fpe, opt]
name: gcc-openmp / ${{ matrix.build_type }}
steps:
- name: Check out the repository
uses: actions/checkout@v4
with:
persist-credentials: false
show-progress: false
submodules: recursive
- name: Show action trigger
uses: ./.github/actions/show-workflow-trigger
- name: Set test-all inputs based on event specs
run: |
echo "generate=false" >> $GITHUB_ENV
if [ "${{ github.event_name }}" == "workflow_dispatch" ]; then
if [ "${{ inputs.bless }}" == "true" ]; then
echo "generate=true" >> $GITHUB_ENV
fi
fi
- name: Run tests
uses: ./.github/actions/test-all-scream
with:
build_type: ${{ matrix.build_type }}
machine: ghci-snl-cpu
generate: ${{ env.generate }}
submit: ${{ env.submit }}
cmake-configs: Kokkos_ENABLE_OPENMP=ON
gcc-cuda:
needs: pr_relevant, get_labels
if: ${{
(github.event_name == 'pull_request' &&
needs.pr_relevant.outputs.value=='true' &&
!contains(needs.get_labels.outputs.labels,'CI: skip gcc') &&
!contains(needs.get_labels.outputs.labels,'CI: skip cuda') &&
!contains(needs.get_labels.outputs.labels,'CI: skip eamxx-sa') &&
!contains(needs.get_labels.outputs.labels,'CI: skip eamxx-all')) ||
(github.event_name == 'workflow_dispatch' &&
github.event.inputs.job_to_run == 'gcc-cuda' ||
github.event.inputs.job_to_run == 'all') ||
github.event_name == 'schedule'
}}
runs-on: [self-hosted, ghci-snl-cuda, cuda, gcc]
strategy:
fail-fast: false
matrix:
build_type: [sp, dbg, opt]
name: gcc-cuda / ${{ matrix.build_type }}
steps:
- name: Check out the repository
uses: actions/checkout@v4
with:
persist-credentials: false
show-progress: false
submodules: recursive
- name: Show action trigger
uses: ./.github/actions/show-workflow-trigger
- name: Set test-all inputs based on event specs
run: |
echo "generate=false" >> $GITHUB_ENV
if [ "${{ github.event_name }}" == "workflow_dispatch" ]; then
if [ "${{ inputs.bless }}" == "true" ]; then
echo "generate=true" >> $GITHUB_ENV
fi
fi
- name: Run tests
uses: ./.github/actions/test-all-scream
with:
build_type: ${{ matrix.build_type }}
machine: ghci-snl-cuda
generate: ${{ env.generate }}
submit: ${{ env.submit }}
cmake-configs: Kokkos_ARCH_VOLTA70=ON;CMAKE_CUDA_ARCHITECTURES=70