cookiecutter-django/.github/workflows/ci.yml

118 lines
2.9 KiB
YAML
Raw Normal View History

2020-11-09 21:46:19 +03:00
name: CI
on:
push:
pull_request:
2020-11-09 21:46:19 +03:00
concurrency:
group: ${{ github.head_ref || github.run_id }}
cancel-in-progress: true
2020-11-09 21:46:19 +03:00
jobs:
lint:
2020-11-09 21:46:19 +03:00
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v3
with:
python-version: "3.9"
cache: pip
- name: Run pre-commit
uses: pre-commit/action@v2.0.3
2020-11-09 21:46:19 +03:00
tests:
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- windows-latest
- macOS-latest
name: "Run tests"
runs-on: ${{ matrix.os }}
2020-11-09 21:46:19 +03:00
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v3
2020-11-09 21:46:19 +03:00
with:
2021-11-20 00:52:04 +03:00
python-version: "3.9"
2021-11-24 19:12:24 +03:00
cache: pip
2020-11-09 21:46:19 +03:00
- name: Install dependencies
run: pip install -r requirements.txt
- name: Run tests
run: pytest tests
docker:
strategy:
fail-fast: false
matrix:
script:
- name: Basic
args: ""
- name: Extended
args: "use_celery=y use_drf=y frontend_pipeline=Gulp"
name: "${{ matrix.script.name }} Docker"
runs-on: ubuntu-latest
2020-11-09 22:18:38 +03:00
env:
DOCKER_BUILDKIT: 1
COMPOSE_DOCKER_CLI_BUILD: 1
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v3
with:
2021-11-20 00:52:04 +03:00
python-version: "3.9"
2021-11-24 19:12:24 +03:00
cache: pip
2021-12-22 11:14:00 +03:00
- name: Install dependencies
run: pip install -r requirements.txt
- name: Docker ${{ matrix.script.name }}
run: sh tests/test_docker.sh ${{ matrix.script.args }}
bare:
strategy:
fail-fast: false
matrix:
script:
- name: With Celery
args: "use_celery=y frontend_pipeline='Django Compressor'"
- name: With Gulp
args: "frontend_pipeline='Gulp'"
name: "${{ matrix.script.name }} Bare metal"
runs-on: ubuntu-latest
services:
redis:
image: redis:5.0
ports:
- 6379:6379
postgres:
image: postgres:12
ports:
- 5432:5432
2020-11-09 22:23:48 +03:00
env:
POSTGRES_PASSWORD: postgres
env:
CELERY_BROKER_URL: "redis://localhost:6379/0"
2020-11-09 22:23:48 +03:00
# postgres://user:password@host:port/database
2020-11-09 22:28:09 +03:00
DATABASE_URL: "postgres://postgres:postgres@localhost:5432/postgres"
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v3
with:
python-version: "3.9"
2021-11-24 19:12:24 +03:00
cache: pip
cache-dependency-path: |
requirements.txt
{{cookiecutter.project_slug}}/requirements/base.txt
{{cookiecutter.project_slug}}/requirements/local.txt
2021-12-22 11:14:00 +03:00
- name: Install dependencies
run: pip install -r requirements.txt
- uses: actions/setup-node@v3
with:
node-version: "16"
- name: Bare Metal ${{ matrix.script.name }}
run: sh tests/test_bare.sh ${{ matrix.script.args }}