@@ -3,127 +3,46 @@ name: Continuous Integration
33on : [push, pull_request]
44
55jobs :
6- unix-build :
7- name : Unix Build
6+ continuous-integration :
7+ name : ${{ matrix.os }} - Python ${{ matrix.python-version }}
88 strategy :
99 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
1213 runs-on : ${{ matrix.os }}
1314 steps :
1415 - uses : actions/checkout@v1
1516 - name : Environment Variables
1617 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
3223 - name : Set up Python ${{ matrix.python-version }}
3324 uses : actions/setup-python@v1
3425 with :
3526 python-version : ${{ matrix.python-version }}
3627 - name : Install Poetry
3728 run : |
3829 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
4233 - name : Install Package Dependencies
4334 run : |
4435 poetry install
45- poetry env use $CI_PYTHON_VERSION
36+ shell : bash
4637 - name : Lint with flake8
4738 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
5041 - name : Test with nosetests
5142 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
5445 - name : Upload Coverage to coveralls.io
55- if : matrix.python-version == '3.6' || matrix.python-version == '3.7'
5646 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