Create new matrix strategy for end2end tests #628
Workflow file for this run
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: End-to-End tests | |
on: [pull_request] | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install poetry | |
run: pip install poetry | |
- name: Build | |
run: make build | |
- name: Upload artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: pkg-build | |
path: ./ | |
end2end-test: | |
runs-on: ubuntu-latest | |
continue-on-error: true | |
needs: build | |
strategy: | |
matrix: | |
app: | |
- { name: django-mysql, testfile: end2end/django_mysql_test.py } | |
- { name: django-mysql-gunicorn, testfile: end2end/django_mysql_gunicorn_test.py } | |
- { name: django-postgres-gunicorn, testfile: end2end/django_postgres_gunicorn_test.py } | |
- { name: flask-mongo, testfile: end2end/flask_mongo_test.py } | |
- { name: flask-mysql, testfile: end2end/flask_mysql_test.py } | |
- { name: flask-mysql-uwsgi, testfile: end2end/flask_mysql_uwsgi_test.py } | |
- { name: flask-postgres, testfile: end2end/flask_postgres_test.py } | |
- { name: flask-postgres-xml, testfile: end2end/flask_postgres_xml_test.py } | |
- { name: flask-postgres-xml, testfile: end2end/flask_postgres_xml_lxml_test.py } | |
- { name: quart-postgres-uvicorn, testfile: end2end/quart_postgres_uvicorn_test.py } | |
- { name: starlette-postgres-uvicorn, testfile: end2end/starlette_postgres_uvicorn_test.py } | |
python-version: ["3.10", "3.11", "3.12"] | |
steps: | |
- name: Install packages | |
run: sudo apt update && sudo apt install python3-dev libmysqlclient-dev | |
- name: Download artifacts | |
uses: actions/download-artifact@v4 | |
with: | |
name: pkg-build | |
- name: Start databases | |
working-directory: ./sample-apps/databases | |
run: docker compose up --build -d | |
- name: Build and start aikido mock server | |
run: | | |
cd end2end/server && docker build -t mock_core . | |
docker run --name mock_core -d -p 5000:5000 mock_core | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v2 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
make install | |
- name: Start application | |
working-directory: ./sample-apps/${{ matrix.app.name }} | |
run: nohup make run > output.log & nohup make runZenDisabled & sleep 15 | |
- name: Run end2end tests for application | |
run: tail -f output.log & poetry run pytest ./${{ matrix.app.testfile }} |