ci(re-run): see if cache is hitting #87
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: Run behave | |
on: | |
push: | |
branches: | |
- "**" | |
pull_request: | |
branches: | |
- main | |
- develop | |
# Allows you to run this workflow manually from the Actions tab | |
workflow_dispatch: | |
jobs: | |
behave: | |
name: Run Behave | |
runs-on: ubuntu-latest | |
strategy: | |
max-parallel: 4 | |
matrix: | |
python-version: ["3.11", "3.12"] | |
steps: | |
- name: Check out the code | |
uses: actions/checkout@v4 | |
- name: Cache Docker images. | |
uses: ScribeMD/[email protected] | |
with: | |
key: docker-${{ runner.os }}-${{ hashFiles('docker-compose.yaml') }} | |
- name: Cache Docker layers | |
uses: actions/cache@v4 | |
with: | |
path: /tmp/.buildx-cache | |
key: ${{ runner.os }}-single-buildx-${{ github.sha }} | |
restore-keys: | | |
${{ runner.os }}-single-buildx | |
- name: Set up Docker | |
uses: docker/setup-buildx-action@v3 | |
- name: Install Docker Compose | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y docker-compose make | |
- name: Check Docker state (pre-build) | |
run: docker ps | |
- name: Build Docker images | |
run: make build | |
env: | |
PYTHON_IMAGE_VER: "${{ matrix.python-version }}" | |
- name: Migrate Database | |
run: make migrate | |
- name: Run Application | |
run: make run | |
- name: Check Docker state (pre-test) | |
run: docker ps | |
- name: Run pytest + behave with Coverage | |
env: | |
POSTGRES_USER: scram | |
POSTGRES_DB: test_scram | |
run: make coverage.xml | |
- name: Dump docker logs on failure | |
if: failure() | |
uses: jwalton/gh-docker-logs@v2 | |
- name: Upload Coverage to Coveralls | |
if: matrix.python-version == '3.12' | |
uses: coverallsapp/github-action@v2 | |
- name: Upload Coverage to GitHub | |
if: matrix.python-version == '3.12' | |
uses: actions/upload-artifact@v4 | |
with: | |
name: coverage-report | |
path: coverage.xml | |
- name: Display Coverage Metrics | |
if: matrix.python-version == '3.12' | |
uses: 5monkeys/cobertura-action@v14 | |
with: | |
minimum_coverage: "50" | |
- name: Check Docker state (post-test) | |
if: always() | |
run: docker ps | |
- name: Stop Services | |
if: always() | |
run: make stop | |
- name: Clean Up | |
if: always() | |
run: make clean |