Skip to content

Commit

Permalink
build: Replace Travis with GitHub CI
Browse files Browse the repository at this point in the history
  • Loading branch information
UsamaSadiq committed Oct 28, 2021
1 parent a938180 commit fd3eafa
Show file tree
Hide file tree
Showing 20 changed files with 232 additions and 212 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,6 @@ services:
command: tail -f /dev/null
environment:
ELASTICSEARCH_LEARNERS_HOST: "http://es:9223"
# Pull these from the host environment.
TRAVIS_BRANCH:
TRAVIS_PULL_REQUEST:
DATADOG_API_KEY:
depends_on:
- "es"

Expand Down
46 changes: 46 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
name: Python CI

on:
push:
branches:
- master
pull_request:
branches:
- '**'

jobs:
run_tests:
name: Tests
runs-on: ${{ matrix.os }}
strategy:
matrix:
os:
- ubuntu-20.04
python-version:
- 3.8
targets: [ 'django32','quality','main.test','docs' ]

steps:
- uses: actions/checkout@v1
- name: setup python
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}

- name: Start Container
run: docker-compose -f .github/docker-compose-ci.yml up -d

- name: Install dependencies
run: |
pip install -r requirements/pip.txt
pip install -r requirements/ci.txt
- name: Run Tests
run: docker exec -t analytics_api_testing bash -c "cd /edx/app/analytics_api/analytics_api/
&& export TOXENV=django32 && make test.requirements tox.requirements ${{ matrix.targets }}"

- name: Run Coverage
if: matrix.python-version == '3.8' && matrix.targets=='main.test'
uses: codecov/codecov-action@v1
with:
fail_ci_if_error: true
20 changes: 20 additions & 0 deletions .github/workflows/docker-publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
name: Push Docker Images

on:
push:
branches:
- master
jobs:
push:
runs-on: ubuntu-latest
if: github.event_name == 'push'

steps:
- name: Checkout
uses: actions/checkout@v2

- name: Build and Push docker image
env:
DOCKERHUB_PASSWORD: ${{ secrets.DOCKERHUB_PASSWORD }}
DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
run : make docker_push
6 changes: 3 additions & 3 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,11 @@ services:
- docker
sudo: required
before_install:
- docker-compose -f .travis/docker-compose-travis.yml up -d
- docker-compose -f .travis/docker-compose-ci.yml up -d
install:
- pip install -r requirements/travis.txt
- pip install -r requirements/ci.txt
script:
- docker exec -t -e TRAVIS=1 analytics_api_testing bash -c " cd /edx/app/analytics_api/analytics_api/
- docker exec -t analytics_api_testing bash -c " cd /edx/app/analytics_api/analytics_api/
&& export TOXENV=django32 && make test.requirements tox.requirements $TARGETS "
matrix:
include:
Expand Down
8 changes: 0 additions & 8 deletions .travis/run_coverage.sh

This file was deleted.

23 changes: 12 additions & 11 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -38,14 +38,15 @@ develop: test.requirements ## install test and dev requirements

upgrade:
pip3 install -q -r requirements/pip_tools.txt
pip-compile --upgrade --allow-unsafe -o requirements/pip.txt requirements/pip.in
pip-compile --upgrade -o requirements/pip_tools.txt requirements/pip_tools.in
pip-compile --upgrade -o requirements/base.txt requirements/base.in
pip-compile --upgrade -o requirements/doc.txt requirements/doc.in
pip-compile --upgrade -o requirements/dev.txt requirements/dev.in
pip-compile --upgrade -o requirements/production.txt requirements/production.in
pip-compile --upgrade -o requirements/test.txt requirements/test.in
pip-compile --upgrade -o requirements/tox.txt requirements/tox.in
pip-compile --upgrade -o requirements/travis.txt requirements/travis.in
pip-compile --upgrade -o requirements/ci.txt requirements/ci.in
scripts/post-pip-compile.sh \
requirements/pip_tools.txt \
requirements/base.txt \
Expand All @@ -54,7 +55,7 @@ upgrade:
requirements/production.txt \
requirements/test.txt \
requirements/tox.txt \
requirements/travis.txt
requirements/ci.txt
## Let tox control the Django version for tests
grep -e "^django==" requirements/base.txt > requirements/django.txt
sed '/^[dD]jango==/d' requirements/test.txt > requirements/test.tmp
Expand Down Expand Up @@ -123,7 +124,7 @@ demo: requirements clean loaddata ## Runs make clean, requirements, and loaddat
python manage.py set_api_key edx edx

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

travis_docker_tag: docker_build
docker tag openedx/analytics-data-api openedx/analytics-data-api:$$TRAVIS_COMMIT
docker tag openedx/analytics-data-api:latest-newrelic openedx/analytics-data-api:$$TRAVIS_COMMIT-newrelic
docker_tag: docker_build
docker tag openedx/analytics-data-api openedx/analytics-data-api:${GITHUB_SHA}
docker tag openedx/analytics-data-api:latest-newrelic openedx/analytics-data-api:${GITHUB_SHA}-newrelic

travis_docker_auth:
echo "$$DOCKER_PASSWORD" | docker login -u "$$DOCKER_USERNAME" --password-stdin
docker_auth:
echo "$$DOCKERHUB_PASSWORD" | docker login -u "$$DOCKERHUB_USERNAME" --password-stdin

travis_docker_push: travis_docker_tag travis_docker_auth ## push to docker hub
docker_push: docker_tag docker_auth ## push to docker hub
docker push 'openedx/analytics-data-api:latest'
docker push "openedx/analytics-data-api:$$TRAVIS_COMMIT"
docker push "openedx/analytics-data-api:${GITHUB_SHA}"
docker push 'openedx/analytics-data-api:latest-newrelic'
docker push "openedx/analytics-data-api:$$TRAVIS_COMMIT-newrelic"
docker push "openedx/analytics-data-api:${GITHUB_SHA}-newrelic"

docs: tox.requirements
tox -e docs
48 changes: 22 additions & 26 deletions requirements/base.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,19 +8,19 @@ asgiref==3.4.1
# via django
boto==2.42.0
# via -r requirements/base.in
boto3==1.18.48
boto3==1.19.5
# via -r requirements/base.in
botocore==1.21.48
botocore==1.22.5
# via
# boto3
# s3transfer
certifi==2021.5.30
certifi==2021.10.8
# via
# elasticsearch
# requests
cffi==1.14.6
cffi==1.15.0
# via cryptography
charset-normalizer==2.0.6
charset-normalizer==2.0.7
# via requests
coreapi==2.3.3
# via
Expand All @@ -30,11 +30,11 @@ coreschema==0.0.4
# via
# coreapi
# drf-yasg
cryptography==3.4.8
cryptography==35.0.0
# via
# django-fernet-fields
# pyjwt
django==3.2.7
django==3.2.8
# via
# -r requirements/base.in
# django-cors-headers
Expand All @@ -51,8 +51,7 @@ django==3.2.7
# edx-drf-extensions
# edx-enterprise-data
# edx-rbac
# rest-condition
django-cors-headers==3.8.0
django-cors-headers==3.10.0
# via -r requirements/base.in
django-countries==7.2.1
# via -r requirements/base.in
Expand All @@ -62,7 +61,7 @@ django-crum==0.7.9
# edx-rbac
django-fernet-fields==0.6
# via edx-enterprise-data
django-model-utils==4.1.1
django-model-utils==4.2.0
# via
# edx-enterprise-data
# edx-rbac
Expand All @@ -82,7 +81,6 @@ djangorestframework==3.12.4
# drf-yasg
# edx-api-doc-tools
# edx-drf-extensions
# rest-condition
djangorestframework-csv==2.1.1
# via -r requirements/base.in
drf-jwt==1.19.1
Expand All @@ -101,12 +99,12 @@ edx-django-utils==4.4.0
# edx-drf-extensions
# edx-enterprise-data
# edx-rest-api-client
edx-drf-extensions==7.0.1
edx-drf-extensions==8.0.0
# via
# -r requirements/base.in
# edx-enterprise-data
# edx-rbac
edx-enterprise-data==3.2.0
edx-enterprise-data==3.3.0
# via -r requirements/base.in
edx-opaque-keys==2.2.2
# via
Expand All @@ -130,13 +128,13 @@ elasticsearch-dsl==7.4.0
# -r requirements/base.in
future==0.18.2
# via pyjwkest
idna==3.2
idna==3.3
# via requests
inflection==0.5.1
# via drf-yasg
itypes==1.2.0
# via coreapi
jinja2==3.0.1
jinja2==3.0.2
# via coreschema
jmespath==0.10.0
# via
Expand All @@ -146,7 +144,7 @@ markdown==3.3.4
# via -r requirements/base.in
markupsafe==2.0.1
# via jinja2
newrelic==7.0.0.166
newrelic==7.2.2.169
# via edx-django-utils
ordered-set==3.1.1
# via
Expand All @@ -160,18 +158,18 @@ psutil==5.8.0
# via edx-django-utils
pycparser==2.20
# via cffi
pycryptodomex==3.10.4
pycryptodomex==3.11.0
# via pyjwkest
pyjwkest==1.4.2
# via edx-drf-extensions
pyjwt[crypto]==2.1.0
pyjwt[crypto]==2.3.0
# via
# drf-jwt
# edx-drf-extensions
# edx-rest-api-client
pymongo==3.12.0
pymongo==3.12.1
# via edx-opaque-keys
pyparsing==2.4.7
pyparsing==3.0.3
# via packaging
python-dateutil==2.8.2
# via
Expand All @@ -180,9 +178,9 @@ python-dateutil==2.8.2
# elasticsearch-dsl
python-memcached==1.59
# via -r requirements/base.in
pytz==2021.1
pytz==2021.3
# via django
pyyaml==5.4.1
pyyaml==6.0
# via edx-django-release-util
requests==2.26.0
# via
Expand All @@ -192,8 +190,6 @@ requests==2.26.0
# edx-rest-api-client
# pyjwkest
# slumber
rest-condition==1.0.3
# via edx-drf-extensions
ruamel.yaml==0.17.16
# via drf-yasg
ruamel.yaml.clib==0.2.6
Expand All @@ -219,15 +215,15 @@ slumber==0.7.1
# via edx-rest-api-client
sqlparse==0.4.2
# via django
stevedore==3.4.0
stevedore==3.5.0
# via
# edx-django-utils
# edx-opaque-keys
tqdm==4.62.3
# via -r requirements/base.in
unicodecsv==0.14.1
# via djangorestframework-csv
uritemplate==3.0.1
uritemplate==4.1.1
# via
# coreapi
# drf-yasg
Expand Down
File renamed without changes.
10 changes: 5 additions & 5 deletions requirements/travis.txt → requirements/ci.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,15 @@
#
# make upgrade
#
certifi==2021.5.30
certifi==2021.10.8
# via requests
charset-normalizer==2.0.6
charset-normalizer==2.0.7
# via requests
codecov==2.1.12
# via -r requirements/travis.in
coverage==5.5
# via -r requirements/ci.in
coverage==6.0.2
# via codecov
idna==3.2
idna==3.3
# via requests
requests==2.26.0
# via codecov
Expand Down
Loading

0 comments on commit fd3eafa

Please sign in to comment.