-
Notifications
You must be signed in to change notification settings - Fork 55
126 lines (122 loc) · 5.3 KB
/
eamxx-v1-testing.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
name: eamxx-v1
on:
# Runs on PRs against master
pull_request:
branches: [ master ]
types: [opened, synchronize, ready_for_review, reopened]
paths:
- components/eamxx/**
- components/eam/src/physics/rrtmgp/**
- components/eam/src/physics/p3/scream/**
- components/eam/src/physics/cam/**
- .github/workflows/eamxx-v1-testing.yml
- externals/ekat/**
- externals/scorpio/**
- externals/haero/**
- externals/YAKL/**
- components/eam/src/physics/rrtmgp/external/**
# Manual run is used to bless
workflow_dispatch:
inputs:
job_to_run:
description: 'Job to run'
required: true
type: choice
options:
- cpu-gcc
- all
bless:
description: 'Generate baselines'
required: true
type: boolean
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
jobs:
cpu-gcc:
runs-on: [self-hosted, gcc, ghci-snl-cpu]
strategy:
matrix:
test:
- full_name: ERS_Ln9.ne4_ne4.F2000-SCREAMv1-AQP1.ghci-snl-cpu_gnu.scream-output-preset-2
short_name: ERS_Ln9.ne4_ne4.F2000-SCREAMv1-AQP1.scream-output-preset-2
- full_name: ERS_P16_Ln22.ne30pg2_ne30pg2.FIOP-SCREAMv1-DP.ghci-snl-cpu_gnu.scream-dpxx-arm97
short_name: ERS_P16_Ln22.ne30pg2_ne30pg2.FIOP-SCREAMv1-DP.scream-dpxx-arm97
- full_name: ERS_Ln22.ne4pg2_ne4pg2.F2010-SCREAMv1.ghci-snl-cpu_gnu.scream-small_kernels--scream-output-preset-5
short_name: ERS_Ln22.ne4pg2_ne4pg2.F2010-SCREAMv1.scream-small_kernels--scream-output-preset-5
- full_name: SMS_D_Ln5.ne4pg2_oQU480.F2010-SCREAMv1-MPASSI.ghci-snl-cpu_gnu.scream-mam4xx-all_mam4xx_procs
short_name: SMS_D_Ln5.ne4pg2_oQU480.F2010-SCREAMv1-MPASSI.scream-mam4xx-all_mam4xx_procs
fail-fast: false
name: cpu-gcc / ${{ matrix.test.short_name }}
if: ${{ github.event_name != 'workflow_dispatch' ||
github.event.inputs.job_to_run == 'cpu-gcc' ||
github.event.inputs.job_to_run == 'all' }}
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: Check for skip labels
if: ${{ github.event_name == 'pull_request' || github.event_name == 'pull_request_review' }}
uses: ./.github/actions/check-skip-labels
with:
skip_labels: 'AT: skip gcc,AT: skip openmp,AT: skip eamxx-sa,AT: skip eamxx-all'
token: ${{ secrets.GITHUB_TOKEN }}
pr_number: ${{ github.event.pull_request.number }}
- name: Set CA certificates env var
run: |
# Ensure the operating system is Linux
if [ "$(uname)" != "Linux" ]; then
echo "This action only supports Linux."
exit 1
fi
# Set env var to be used in upload-artifacts phase
if [ -f /etc/debian_version ]; then
echo "NODE_EXTRA_CA_CERTS=/etc/ssl/certs/ca-certificates.crt" >> $GITHUB_ENV
elif [ -f /etc/redhat-release ] || [ -f /etc/centos-release ] || [ -f /etc/fedora-release ]; then
echo "NODE_EXTRA_CA_CERTS=/etc/pki/tls/certs/ca-bundle.crt" >> $GITHUB_ENV
else
echo "Unsupported Linux distribution"
exit 1
fi
- name: Establish cmp/gen flag
run: |
dir_suffix=".C"
cmp_gen_flag="-c"
if [ "${{ github.event_name }}" == "workflow_dispatch" ]; then
if [ ${{ inputs.bless }} ]; then
cmp_gen_flag="-o -g"
dir_suffix=".G"
fi
fi
echo "flags=$cmp_gen_flag -b master" >> $GITHUB_ENV
echo "folder_suffix=$dir_suffix" >> $GITHUB_ENV
- name: Run test
run: |
./cime/scripts/create_test ${{ matrix.test.full_name }} ${{ env.flags }} --wait
- name: Upload case files
if: ${{ always() }}
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.test.full_name }}
path: |
/projects/e3sm/scratch/${{ matrix.test.full_name }}${{ env.folder_suffix }}*/TestStatus.log
/projects/e3sm/scratch/${{ matrix.test.full_name }}${{ env.folder_suffix }}*/bld/*.bldlog.*
/projects/e3sm/scratch/${{ matrix.test.full_name }}${{ env.folder_suffix }}*/bld/case2bld/*.bldlog.*
/projects/e3sm/scratch/${{ matrix.test.full_name }}${{ env.folder_suffix }}*/run/*.log.*
/projects/e3sm/scratch/${{ matrix.test.full_name }}${{ env.folder_suffix }}*/run/case2run/*.log.*
/projects/e3sm/scratch/${{ matrix.test.full_name }}${{ env.folder_suffix }}*/run/*.cprnc.out
/projects/e3sm/scratch/${{ matrix.test.full_name }}${{ env.folder_suffix }}*/run/case2run/*.cprnc.out
env:
NODE_EXTRA_CA_CERTS: ${{ env.NODE_EXTRA_CA_CERTS }}
- name: Clean up
if: ${{ always() }}
run: |
rm -rf /projects/e3sm/scratch/${{ matrix.test.full_name }}*