-
Notifications
You must be signed in to change notification settings - Fork 33
75 lines (67 loc) · 2.69 KB
/
Copy pathci.yml
File metadata and controls
75 lines (67 loc) · 2.69 KB
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
# Example GitHub Actions file for JEDI projects, e.g., oops
---
name: UKMO Integration Test
on:
pull_request:
branches: [develop]
concurrency:
group: ${{ github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/develop' }}
jobs:
build:
if: |
( github.repository_owner == 'JCSDA-internal' && github.event.pull_request.draft == false )
name: gnu-openmpi
runs-on: jedi-self-hosted-ext
env:
NAMESPACE: pr-${{ github.event.number }}
MOBB_CI_PR_BODY_OUT: mobb-ci-gh-pr-${{ github.event.number }}-body.out
REPO: ${{ github.event.repository.name }}
TIMEOUT_MINUTE: 301
steps:
- name: Cleanup (pre)
run: |
rm -fr "./${NAMESPACE}" "./${MOBB_CI_PR_BODY_OUT}"
- name: Checkout
uses: actions/checkout@v5
with:
path: ./${{ env.NAMESPACE }}
- name: Set CI variables
run: |
gh pr view --json 'body' --jq '.body' --repo "${GITHUB_REPOSITORY}" \
"${GITHUB_HEAD_REF}" >"./${MOBB_CI_PR_BODY_OUT}"
image_tag="${GITHUB_BASE_REF##*/}"
declare -A settings
settings['MOBB_CI_IMAGE_TAG']="${image_tag}"
settings['MOBB_CI_TEST_TIER']='1'
for name in "${!settings[@]}"; do
default="${settings[${name}]}"
value="$( \
sed -n \
-e 's/^[[:space:]]*'"${name}"'=\([^[:space:]]\+\).*$/\1/p' \
"./${MOBB_CI_PR_BODY_OUT}")"
value="${value:-${default}}"
echo "${name}=${value}"
done >>"${GITHUB_ENV}"
- name: Run
run: |
# Remove REPO_TEST_DATA if irrelevant
docker run --rm \
--name "${REPO}-${NAMESPACE}-${GITHUB_SHA::7}" \
--volume "./${MOBB_CI_PR_BODY_OUT}:/var/tmp/${MOBB_CI_PR_BODY_OUT}" \
--volume "./${NAMESPACE}:/var/tmp/mobb-ci-${NAMESPACE}" \
--volume '/testdata/mobb-data:/var/tmp/mobb-data' \
--env GH_TOKEN="${{ secrets.GH_PAT }}" \
--env GITHUB_HEAD_REF="${GITHUB_HEAD_REF}" \
--env GITHUB_REPOSITORY="${GITHUB_REPOSITORY}" \
--env MOBB_CI_PR_BODY_OUT="/var/tmp/${MOBB_CI_PR_BODY_OUT}" \
--env MOBB_CI_TEST_TIER="${MOBB_CI_TEST_TIER}" \
--env MOBB_DATA='/var/tmp/mobb-data' \
--env REPO="${REPO}" \
--entrypoint '/usr/bin/env' \
--workdir="/var/tmp/mobb-ci-${NAMESPACE}" \
"ngmssboxjediacr.azurecr.io/jedibase:${MOBB_CI_IMAGE_TAG}" \
'timeout' "$((TIMEOUT_MINUTE - 1))m" '/usr/local/bin/mobb-ci'
timeout-minutes: ${{ fromJSON(env.TIMEOUT_MINUTE) }}
- name: Cleanup (post)
run: rm -fr "./${NAMESPACE}" "./${MOBB_CI_PR_BODY_OUT}"