Skip to content

Merge pull request #393 from UW-GAC/feature/add-search-functionality-… #849

Merge pull request #393 from UW-GAC/feature/add-search-functionality-…

Merge pull request #393 from UW-GAC/feature/add-search-functionality-… #849

Workflow file for this run

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-mysql
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 }}