-
Notifications
You must be signed in to change notification settings - Fork 63
160 lines (145 loc) · 5.62 KB
/
aliro_tests.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
158
159
160
name: Aliro CI/CD
# Controls when the action will run.
on:
push:
branches:
- master
pull_request:
branches:
- master
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
build_int_test:
name: Integration Tests
# The type of runner that the job will run on
runs-on: ubuntu-latest
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v2
# Runs a single command using the runners shell
- name: Build Docker Images
run: docker compose -f ./docker-compose-int-test.yml build -m 8g
# Runs a set of commands using the runners shell
- name: Run Integration Tests
run: |
docker compose -f ./docker-compose-int-test.yml run tester bash -c "sh /root/wait_pennai.sh && npm test"
docker compose -f ./docker-compose-int-test.yml down
build_web_app:
name: Unit Tests for Webapp
# The type of runner that the job will run on
runs-on: ubuntu-latest
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
with:
python-version: '3.7'
# Runs a single command using the runners shell
- name: Build Docker Images
run: |
docker compose -f ./docker-compose-unit-test.yml build -m 8g
# Runs a set of commands using the runners shell
- name: Run Unit Tests
run: |
git lfs fetch --all
docker compose -f ./docker-compose-unit-test.yml up --abort-on-container-exit -V
- name: Coveralls
uses: AndreMiras/coveralls-python-action@develop
with:
parallel: true
flag-name: Unit Test for webapp
build_pypkg:
name: Unit Tests for scikit-learn API
# The type of runner that the job will run on
runs-on: ubuntu-latest
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
with:
python-version: '3.7'
- name: Build Docker Images
run: |
pip install coveralls
docker compose -f ./docker-compose-unit-test.yml build -m 8g
# Runs a set of commands using the runners shell
- name: Run Unit Tests
run: |
git lfs fetch --all
git lfs pull
docker run -v $(pwd):/appsrc -w /appsrc aliro-unit_tester coverage run -m nose -s -v ai/tests/test_sklearn_api.py
coverage combine
- name: Coveralls
uses: AndreMiras/coveralls-python-action@develop
with:
parallel: true
flag-name: Unit Test for scikit-learn api
coveralls_finish:
name: Publish Coveralls
needs: [build_web_app, build_pypkg]
runs-on: ubuntu-latest
steps:
- name: Coveralls Finished
uses: AndreMiras/coveralls-python-action@develop
with:
parallel-finished: true
deploy_pypkg:
if: ${{ github.event_name == 'release' && github.event.action == 'published' }}
name: Deploy python package
needs: build_pypkg
# The type of runner that the job will run on
runs-on: ubuntu-latest
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
with:
python-version: '3.7'
- name: Install dependencies
if: ${{ github.event_name == 'release' && github.event.action == 'published' }}
run: |
python -m pip install --upgrade pip
pip install setuptools wheel twine
- name: Build and publish
if: ${{ github.event_name == 'release' && github.event.action == 'published' && success()}}
env:
TWINE_USERNAME: "__token__"
TWINE_PASSWORD: ${{ secrets.PENNAI_TOKEN }}
run: |
python setup.py sdist bdist_wheel
twine upload dist/*
build_docs:
# Only publish docs on master branch
if: github.ref == 'refs/heads/master'
name: Publish Docs
needs: [build_int_test, build_web_app, build_pypkg]
# The type of runner that the job will run on
runs-on: ubuntu-latest
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
with:
python-version: '3.7'
- name: Build Docker Images
run: |
docker compose -f ./docker-compose-doc-builder.yml build -m 8g
# Building docs # Tell GitHub not to use jekyll to compile the docs
- name: Building Docs
run: |
docker compose -f ./docker-compose-doc-builder.yml up --abort-on-container-exit --force-recreate
sudo touch target/ai_docs/html/.nojekyll
- name: Deploy
uses: JamesIves/[email protected]
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
BRANCH: gh-pages
FOLDER: target/ai_docs/html/
CLEAN: false # Automatically remove deleted files from the deploy branch