name: CI on: push: pull_request: concurrency: group: ${{ github.head_ref || github.run_id }} cancel-in-progress: true jobs: lint: 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@v3.0.0 tests: strategy: fail-fast: false matrix: os: - ubuntu-latest - windows-latest - macOS-latest name: "Run tests" runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v3 - uses: actions/setup-python@v3 with: python-version: "3.9" cache: pip - 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 env: DOCKER_BUILDKIT: 1 COMPOSE_DOCKER_CLI_BUILD: 1 steps: - uses: actions/checkout@v3 - uses: actions/setup-python@v3 with: python-version: "3.9" cache: pip - 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 env: POSTGRES_PASSWORD: postgres env: CELERY_BROKER_URL: "redis://localhost:6379/0" # postgres://user:password@host:port/database DATABASE_URL: "postgres://postgres:postgres@localhost:5432/postgres" steps: - uses: actions/checkout@v3 - uses: actions/setup-python@v3 with: python-version: "3.9" cache: pip cache-dependency-path: | requirements.txt {{cookiecutter.project_slug}}/requirements/base.txt {{cookiecutter.project_slug}}/requirements/local.txt - 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 }}