Third attempt to explore CI failures #844
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: ci-tox | |
# Enable Buildkit and let compose use it to speed up image building | |
env: | |
DOCKER_BUILDKIT: 1 | |
COMPOSE_DOCKER_CLI_BUILD: 1 | |
on: | |
pull_request: | |
branches: [ "master", "main" ] | |
paths-ignore: [ "docs/**" ] | |
push: | |
branches: [ "master", "main" ] | |
paths-ignore: [ "docs/**" ] | |
jobs: | |
linter: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Code Repository | |
uses: actions/[email protected] | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: "3.9" | |
- name: Run pre-commit | |
uses: pre-commit/[email protected] | |
sqlite: | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
max-parallel: 10 | |
matrix: | |
python-version: ["3.8", "3.9", "3.10", "3.11"] | |
steps: | |
- uses: actions/[email protected] | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
python -m pip install --upgrade tox tox-gh-actions | |
- name: Test with tox | |
# Sometimes tox fails to build the package correctly and intermittently throws an OSError or BadZipFile error. | |
# Upon retry, it seems to work. | |
uses: nick-fields/retry@v2 | |
id: retry-sqlite | |
with: | |
timeout_minutes: 10 | |
max_attempts: 3 | |
retry_on: error | |
command: tox | |
env: | |
DBBACKEND: sqlite3 | |
DBNAME: ":memory:" | |
- name: Upload coverage data | |
uses: actions/upload-artifact@v3 | |
with: | |
name: coverage-data | |
path: ".coverage.*" | |
mysql: | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
max-parallel: 10 | |
matrix: | |
python-version: ["3.8", "3.9", "3.10", "3.11"] | |
mariadb-version: ["10.4"] | |
services: | |
database: | |
image: mariadb:${{ matrix.mariadb-version }} | |
env: | |
MYSQL_ROOT_PASSWORD: rootpw | |
MYSQL_DATABASE: test | |
ports: | |
- 3306:3306 | |
options: --tmpfs /var/lib/mysql | |
steps: | |
- uses: actions/[email protected] | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
python -m pip install --upgrade tox tox-gh-actions | |
- name: Test with tox | |
# Sometimes tox fails to build the package correctly and intermittently throws an OSError or BadZipFile error. | |
# Upon retry, it seems to work. | |
uses: nick-fields/retry@v2 | |
id: retry-sqlite | |
with: | |
timeout_minutes: 10 | |
max_attempts: 3 | |
retry_on: error | |
command: tox | |
env: | |
DBBACKEND: mysql | |
DBNAME: test | |
DBUSER: root | |
DBPASSWORD: rootpw | |
DBHOST: 127.0.0.1 | |
- name: Upload coverage data | |
uses: actions/upload-artifact@v3 | |
with: | |
name: coverage-data | |
path: ".coverage.*" | |
coverage: | |
name: Check coverage. | |
runs-on: "ubuntu-latest" | |
needs: [sqlite, mysql] | |
steps: | |
- uses: actions/[email protected] | |
- uses: actions/setup-python@v4 | |
with: | |
# Use latest, so it understands all syntax. | |
python-version: "3.10" | |
- run: python -m pip install --upgrade coverage[toml] django==3.2.16 django-coverage-plugin | |
- name: Download coverage data. | |
uses: actions/download-artifact@v3 | |
with: | |
name: coverage-data | |
- name: Combine coverage & check percentage | |
run: | | |
python -m coverage combine | |
python -m coverage xml | |
- name: Upload coverage to Codecov | |
uses: codecov/codecov-action@v3 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} |