@@ -3,127 +3,46 @@ name: Continuous Integration
3
3
on : [push, pull_request]
4
4
5
5
jobs :
6
- unix-build :
7
- name : Unix Build
6
+ continuous-integration :
7
+ name : ${{ matrix.os }} - Python ${{ matrix.python-version }}
8
8
strategy :
9
9
matrix :
10
- os : [ubuntu-18.04]
11
- python-version : [3.6]
10
+ os : [macOS-latest, ubuntu-18.04, windows-latest]
11
+ python-version : [3.7]
12
+ fail-fast : false
12
13
runs-on : ${{ matrix.os }}
13
14
steps :
14
15
- uses : actions/checkout@v1
15
16
- name : Environment Variables
16
17
run : |
17
- CI_PYTHON_VERSION=${{ matrix.python-version }}
18
- CI_PACKAGE=colour_datasets
19
- CI_SHA=${{ github.sha }}
20
- CI_SLACK_WEBHOOK=${{ secrets.SLACK_WEBHOOK }}
21
- CI_SLACK_SUCCESS_NOTIFICATION="payload={\"attachments\": [{\"color\": \"#4CAF50\", \"author_name\": \"Python ${{ matrix.python-version }} build on ${{ matrix.os }}\", \"text\": \"Build for commit *${CI_SHA:0:7}* succeeded!\", \"title\": \"${{ github.repository }}@${{ github.ref }}\", \"title_link\": \"https://github.com/${{ github.repository }}/commit/${{ github.sha }}/checks\", \"footer\": \"Triggered by ${{ github.actor }}\"}], \"username\":\"Github Actions @ ${{ github.repository }}\", \"channel\":\"#continuous-integration\", \"icon_url\":\"https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png\"}"
22
- CI_SLACK_FAILURE_NOTIFICATION="${CI_SLACK_SUCCESS_NOTIFICATION/4CAF50/F44336}"
23
- CI_SLACK_FAILURE_NOTIFICATION="${CI_SLACK_FAILURE_NOTIFICATION/succeeded/failed}"
24
- COVERALLS_REPO_TOKEN=${{ secrets.COVERALLS_REPO_TOKEN }}
25
- echo ::set-env name=CI_PYTHON_VERSION::$CI_PYTHON_VERSION
26
- echo ::set-env name=CI_PACKAGE::$CI_PACKAGE
27
- echo ::set-env name=CI_SHA::$CI_SHA
28
- echo ::set-env name=CI_SLACK_WEBHOOK::$CI_SLACK_WEBHOOK
29
- echo ::set-env name=CI_SLACK_SUCCESS_NOTIFICATION::$CI_SLACK_SUCCESS_NOTIFICATION
30
- echo ::set-env name=CI_SLACK_FAILURE_NOTIFICATION::$CI_SLACK_FAILURE_NOTIFICATION
31
- echo ::set-env name=COVERALLS_REPO_TOKEN::$COVERALLS_REPO_TOKEN
18
+ echo "CI_PYTHON_VERSION=${{ matrix.python-version }}" >> $GITHUB_ENV
19
+ echo "CI_PACKAGE=colour_datasets" >> $GITHUB_ENV
20
+ echo "CI_SHA=${{ github.sha }}" >> $GITHUB_ENV
21
+ echo "COVERALLS_REPO_TOKEN=${{ secrets.COVERALLS_REPO_TOKEN }}" >> $GITHUB_ENV
22
+ shell : bash
32
23
- name : Set up Python ${{ matrix.python-version }}
33
24
uses : actions/setup-python@v1
34
25
with :
35
26
python-version : ${{ matrix.python-version }}
36
27
- name : Install Poetry
37
28
run : |
38
29
curl -L https://raw.githubusercontent.com/sdispater/poetry/master/get-poetry.py -o get-poetry.py
39
- python get-poetry.py --preview
40
- PATH= $HOME/.poetry/bin:$PATH
41
- echo ::set-env name=PATH::$PATH
30
+ python get-poetry.py --version 1.0.10
31
+ echo " $HOME/.poetry/bin" >> $GITHUB_PATH
32
+ shell : bash
42
33
- name : Install Package Dependencies
43
34
run : |
44
35
poetry install
45
- poetry env use $CI_PYTHON_VERSION
36
+ shell : bash
46
37
- name : Lint with flake8
47
38
run : |
48
- source $(poetry env info -p)/bin/activate
49
- flake8 $CI_PACKAGE --count --show-source --statistics
39
+ poetry run flake8 $CI_PACKAGE --count --show-source --statistics
40
+ shell : bash
50
41
- name : Test with nosetests
51
42
run : |
52
- source $( poetry env info -p)/bin/activate
53
- python -W ignore -m nose --nocapture --with-doctest --doctest-options=+ELLIPSIS --with-coverage --cover-package=$CI_PACKAGE $CI_PACKAGE
43
+ poetry run python -W ignore -m nose -q -v --with-doctest --doctest-options=+ELLIPSIS --with-coverage --cover-package=$CI_PACKAGE $CI_PACKAGE
44
+ shell : bash
54
45
- name : Upload Coverage to coveralls.io
55
- if : matrix.python-version == '3.6' || matrix.python-version == '3.7'
56
46
run : |
57
- source $(poetry env info -p)/bin/activate
58
- if [ -z "$COVERALLS_REPO_TOKEN" ]; then echo \"COVERALLS_REPO_TOKEN\" secret is undefined!; else coveralls; fi
59
- - name : Notify Slack
60
- if : always()
61
- run : |
62
- if [ "${{ job.status }}" == "Success" ]; then CI_SLACK_NOTIFICATION="$CI_SLACK_SUCCESS_NOTIFICATION"; else CI_SLACK_NOTIFICATION="$CI_SLACK_FAILURE_NOTIFICATION"; fi
63
- if [ -z "$CI_SLACK_WEBHOOK" ]; then echo \"SLACK_WEBHOOK\" secret is undefined!; else curl -k -d "$CI_SLACK_NOTIFICATION" -X POST $CI_SLACK_WEBHOOK; fi
64
- windows-build :
65
- name : Windows Build
66
- strategy :
67
- matrix :
68
- os : [windows-2019]
69
- python-version : [3.6]
70
- runs-on : ${{ matrix.os }}
71
- steps :
72
- - uses : actions/checkout@v1
73
- - name : Environment Variables
74
- run : |
75
- set CI_PYTHON_VERSION=${{ matrix.python-version }}
76
- set CI_PACKAGE=colour_datasets
77
- set CI_SHA=${{ github.sha }}
78
- set CI_SLACK_WEBHOOK=${{ secrets.SLACK_WEBHOOK }}
79
- set CI_SLACK_SUCCESS_NOTIFICATION="payload={\"attachments\": [{\"color\": \"#4CAF50\", \"author_name\": \"Python ${{ matrix.python-version }} build on ${{ matrix.os }}\", \"text\": \"Build for commit *"%CI_SHA:~0,7%"* succeeded!\", \"title\": \"${{ github.repository }}@${{ github.ref }}\", \"title_link\": \"https://github.com/${{ github.repository }}/commit/${{ github.sha }}/checks\", \"footer\": \"Triggered by ${{ github.actor }}\"}], \"username\":\"Github Actions @ ${{ github.repository }}\", \"channel\":\"#continuous-integration\", \"icon_url\":\"https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png\"}"
80
- set CI_SLACK_FAILURE_NOTIFICATION=%CI_SLACK_SUCCESS_NOTIFICATION:4CAF50=F44336%
81
- set CI_SLACK_FAILURE_NOTIFICATION=%CI_SLACK_FAILURE_NOTIFICATION:succeeded=failed%
82
- set COVERALLS_REPO_TOKEN=${{ secrets.COVERALLS_REPO_TOKEN }}
83
- echo ::set-env name=CI_PYTHON_VERSION::%CI_PYTHON_VERSION%
84
- echo ::set-env name=CI_PACKAGE::%CI_PACKAGE%
85
- echo ::set-env name=CI_SHA::%CI_SHA%
86
- echo ::set-env name=CI_SLACK_WEBHOOK::%CI_SLACK_WEBHOOK%
87
- echo ::set-env name=CI_SLACK_SUCCESS_NOTIFICATION::%CI_SLACK_SUCCESS_NOTIFICATION%
88
- echo ::set-env name=CI_SLACK_FAILURE_NOTIFICATION::%CI_SLACK_FAILURE_NOTIFICATION%
89
- echo ::set-env name=COVERALLS_REPO_TOKEN::%COVERALLS_REPO_TOKEN%
90
- shell : cmd
91
- - name : Set up Python ${{ matrix.python-version }}
92
- uses : actions/setup-python@v1
93
- with :
94
- python-version : ${{ matrix.python-version }}
95
- - name : Install Poetry
96
- run : |
97
- curl -L https://raw.githubusercontent.com/sdispater/poetry/master/get-poetry.py -o get-poetry.py
98
- python get-poetry.py --preview
99
- set PATH=%USERPROFILE%\.poetry\bin;%PATH%
100
- echo ::set-env name=PATH::%PATH%
101
- shell : cmd
102
- - name : Install Package Dependencies
103
- run : |
104
- call poetry install
105
- FOR /F %%a IN ('poetry env info -p') DO SET CI_VIRTUAL_ENVIRONMENT=%%a
106
- echo ::set-env name=CI_VIRTUAL_ENVIRONMENT::%CI_VIRTUAL_ENVIRONMENT%
107
- shell : cmd
108
- - name : Lint with flake8
109
- run : |
110
- call %CI_VIRTUAL_ENVIRONMENT%\scripts\activate
111
- flake8 %CI_PACKAGE% --count --show-source --statistics
112
- shell : cmd
113
- - name : Test with nosetests
114
- run : |
115
- call %CI_VIRTUAL_ENVIRONMENT%\scripts\activate
116
- python -W ignore -m nose --nocapture --with-doctest --doctest-options=+ELLIPSIS --with-coverage --cover-package=%CI_PACKAGE% %CI_PACKAGE%
117
- shell : cmd
118
- - name : Upload Coverage to coveralls.io
119
- if : matrix.python-version == '3.6' || matrix.python-version == '3.7'
120
- run : |
121
- call %CI_VIRTUAL_ENVIRONMENT%\scripts\activate
122
- IF "%COVERALLS_REPO_TOKEN%"=="" (echo "COVERALLS_REPO_TOKEN" secret is undefined!) ELSE (coveralls)
123
- shell : cmd
124
- - name : Notify Slack
125
- if : always()
126
- run : |
127
- IF "${{ job.status }}"=="Success" (set CI_SLACK_NOTIFICATION=%CI_SLACK_SUCCESS_NOTIFICATION%) ELSE (set CI_SLACK_NOTIFICATION=%CI_SLACK_FAILURE_NOTIFICATION%)
128
- IF "%CI_SLACK_WEBHOOK%"=="" (echo "SLACK_WEBHOOK" secret is undefined!) ELSE (curl -k -d %CI_SLACK_NOTIFICATION% -X POST %CI_SLACK_WEBHOOK%)
129
- shell : cmd
47
+ if [ -z "$COVERALLS_REPO_TOKEN" ]; then echo \"COVERALLS_REPO_TOKEN\" secret is undefined!; else poetry run coveralls; fi
48
+ shell : bash
0 commit comments