-
Notifications
You must be signed in to change notification settings - Fork 0
117 lines (107 loc) · 4.17 KB
/
base.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
# .github/workflows/base.yml
name: Build
on:
push:
tags:
- '*'
branches:
- main
pull_request:
branches:
- main
jobs:
test_publish_release:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest] # , macos-latest, windows-latest]
# python-version: ["2.7", "3.5", "3.6", "3.7", "3.8"]
include:
# add a variable for reports + doc publish
- os: ubuntu-latest
# python-version: "3.7"
name_suffix: "+ publish doc and reports"
name: Run all tests on OS ${{ matrix.os }} ${{ matrix.name_suffix }} # and python ${{ matrix.python-version }}
runs-on: ${{ matrix.os }}
steps:
# 0) check the context of this job
- name: Dump GitHub context
env:
GITHUB_CONTEXT: ${{ toJSON(github) }}
run: echo "$GITHUB_CONTEXT"
# 1) Checkout a copy of the repo
- name: Checkout code
uses: actions/checkout@v2
with:
fetch-depth: 0 # so that gh-deploy works
# 2) Setup python version 3.8
# - name: Install python 3.7 for nox
# uses: actions/setup-python@v1
# with:
# python-version: 3.7
# architecture: x64
# 2) Add Conda to PATH
# - name: Add conda to system path
# run: |
# # $CONDA is an environment variable pointing to the root of the miniconda directory
# echo $CONDA/bin >> $GITHUB_PATH
# 2) Setup conda
- name: Install conda v3.7
uses: conda-incubator/setup-miniconda@v2
with:
# auto-update-conda: true
python-version: 3.7
activate-environment: noxenv
- name: Initial Conda info
shell: bash -l {0} # so that conda works
run: conda info
- name: Initial Conda list
shell: bash -l {0} # so that conda works
run: conda list
# 3) Install nox
- name: Install noxfile requirements
shell: bash -l {0} # so that conda works
run: pip install -r noxfile-requirements.txt
- name: Conda list after noxfile requirements installation
shell: bash -l {0} # so that conda works
run: conda list
# 4) Run nox tests
- name: Run nox tests on all python versions
shell: bash -l {0} # so that conda works
# env:
# EXCH_AKEY: ${{ secrets.EXCH_AKEY }}
run: nox -s tests
# -------------- only on Ubuntu + MAIN PUSH (no pull request, no tag) -----------
# 5) Publish the doc and test reports
- name: \[not on TAG\] Publish documentation, tests and coverage reports
if: startsWith(matrix.os,'ubuntu') && github.event_name == 'push' && startsWith(github.ref, 'refs/heads')
shell: bash -l {0} # so that conda works
run: nox -s publish
# 6) Publish coverage report
- name: \[not on TAG\] Create codecov.yaml with correct paths
if: startsWith(matrix.os,'ubuntu') && github.event_name == 'push' && startsWith(github.ref, 'refs/heads')
shell: bash
run: |
cat << EOF > codecov.yml
# codecov.yml
fixes:
- "/home/runner/work/python-qds/qdscreen/::" # Correct paths
EOF
- name: \[not on TAG\] Publish coverage report
if: startsWith(matrix.os,'ubuntu') && github.event_name == 'push' && startsWith(github.ref, 'refs/heads')
uses: codecov/codecov-action@v1
with:
files: ./docs/reports/coverage/coverage.xml
# -------------- only on Ubuntu + TAG PUSH (no pull request) -----------
# 7) Create github release and build the wheel
- name: \[TAG only\] Build wheel and create github release
if: startsWith(matrix.os,'ubuntu') && github.event_name == 'push' && startsWith(github.ref, 'refs/tags')
shell: bash -l {0} # so that conda works
run: nox -s release -- ${{ secrets.GITHUB_TOKEN }}
# 8) Publish the wheel on PyPi
- name: \[TAG only\] Deploy on PyPi
if: startsWith(matrix.os,'ubuntu') && github.event_name == 'push' && startsWith(github.ref, 'refs/tags')
uses: pypa/gh-action-pypi-publish@release/v1
with:
user: __token__
password: ${{ secrets.PYPI_API_TOKEN }}