Skip to content

Labs64.IO - Regression Tests #6

Labs64.IO - Regression Tests

Labs64.IO - Regression Tests #6

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