Labs64.IO - Regression Tests #5
This file contains hidden or 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: Labs64.IO - Regression Tests | |
| on: | |
| pull_request: | |
| workflow_dispatch: | |
| schedule: | |
| - cron: '0 3 * * *' # nightly full regression | |
| env: | |
| # All tests run through the gateway edge, never straight to a backend port — Cedar | |
| # authorization is enforced at the gateway. Override these via repository/environment | |
| # variables to point at the stack under test (e.g. a self-hosted runner attached to the | |
| # local k3d cluster). mock-oidc mints scoped M2M tokens on demand; see resources/common.resource. | |
| GATEWAY_BASE_URL: ${{ vars.GATEWAY_BASE_URL || 'http://gateway.localhost' }} | |
| AUDITFLOW_BASE_URL: ${{ vars.AUDITFLOW_BASE_URL || 'http://gateway.localhost/auditflow/api/v1' }} | |
| PAYMENT_GATEWAY_BASE_URL: ${{ vars.PAYMENT_GATEWAY_BASE_URL || 'http://gateway.localhost/payment-gateway/api/v1' }} | |
| MOCK_OIDC_BASE_URL: ${{ vars.MOCK_OIDC_BASE_URL || 'http://mock-oidc.localhost' }} | |
| OIDC_ISSUER_ID: ${{ vars.OIDC_ISSUER_ID || 'labs64io' }} | |
| # Optional static override for environments where mock-oidc isn't reachable. | |
| API_TOKEN: ${{ secrets.API_TOKEN }} | |
| jobs: | |
| smoke: | |
| name: Smoke — ${{ matrix.service }} | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| service: | |
| - auditflow | |
| - payment-gateway | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.13' | |
| cache: pip | |
| - name: Install Robot Framework and libraries | |
| run: pip install -r requirements.txt | |
| - name: Smoke suite — ${{ matrix.service }} | |
| run: | | |
| robot \ | |
| --include smoke \ | |
| --outputdir results/${{ matrix.service }} \ | |
| --output output.xml \ | |
| --log log.html \ | |
| --report report.html \ | |
| tests/${{ matrix.service }}/ | |
| - uses: actions/upload-artifact@v4 | |
| if: always() | |
| with: | |
| name: smoke-report-${{ matrix.service }} | |
| path: results/${{ matrix.service }} | |
| p0-blockers: | |
| name: P0 Blocker Tests | |
| runs-on: ubuntu-latest | |
| needs: smoke | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.13' | |
| cache: pip | |
| - name: Install Robot Framework and libraries | |
| run: pip install -r requirements.txt | |
| - name: P0-blocker regression tests | |
| run: | | |
| robot \ | |
| --include p0-blocker \ | |
| --outputdir results/p0-blockers \ | |
| --output output.xml \ | |
| --log log.html \ | |
| --report report.html \ | |
| tests/ | |
| - uses: actions/upload-artifact@v4 | |
| if: always() | |
| with: | |
| name: p0-blocker-report | |
| path: results/p0-blockers | |
| nightly-regression: | |
| name: Nightly Full Regression | |
| if: github.event_name == 'schedule' | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.13' | |
| cache: pip | |
| - name: Install Robot Framework and libraries | |
| run: pip install -r requirements.txt | |
| - name: Full regression across all services | |
| run: | | |
| robot \ | |
| --include regression \ | |
| --exclude flaky \ | |
| --outputdir results/nightly \ | |
| --output output.xml \ | |
| --log log.html \ | |
| --report report.html \ | |
| tests/ | |
| - uses: actions/upload-artifact@v4 | |
| if: always() | |
| with: | |
| name: nightly-regression-report | |
| path: results/nightly |