CI #583
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: | |
pull_request: | |
schedule: | |
# “At 00:00 on every 7th day-of-month from 1 through 31.” (https://crontab.guru) | |
- cron: "0 0 1/7 * *" | |
jobs: | |
ci-job: | |
name: Checks | |
uses: ./.github/workflows/checks.yml | |
fast-tests: | |
name: Tests (Python-${{ matrix.python-version }}) | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
python-version: ["3.9", "3.10", "3.11"] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup Python & Poetry Environment | |
uses: exasol/python-toolbox/.github/actions/python-environment@0.14.0 | |
with: | |
python-version: ${{ matrix.python-version }} | |
poetry-version: 1.2.2 | |
- name: Run Unit Tests | |
run: poetry run nox -s test:unit | |
- name: Upload Artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: .coverage | |
path: .coverage | |
metrics: | |
needs: [ fast-tests ] | |
uses: ./.github/workflows/report.yml | |
gate-1: | |
name: Gate 1 - Regular CI | |
needs: [ fast-tests ] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Branch Protection | |
run: true | |
slow-test-detection: | |
name: Run Slow or Expensive Tests (e.g. SaaS)? | |
runs-on: ubuntu-latest | |
steps: | |
- name: Detect Slow Tests | |
run: true | |
environment: | |
slow-tests | |
run-slow-tests: | |
name: Run Slow or Expensive Tests (e.g. SaaS) if Requested | |
runs-on: ubuntu-latest | |
needs: [ slow-test-detection ] | |
strategy: | |
fail-fast: false | |
matrix: | |
python-version: ["3.9", "3.10", "3.11"] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup Python & Poetry Environment | |
uses: exasol/python-toolbox/.github/actions/python-environment@0.14.0 | |
with: | |
python-version: ${{ matrix.python-version }} | |
poetry-version: "1.2.2" | |
- name: Run Integration Tests | |
env: | |
SAAS_HOST: ${{ secrets.INTEGRATION_TEAM_SAAS_STAGING_HOST }} | |
SAAS_ACCOUNT_ID: ${{ secrets.INTEGRATION_TEAM_SAAS_STAGING_ACCOUNT_ID }} | |
SAAS_PAT: ${{ secrets.INTEGRATION_TEAM_SAAS_STAGING_PAT }} | |
run: poetry run pytest --backend=all test/integration | |
gate-2: | |
name: Gate 2 - Allow Merge | |
runs-on: ubuntu-latest | |
needs: [ run-slow-tests ] | |
steps: | |
- name: Branch Protection | |
run: true |