-
Notifications
You must be signed in to change notification settings - Fork 1
140 lines (124 loc) · 5.08 KB
/
ci.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
127
128
129
130
131
132
133
134
135
136
137
138
139
140
#=========================================================================================
# (C) (or copyright) 2023-2024. Triad National Security, LLC. All rights reserved.
# This program was produced under U.S. Government contract 89233218CNA000001
# for Los Alamos National Laboratory (LANL), which is operated by Triad
# National Security, LLC for the U.S. Department of Energy/National
# Nuclear Security Administration. All rights in the program are
# reserved by Triad National Security, LLC, and the U.S. Department of
# Energy/National Nuclear Security Administration. The Government is
# granted for itself and others acting on its behalf a nonexclusive,
# paid-up, irrevocable worldwide license in this material to reproduce,
# prepare derivative works, distribute copies to the public, perform
# publicly and display publicly, and to permit others to do so.
#=========================================================================================
# This file was created in whole or in part by one of OpenAI's generative AI models.
name: CI
on:
push:
branches: [ "main" ]
pull_request:
# Cancel outdated workflows
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
cancel-in-progress: true
jobs:
# -------------------------------------------
# 1) CI Format job
# -------------------------------------------
ci_format:
# If you want to skip if the PR title has 'Draft:' or 'WIP:',
# you can approximate with the condition below.
if: >
github.event_name == 'pull_request' &&
(!
(
contains(github.event.pull_request.title, 'Draft:') ||
contains(github.event.pull_request.title, 'WIP:')
)
) ||
github.event_name == 'push'
runs-on: ubuntu-latest
# If you need HPC resources, set up a self-hosted runner here:
# runs-on: self-hosted
# or
# runs-on: [self-hosted, darwin-slurm-shared]
# Equivalent to 'variables:' in GitLab
env:
GIT_SUBMODULE_STRATEGY: recursive
SCHEDULER_PARAMETERS: "--nodes 1 --partition=skylake-gold"
steps:
- name: Check out code (with submodules)
uses: actions/checkout@v3
with:
submodules: true
- name: Set up environment
run: |
source env/bash
- name: Format
run: |
VERBOSE=1 ./style/format.sh
- name: Check for changes
run: |
git diff --exit-code --ignore-submodules
# -------------------------------------------
# 2) CI CPU job
# -------------------------------------------
ci_cpu:
# If you wanted it to run only if ci_format succeeded:
needs: ci_format
# Or skip if 'Draft:' or 'WIP:' in PR title
if: >
github.event_name == 'pull_request' &&
(!
(
contains(github.event.pull_request.title, 'Draft:') ||
contains(github.event.pull_request.title, 'WIP:')
)
) ||
github.event_name == 'push'
runs-on: ubuntu-latest
env:
GIT_SUBMODULE_STRATEGY: recursive
SCHEDULER_PARAMETERS: "--nodes 1 --partition=skylake-gold"
steps:
- name: Check out code (with submodules)
uses: actions/checkout@v3
with:
submodules: recursive
- name: Install dependencies
run: |
sudo apt-get update -qq
sudo apt-get install -qq --no-install-recommends tzdata
sudo apt-get install -qq git
sudo apt-get install -qq make cmake g++
sudo apt-get install -qq libopenmpi-dev libhdf5-openmpi-dev
sudo apt-get install -qq openssh-client
sudo apt-get install -qq python3 python3-numpy python3-h5py python3-matplotlib
- name: Build Jaybenne
run: |
cd tst
mkdir -p build
cd build
cmake -DPARTHENON_DISABLE_HDF5_COMPRESSION=ON -DCMAKE_BUILD_TYPE=Release ../../
make -j 4
echo "JAYBENNE_EXECUTABLE=$(pwd)/mcblock" >> $GITHUB_ENV
cd ..
- name: stepdiff tests
run: |
cd tst
./stepdiff.py --executable $JAYBENNE_EXECUTABLE \
--input ../inputs/stepdiff.in --use_mpiexec
./stepdiff.py --executable $JAYBENNE_EXECUTABLE \
--input ../inputs/stepdiff_ddmc.in --use_mpiexec
./stepdiff_smr.py --executable $JAYBENNE_EXECUTABLE \
--input ../inputs/stepdiff_smr.in --use_mpiexec
./stepdiff_smr.py --executable $JAYBENNE_EXECUTABLE \
--input ../inputs/stepdiff_smr_ddmc.in --use_mpiexec
./stepdiff_smr.py --executable $JAYBENNE_EXECUTABLE \
--input ../inputs/stepdiff_smr_ddmc.in --use_mpiexec \
--mpi_nthreads 8 --mpi_oversubscribe
./stepdiff_smr.py --executable $JAYBENNE_EXECUTABLE \
--input ../inputs/stepdiff_smr_hybrid.in --use_mpiexec
./stepdiff_smr.py --executable $JAYBENNE_EXECUTABLE \
--input ../inputs/stepdiff_smr_hybrid.in --use_mpiexec \
--mpi_nthreads 8 --mpi_oversubscribe