CHORE: Update dependencies (#1287) #226
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: | |
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 | |
prettier: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Node | |
uses: actions/setup-node@v3 | |
with: | |
node-version-file: .nvmrc | |
- name: Install npm modules | |
run: npm install | |
- name: Lint SCSS and JS | |
run: npm run lint | |
compile-javascript: | |
name: Compile JavaScript | |
runs-on: ubuntu-latest | |
needs: prettier | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Node | |
uses: actions/setup-node@v3 | |
with: | |
node-version-file: .nvmrc | |
- name: Install npm modules | |
run: npm install | |
- name: Compile JavaScript | |
run: npm run compile:js | |
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 | |
compile-sass: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Node | |
uses: actions/setup-node@v3 | |
with: | |
node-version-file: .nvmrc | |
- name: Install npm modules | |
run: npm install | |
- name: Compile SCSS | |
run: npm run compile:css |