Skip to content
This repository was archived by the owner on May 1, 2024. It is now read-only.

Commit 118905c

Browse files
authored
Merge pull request #501 from edx/usamasadiq/bom-2900-replace-travis-with-github-ci
BOM-2900: Replace Travis with GitHub CI
2 parents 31f1553 + 2dcca30 commit 118905c

20 files changed

Lines changed: 229 additions & 244 deletions
Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,6 @@ services:
1010
command: tail -f /dev/null
1111
environment:
1212
ELASTICSEARCH_LEARNERS_HOST: "http://es:9223"
13-
# Pull these from the host environment.
14-
TRAVIS_BRANCH:
15-
TRAVIS_PULL_REQUEST:
16-
DATADOG_API_KEY:
1713
depends_on:
1814
- "es"
1915

.github/workflows/ci.yml

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
name: Python CI
2+
3+
on:
4+
push:
5+
branches:
6+
- master
7+
pull_request:
8+
branches:
9+
- '**'
10+
11+
jobs:
12+
run_tests:
13+
name: Tests
14+
runs-on: ${{ matrix.os }}
15+
strategy:
16+
matrix:
17+
os:
18+
- ubuntu-20.04
19+
python-version:
20+
- 3.8
21+
targets: [ 'quality','main.test','docs' ]
22+
23+
steps:
24+
- uses: actions/checkout@v1
25+
- name: setup python
26+
uses: actions/setup-python@v2
27+
with:
28+
python-version: ${{ matrix.python-version }}
29+
30+
- name: Start Container
31+
run: docker-compose -f .github/docker-compose-ci.yml up -d
32+
33+
- name: Install dependencies
34+
run: |
35+
pip install -r requirements/pip.txt
36+
pip install -r requirements/ci.txt
37+
38+
- name: Run Tests
39+
run: docker exec -t analytics_api_testing bash -c "cd /edx/app/analytics_api/analytics_api/
40+
&& export TOXENV=django32 && make test.requirements tox.requirements ${{ matrix.targets }}"
41+
42+
- name: Run Coverage
43+
if: matrix.python-version == '3.8' && matrix.targets=='main.test'
44+
uses: codecov/codecov-action@v1
45+
with:
46+
fail_ci_if_error: true
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
name: Push Docker Images
2+
3+
on:
4+
push:
5+
branches:
6+
- master
7+
jobs:
8+
push:
9+
runs-on: ubuntu-latest
10+
if: github.event_name == 'push'
11+
12+
steps:
13+
- name: Checkout
14+
uses: actions/checkout@v2
15+
16+
- name: Build and Push docker image
17+
env:
18+
DOCKERHUB_PASSWORD: ${{ secrets.DOCKERHUB_PASSWORD }}
19+
DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
20+
run : make docker_push

.travis.yml

Lines changed: 0 additions & 35 deletions
This file was deleted.

.travis/run_coverage.sh

Lines changed: 0 additions & 8 deletions
This file was deleted.

Makefile

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -38,14 +38,15 @@ develop: test.requirements ## install test and dev requirements
3838

3939
upgrade:
4040
pip3 install -q -r requirements/pip_tools.txt
41+
pip-compile --upgrade --allow-unsafe -o requirements/pip.txt requirements/pip.in
4142
pip-compile --upgrade -o requirements/pip_tools.txt requirements/pip_tools.in
4243
pip-compile --upgrade -o requirements/base.txt requirements/base.in
4344
pip-compile --upgrade -o requirements/doc.txt requirements/doc.in
4445
pip-compile --upgrade -o requirements/dev.txt requirements/dev.in
4546
pip-compile --upgrade -o requirements/production.txt requirements/production.in
4647
pip-compile --upgrade -o requirements/test.txt requirements/test.in
4748
pip-compile --upgrade -o requirements/tox.txt requirements/tox.in
48-
pip-compile --upgrade -o requirements/travis.txt requirements/travis.in
49+
pip-compile --upgrade -o requirements/ci.txt requirements/ci.in
4950
scripts/post-pip-compile.sh \
5051
requirements/pip_tools.txt \
5152
requirements/base.txt \
@@ -54,7 +55,7 @@ upgrade:
5455
requirements/production.txt \
5556
requirements/test.txt \
5657
requirements/tox.txt \
57-
requirements/travis.txt
58+
requirements/ci.txt
5859
## Let tox control the Django version for tests
5960
grep -e "^django==" requirements/base.txt > requirements/django.txt
6061
sed '/^[dD]jango==/d' requirements/test.txt > requirements/test.tmp
@@ -123,7 +124,7 @@ demo: requirements clean loaddata ## Runs make clean, requirements, and loaddat
123124
python manage.py set_api_key edx edx
124125

125126
# Target used by edx-analytics-dashboard during its testing.
126-
travis: test.requirements clean migrate-all ## Used by travis for testing
127+
github_ci: test.requirements clean migrate-all ## Used by CI for testing
127128
python manage.py set_api_key edx edx
128129
python manage.py loaddata problem_response_answer_distribution --database=analytics
129130
python manage.py generate_fake_course_data --num-weeks=2 --no-videos --course-id "edX/DemoX/Demo_Course"
@@ -132,18 +133,18 @@ docker_build:
132133
docker build . -f Dockerfile -t openedx/analytics-data-api
133134
docker build . -f Dockerfile --target newrelic -t openedx/analytics-data-api:latest-newrelic
134135

135-
travis_docker_tag: docker_build
136-
docker tag openedx/analytics-data-api openedx/analytics-data-api:$$TRAVIS_COMMIT
137-
docker tag openedx/analytics-data-api:latest-newrelic openedx/analytics-data-api:$$TRAVIS_COMMIT-newrelic
136+
docker_tag: docker_build
137+
docker tag openedx/analytics-data-api openedx/analytics-data-api:${GITHUB_SHA}
138+
docker tag openedx/analytics-data-api:latest-newrelic openedx/analytics-data-api:${GITHUB_SHA}-newrelic
138139

139-
travis_docker_auth:
140-
echo "$$DOCKER_PASSWORD" | docker login -u "$$DOCKER_USERNAME" --password-stdin
140+
docker_auth:
141+
echo "$$DOCKERHUB_PASSWORD" | docker login -u "$$DOCKERHUB_USERNAME" --password-stdin
141142

142-
travis_docker_push: travis_docker_tag travis_docker_auth ## push to docker hub
143+
docker_push: docker_tag docker_auth ## push to docker hub
143144
docker push 'openedx/analytics-data-api:latest'
144-
docker push "openedx/analytics-data-api:$$TRAVIS_COMMIT"
145+
docker push "openedx/analytics-data-api:${GITHUB_SHA}"
145146
docker push 'openedx/analytics-data-api:latest-newrelic'
146-
docker push "openedx/analytics-data-api:$$TRAVIS_COMMIT-newrelic"
147+
docker push "openedx/analytics-data-api:${GITHUB_SHA}-newrelic"
147148

148149
docs: tox.requirements
149150
tox -e docs

requirements/base.txt

Lines changed: 22 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,19 @@ asgiref==3.4.1
88
# via django
99
boto==2.42.0
1010
# via -r requirements/base.in
11-
boto3==1.18.48
11+
boto3==1.19.5
1212
# via -r requirements/base.in
13-
botocore==1.21.48
13+
botocore==1.22.5
1414
# via
1515
# boto3
1616
# s3transfer
17-
certifi==2021.5.30
17+
certifi==2021.10.8
1818
# via
1919
# elasticsearch
2020
# requests
21-
cffi==1.14.6
21+
cffi==1.15.0
2222
# via cryptography
23-
charset-normalizer==2.0.6
23+
charset-normalizer==2.0.7
2424
# via requests
2525
coreapi==2.3.3
2626
# via
@@ -30,11 +30,11 @@ coreschema==0.0.4
3030
# via
3131
# coreapi
3232
# drf-yasg
33-
cryptography==3.4.8
33+
cryptography==35.0.0
3434
# via
3535
# django-fernet-fields
3636
# pyjwt
37-
django==3.2.7
37+
django==3.2.8
3838
# via
3939
# -r requirements/base.in
4040
# django-cors-headers
@@ -51,8 +51,7 @@ django==3.2.7
5151
# edx-drf-extensions
5252
# edx-enterprise-data
5353
# edx-rbac
54-
# rest-condition
55-
django-cors-headers==3.8.0
54+
django-cors-headers==3.10.0
5655
# via -r requirements/base.in
5756
django-countries==7.2.1
5857
# via -r requirements/base.in
@@ -62,7 +61,7 @@ django-crum==0.7.9
6261
# edx-rbac
6362
django-fernet-fields==0.6
6463
# via edx-enterprise-data
65-
django-model-utils==4.1.1
64+
django-model-utils==4.2.0
6665
# via
6766
# edx-enterprise-data
6867
# edx-rbac
@@ -82,7 +81,6 @@ djangorestframework==3.12.4
8281
# drf-yasg
8382
# edx-api-doc-tools
8483
# edx-drf-extensions
85-
# rest-condition
8684
djangorestframework-csv==2.1.1
8785
# via -r requirements/base.in
8886
drf-jwt==1.19.1
@@ -101,12 +99,12 @@ edx-django-utils==4.4.0
10199
# edx-drf-extensions
102100
# edx-enterprise-data
103101
# edx-rest-api-client
104-
edx-drf-extensions==7.0.1
102+
edx-drf-extensions==8.0.0
105103
# via
106104
# -r requirements/base.in
107105
# edx-enterprise-data
108106
# edx-rbac
109-
edx-enterprise-data==3.2.0
107+
edx-enterprise-data==3.3.0
110108
# via -r requirements/base.in
111109
edx-opaque-keys==2.2.2
112110
# via
@@ -130,13 +128,13 @@ elasticsearch-dsl==7.4.0
130128
# -r requirements/base.in
131129
future==0.18.2
132130
# via pyjwkest
133-
idna==3.2
131+
idna==3.3
134132
# via requests
135133
inflection==0.5.1
136134
# via drf-yasg
137135
itypes==1.2.0
138136
# via coreapi
139-
jinja2==3.0.1
137+
jinja2==3.0.2
140138
# via coreschema
141139
jmespath==0.10.0
142140
# via
@@ -146,7 +144,7 @@ markdown==3.3.4
146144
# via -r requirements/base.in
147145
markupsafe==2.0.1
148146
# via jinja2
149-
newrelic==7.0.0.166
147+
newrelic==7.2.2.169
150148
# via edx-django-utils
151149
ordered-set==3.1.1
152150
# via
@@ -160,18 +158,18 @@ psutil==5.8.0
160158
# via edx-django-utils
161159
pycparser==2.20
162160
# via cffi
163-
pycryptodomex==3.10.4
161+
pycryptodomex==3.11.0
164162
# via pyjwkest
165163
pyjwkest==1.4.2
166164
# via edx-drf-extensions
167-
pyjwt[crypto]==2.1.0
165+
pyjwt[crypto]==2.3.0
168166
# via
169167
# drf-jwt
170168
# edx-drf-extensions
171169
# edx-rest-api-client
172-
pymongo==3.12.0
170+
pymongo==3.12.1
173171
# via edx-opaque-keys
174-
pyparsing==2.4.7
172+
pyparsing==3.0.3
175173
# via packaging
176174
python-dateutil==2.8.2
177175
# via
@@ -180,9 +178,9 @@ python-dateutil==2.8.2
180178
# elasticsearch-dsl
181179
python-memcached==1.59
182180
# via -r requirements/base.in
183-
pytz==2021.1
181+
pytz==2021.3
184182
# via django
185-
pyyaml==5.4.1
183+
pyyaml==6.0
186184
# via edx-django-release-util
187185
requests==2.26.0
188186
# via
@@ -192,8 +190,6 @@ requests==2.26.0
192190
# edx-rest-api-client
193191
# pyjwkest
194192
# slumber
195-
rest-condition==1.0.3
196-
# via edx-drf-extensions
197193
ruamel.yaml==0.17.16
198194
# via drf-yasg
199195
ruamel.yaml.clib==0.2.6
@@ -219,15 +215,15 @@ slumber==0.7.1
219215
# via edx-rest-api-client
220216
sqlparse==0.4.2
221217
# via django
222-
stevedore==3.4.0
218+
stevedore==3.5.0
223219
# via
224220
# edx-django-utils
225221
# edx-opaque-keys
226222
tqdm==4.62.3
227223
# via -r requirements/base.in
228224
unicodecsv==0.14.1
229225
# via djangorestframework-csv
230-
uritemplate==3.0.1
226+
uritemplate==4.1.1
231227
# via
232228
# coreapi
233229
# drf-yasg
Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,15 @@
44
#
55
# make upgrade
66
#
7-
certifi==2021.5.30
7+
certifi==2021.10.8
88
# via requests
9-
charset-normalizer==2.0.6
9+
charset-normalizer==2.0.7
1010
# via requests
1111
codecov==2.1.12
12-
# via -r requirements/travis.in
13-
coverage==5.5
12+
# via -r requirements/ci.in
13+
coverage==6.0.2
1414
# via codecov
15-
idna==3.2
15+
idna==3.3
1616
# via requests
1717
requests==2.26.0
1818
# via codecov

0 commit comments

Comments
 (0)