Update test.yml (#51) #215
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Tests | |
on: | |
# Trigger the workflow on push or pull request, | |
# but only for the main branch | |
push: | |
branches: | |
- main | |
pull_request: | |
branches: | |
- main | |
release: | |
types: | |
- created | |
jobs: | |
test: | |
runs-on: ubuntu-latest | |
services: | |
selenium: | |
image: selenium/standalone-firefox:latest | |
ports: | |
- "4444:4444" # Selenium | |
- "5900:5900" # VNC | |
localstack: | |
image: localstack/localstack:latest | |
env: | |
SERVICES: s3 | |
DEFAULT_REGION: us-west-1 | |
AWS_ACCESS_KEY_ID: test | |
AWS_SECRET_ACCESS_KEY: test | |
# enable persistance | |
PERSISTENCE: 1 | |
LAMBDA_EXECUTOR: local | |
DOCKER_HOST: unix:///var/run/docker.sock | |
DEBUG: true | |
volumes: | |
# It doesn't seem like the scripts in entrypoint are being ran... or they are not copied over since | |
# the checkout action happens after init services on Github Actions | |
# - "${{ github.workspace }}/docker-entrypoint-initaws.d:/docker-entrypoint-initaws.d" | |
- "${{ github.workspace }}/volume:/var/lib/localstack" | |
- "/var/run/docker.sock:/var/run/docker.sock" | |
ports: | |
- 4566:4566 | |
- 4571:4571 | |
options: --health-cmd="curl http://localhost:4566/health?reload" --health-interval=10s --health-timeout=5s --health-retries=3 | |
strategy: | |
matrix: | |
python-version: [3.8, 3.9, 3.10.0, 3.11] | |
django-version: [3.2, 4.0.4] | |
include: | |
# Version 4.0 of Django drops support for python 3.6 & 3.7 | |
- python-version: 3.7 | |
django-version: 3.2 | |
env: | |
DJANGO_VERSION: ${{ matrix.django-version }} | |
PYTHON_VERSION: ${{ matrix.python-version }} | |
COMPOSE_INTERACTIVE_NO_CLI: 1 | |
AWS_ACCESS_KEY_ID: test | |
AWS_SECRET_ACCESS_KEY: test | |
AWS_DEFAULT_REGION: us-west-1 | |
steps: | |
- name: Update Permissions | |
run: | | |
sudo chown -R $USER:$USER ${{ github.workspace }} | |
# required because actions/checkout@2 wants to delete the localstack folder | |
- uses: actions/checkout@v2 | |
- name: Build Docker for Python 3.6 | |
if: ${{ matrix.python-version == 3.6 }} | |
run: | | |
export SELENIUM_VERSION=3.141.0 | |
docker-compose -f docker-compose.ci.yml up -d --build | |
- name: Build Docker for other Python versions | |
if: ${{ matrix.python-version != 3.6 }} | |
run: | | |
export SELENIUM_VERSION=4.0.0a7 | |
docker-compose -f docker-compose.ci.yml up -d --build | |
- name: Attempt to connect to localstack and create bucket | |
run: | | |
curl -X GET http://localhost:4566/health | |
aws --endpoint-url http://localhost:4566 s3 mb s3://mybucket 2> /dev/null || true | |
# Since docker-entrypoint-initaws.d can't be used to create the s3 bucket on CI | |
- name: Integration Test | |
run: | | |
docker exec -t web_main make test-all | |
# Known Issue: docker-compose cannot run/exec in container via service name when in host network_mode. | |
# See: https://github.com/docker/compose/issues/4548 | |
# IE: this doesn't work: docker-compose -f docker-compose.ci.yml run web make test-all | |
- name: Coveralls | |
uses: AndreMiras/coveralls-python-action@develop | |
with: | |
parallel: true | |
coveralls: | |
needs: [test] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Coveralls Finished | |
uses: AndreMiras/coveralls-python-action@develop | |
with: | |
parallel-finished: true |