-
Notifications
You must be signed in to change notification settings - Fork 32
133 lines (129 loc) · 5.04 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
name: ci-build
on:
pull_request:
branches:
- master
jobs:
# lint is handled by pre-commit ci conf
generate-api:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Python 3.9
uses: actions/setup-python@v2
with:
python-version: 3.9
- name: Install requirements
run: pip install -r requirements.txt
- name: Install icclim
run: python -m pip install -e .
- name: install black
run: pip install black
- name: call fun extractor
run: python ./tools/extract-icclim-funs.py icclim/_generated_api.py
- name: run black on generated module
run: black icclim/_generated_api.py
- name: create local ref
run: |
git fetch origin ${{ github.head_ref }}
git checkout ${{ github.head_ref }}
- name: setup git config
run: |
# setup the username and email.
git config user.name "GitHub Actions Bot - API updater"
git config user.email "<>"
- name: commit
run: |
# Stage the file, commit and push
git add icclim/_generated_api.py
# Ignore error cases
git commit -m "MAINT: Update generated API" || true
git push origin ${{ github.head_ref }}
test:
runs-on: ubuntu-latest
steps:
# actions/checkout@v2 checkouts to a new merge commit
- uses: actions/checkout@v3
- name: Set up Python 3.9
uses: actions/setup-python@v2
with:
python-version: 3.9
- name: Install requirements
run: pip install -r requirements.txt
- name: Install pytest-cov
run: pip install pytest-cov
- name: Install icclim
run: python -m pip install -e .
- name: Build coverage file
run: |
pytest --junitxml=pytest.xml --cov-report=term-missing:skip-covered --cov=icclim icclim/tests | tee pytest-coverage.txt; ( exit ${PIPESTATUS[0]} )
- name: Pytest coverage comment
id: coverageComment
uses: MishaKav/pytest-coverage-comment@main
with:
pytest-coverage-path: ./pytest-coverage.txt
title: Report
badge-title: Coverage
hide-badge: false
hide-report: false
create-new-comment: false
hide-comment: false
report-only-changed-files: false
junitxml-path: ./pytest.xml
junitxml-title: Test results
- name: create local ref
run: |
git fetch origin ${{ github.head_ref }}
git checkout ${{ github.head_ref }}
- name: Update Readme with Coverage Html
run: |
sed -i '/ Pytest Coverage Comment:Begin/,/ Pytest Coverage Comment:End/c\ Pytest Coverage Comment:Begin\n\n.. |coverage| image:: https://img.shields.io/badge/Coverage-${{ steps.coverageComment.outputs.coverage }}25-${{ steps.coverageComment.outputs.color }}.svg\n :target: https://github.com/cerfacs-globc/icclim/blob/master/README.rst#code-coverage\n :alt: Code coverage\n\n..\n Pytest Coverage Comment:End' ./README.rst
- name: setup git config
run: |
# setup the username and email.
git config user.name "GitHub Actions Bot"
git config user.email "<>"
- name: commit
run: |
# Stage the file, commit and push
git add README.rst
# Ignore error cases with `|| true`
git commit -m "[skip ci] DOC: Update coverage" || true
git push origin ${{ github.head_ref }}
logo-update:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
lfs: true
- name: Set up Python 3.9
uses: actions/setup-python@v2
with:
python-version: 3.9
- name: Install requirements
run: pip install -r requirements.txt
- name: Install pytest-cov
run: pip install pytest-cov
- name: Install icclim
run: python -m pip install -e .
- name: Generate logos
run: |
python ./tools/update_logo_version.py ./doc/source/_static/logo_icclim_colored__base.svg ./doc/source/_static/logo_icclim_colored__displayed.svg
python ./tools/update_logo_version.py ./doc/source/_static/logo_icclim_grey__base.svg ./doc/source/_static/logo_icclim_grey__displayed.svg
python ./tools/update_logo_version.py ./doc/source/_static/logo_icclim_white__base.svg ./doc/source/_static/logo_icclim_white__displayed.svg
- name: create local ref
run: |
git fetch origin ${{ github.head_ref }}
git checkout ${{ github.head_ref }}
- name: setup git config
run: |
# setup the username and email.
git config user.name "GitHub Actions Bot - logo updater"
git config user.email "<>"
- name: commit
run: |
# Stage the file, commit and push
git add doc/source/_static/*__displayed.svg
# Ignore error cases with `|| true`
git commit -m "MAINT: Update logos" || true
git push origin ${{ github.head_ref }}