forked from reframe-hpc/reframe
-
Notifications
You must be signed in to change notification settings - Fork 0
157 lines (148 loc) · 4.36 KB
/
main.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
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
name: ReFrame CI
on: [push, pull_request]
jobs:
unittest:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ['3.7', '3.8', '3.9', '3.10', '3.11', '3.12']
steps:
- uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
./bootstrap.sh
- name: Generic Unittests
if: matrix.python-version != '3.8'
run: |
./test_reframe.py
- name: Generic Unittests and Coverage Report
if: matrix.python-version == '3.8'
run: |
python -m pip install coverage
coverage run --source=reframe ./test_reframe.py
coverage report -m
- name: Upload Coverage to Codecov
if: matrix.python-version == '3.8'
uses: codecov/codecov-action@v3
with:
fail_ci_if_error: true
unittest-py36:
runs-on: ubuntu-20.04
strategy:
matrix:
python-version: ['3.6']
steps:
- uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies and docs
run: |
./bootstrap.sh +docs
- name: Generic Unittests
run: |
./test_reframe.py
unittest-macos:
runs-on: macos-latest
steps:
- uses: actions/checkout@v3
- name: Set up Python 3.9
uses: actions/setup-python@v4
with:
python-version: 3.9
- name: Install dependencies
run: |
./bootstrap.sh
- name: Generic Unittests
run: |
./test_reframe.py
modulestest:
runs-on: ubuntu-latest
strategy:
matrix:
modules-version: [lmod, lmod77, tmod32, tmod4]
steps:
- uses: actions/checkout@v3
- name: Login to GitHub Container Registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build Image for ${{ matrix.modules-version }}
run: |
docker build -f ci-scripts/dockerfiles/reframe-${{ matrix.modules-version }}.dockerfile -t reframe-${{ matrix.modules-version }}:latest .
- name: Run Unittests
run: |
docker run reframe-${{ matrix.modules-version }}:latest
tutorialtest:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Login to GitHub Container Registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build Image for Tutorial Tests
run: |
echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u $ --password-stdin
docker build -f ci-scripts/dockerfiles/tutorials.dockerfile -t reframe-tutorials:latest .
docker logout
- name: Run Tutorial Tests
run: |
docker run reframe-tutorials:latest
unusedimports:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Lint Code Base
uses: github/super-linter@v4
env:
VALIDATE_ALL_CODEBASE: false
VALIDATE_PYTHON_FLAKE8: true
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
wheelvalidation:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup up Python 3.8
uses: actions/setup-python@v4
with:
python-version: 3.8
- name: Generate Wheel
run: |
python -m pip install --upgrade pip setuptools build
python -m build
- name: Install Wheel
run: |
python -m pip install dist/ReFrame_HPC*.whl
- name: Test Installation
run: |
reframe -V
reframe -l
docvalidation:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ['3.7', '3.8', '3.9', '3.10', '3.11', '3.12']
steps:
- uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install Doc Requirements
run: |
python -m pip install -r docs/requirements.txt
- name: Build documentation
run: |
make -C docs