Skip to content

build(deps): bump codecov/codecov-action from 3 to 4 #813

build(deps): bump codecov/codecov-action from 3 to 4

build(deps): bump codecov/codecov-action from 3 to 4 #813

Workflow file for this run

---
name: test
'on':
push:
branches:
- master
pull_request:
workflow_dispatch:
jobs:
safety:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install poetry
run: |
curl -sSL "https://install.python-poetry.org" | python
# Adding `poetry` to `$PATH`:
echo "$HOME/.poetry/bin" >> $GITHUB_PATH
- name: Install dependencies
run: |
poetry config virtualenvs.in-project true
poetry run pip install -U pip
poetry install
- name: "Run safety"
run: make safety
build:
runs-on: ubuntu-latest
continue-on-error: ${{ matrix.continue-on-error }}
env:
DJANGO_DATABASE_ENGINE: "${{ matrix.env.DJANGO_DATABASE_ENGINE || 'django.db.backends.sqlite3' }}"
DJANGO_DATABASE_USER: django
DJANGO_DATABASE_PASSWORD: passwd123
DJANGO_DATABASE_NAME: db
DJANGO_DATABASE_HOST: 127.0.0.1
DJANGO_DATABASE_PORT: "${{ matrix.env.DJANGO_DATABASE_PORT }}"
DOCKERIZE_VERSION: v0.6.1
strategy:
matrix:
python-version: ['3.8', '3.9', '3.10', '3.11']
django-version:
- 'Django~=3.2.0'
- 'Django~=4.1.0'
- 'Django~=4.2.0'
docker-compose-services: ['']
additional-dependencies: ['']
env: [{}]
continue-on-error: [false]
integration-test-setup-script: ['']
include:
- python-version: '3.11'
django-version: 'https://github.com/django/django/archive/main.zip'
continue-on-error: true
- python-version: '3.10'
django-version: 'Django~=4.1.0'
docker-compose-services: postgresql-db
additional-dependencies: psycopg2
env:
DJANGO_DATABASE_ENGINE: 'django.db.backends.postgresql'
DJANGO_DATABASE_PORT: 5432
continue-on-error: false
- python-version: '3.10'
django-version: 'Django~=4.1.0'
docker-compose-services: mysql-db
additional-dependencies: mysqlclient
env:
DJANGO_DATABASE_ENGINE: 'django.db.backends.mysql'
DJANGO_DATABASE_PORT: 3306
continue-on-error: false
integration-test-setup-script: >-
./.dev/scripts/ci-mysql-setup-integration-tests.sh
- python-version: '3.10'
django-version: 'Django~=4.1.0'
docker-compose-services: maria-db
additional-dependencies: mysqlclient
env:
DJANGO_DATABASE_ENGINE: 'django.db.backends.mysql'
DJANGO_DATABASE_PORT: 3307
continue-on-error: false
integration-test-setup-script: >-
./.dev/scripts/ci-mysql-setup-integration-tests.sh
steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install poetry
run: |
curl -sSL "https://install.python-poetry.org" | python
# Adding `poetry` to `$PATH`:
echo "$HOME/.poetry/bin" >> $GITHUB_PATH
- name: Install dependencies
run: |
poetry config virtualenvs.in-project true
poetry run pip install -U pip
poetry install
poetry run pip install \
--upgrade \
"${{ matrix.django-version }}" \
${{ matrix.additional-dependencies }}
- name: Pull and build docker-compose services
if: ${{ matrix.docker-compose-services }}
run: |
docker-compose pull ${{ matrix.docker-compose-services }}
docker-compose up --detach ${{ matrix.docker-compose-services }}
- name: Wait for docker-compose services
if: ${{ matrix.docker-compose-services }}
run: |
wget \
https://github.com/jwilder/dockerize/releases/download/${DOCKERIZE_VERSION}/dockerize-linux-amd64-${DOCKERIZE_VERSION}.tar.gz \
&& tar -C . -xzvf dockerize-linux-amd64-${DOCKERIZE_VERSION}.tar.gz \
&& rm dockerize-linux-amd64-${DOCKERIZE_VERSION}.tar.gz \
&& chmod +x dockerize
./dockerize \
-wait "tcp://localhost:${{ matrix.env.DJANGO_DATABASE_PORT }}" \
-wait-retry-interval "1s" \
-timeout "30s"
- name: "Run checks for python ${{ matrix.python-version }} and django ${{ matrix.django-version }}"
run: make test
- name: >-
Run integration tests for python ${{ matrix.python-version }}
and django ${{ matrix.django-version }} using
${{ matrix.docker-compose-services }}
if: ${{ matrix.docker-compose-services }}
run: |
if [ -f '${{ matrix.integration-test-setup-script }}' ]; then
bash '${{ matrix.integration-test-setup-script }}'
fi
CHECK_OUTPUT="$(poetry run python django_test_app/manage.py check 2>&1 || true)"
echo "${CHECK_OUTPUT}"
echo "${CHECK_OUTPUT}" \
| grep --quiet --extended-regexp '^System check identified 4 issues'
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v4
with:
file: ./coverage.xml
- name: Stop docker-compose services
if: ${{ always() && matrix.docker-compose-services }}
run: docker-compose down || true