Docker refactor ready for AWS #3847
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 | |
on: | |
push: | |
branches: | |
- main | |
- "release/**" | |
pull_request: | |
env: | |
PYTHON_VERSION: "3.11" | |
POETRY_VERSION: "1.5.1" | |
jobs: | |
lint-python: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ env.PYTHON_VERSION }} | |
cache: "pip" | |
cache-dependency-path: "**/lint-requirements.txt" | |
- run: pip install -r lint-requirements.txt | |
- name: Check compliance with flake8 | |
run: flake8 . | |
- name: Check compliance with isort | |
run: isort -c . | |
- name: Check compliance with Black | |
run: black etna config --check --fast | |
test-python: | |
runs-on: ubuntu-latest | |
needs: [lint-python] | |
env: | |
DJANGO_SETTINGS_MODULE: config.settings.test | |
DATABASE_ENGINE: django.db.backends.postgresql | |
DATABASE_NAME: postgres | |
DATABASE_USER: postgres | |
DATABASE_PASSWORD: postgres | |
DATABASE_HOST: localhost | |
DATABASE_PORT: 5432 | |
services: | |
postgres: | |
image: postgres:12.3 | |
env: | |
POSTGRES_USER: ${{ env.DATABASE_USER }} | |
POSTGRES_PASSWORD: ${{ env.DATABASE_PASSWORD }} | |
POSTGRES_DB: ${{ env.DATABASE_NAME }} | |
ports: | |
- 5432:5432 | |
options: --health-cmd pg_isready --health-interval 1s --health-timeout 3s --health-retries 10 | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ env.PYTHON_VERSION }} | |
- uses: snok/install-poetry@v1 | |
with: | |
version: ${{ env.POETRY_VERSION }} | |
virtualenvs-create: true | |
virtualenvs-in-project: true | |
virtualenvs-path: .venv | |
- id: cached-poetry-dependencies | |
uses: actions/cache@v3 | |
with: | |
path: .venv | |
key: ds-wagtail-venv-${{ runner.os }}-${{ env.POETRY_VERSION }}-${{ env.PYTHON_VERSION }}-${{ hashFiles('**/poetry.lock') }} | |
- name: Install dependencies | |
if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true' | |
run: poetry install --no-interaction --no-root | |
- name: Run Django checks | |
run: poetry run python manage.py check | |
- name: Run test suite | |
run: poetry run coverage run manage.py test etna | |
- name: Prepare coverage report | |
run: poetry run coverage xml | |
- name: Check for missing migrations | |
run: poetry run python manage.py makemigrations --check --noinput | |
- name: Upload coverage report to Codecov | |
uses: codecov/codecov-action@v3 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
env_vars: OS,PYTHON_VERSION | |
fail_ci_if_error: true | |
move_coverage_to_trash: true | |
test-javascript: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Install npm modules | |
run: npm install | |
- name: Run jest tests | |
run: npm test |