Skip to content

release: implement CI/CD fixes and cut v1.0.0 #97

release: implement CI/CD fixes and cut v1.0.0

release: implement CI/CD fixes and cut v1.0.0 #97

Workflow file for this run

name: CI Tests
on:
push:
branches: [ main, develop ]
paths:
- 'src/**'
- 'tests/**'
- 'pyproject.toml'
- 'requirements*.txt'
- 'pytest.ini'
- '.github/workflows/ci-tests.yml'
pull_request:
branches: [ main, develop ]
paths:
- 'src/**'
- 'tests/**'
- 'pyproject.toml'
- 'requirements*.txt'
- 'pytest.ini'
- '.github/workflows/ci-tests.yml'
schedule:
- cron: '0 2 * * *'
permissions:
contents: read
pull-requests: read
env:
AWS_DEFAULT_REGION: us-east-1
AWS_ACCESS_KEY_ID: testing
AWS_SECRET_ACCESS_KEY: testing
ENVIRONMENT: testing
TESTING: true
jobs:
config:
name: Configuration
uses: ./.github/workflows/shared-config.yml
setup-cache:
name: Setup Test Cache
needs: config
uses: ./.github/workflows/cache-management.yml
with:
cache-type: dependencies
cache-key-base: test-deps
python-version: ${{ needs.config.outputs.default-python-version }}
tests:
name: Quick Tests (Default Python)
needs: [config, setup-cache]
uses: ./.github/workflows/reusable-test.yml
with:
test-type: unit
python-version: ${{ needs.config.outputs.default-python-version }}
default-python-version: ${{ needs.config.outputs.default-python-version }}
continue-on-error: true # TODO: Remove once tests are stable
build-and-package:
name: Build & Package
runs-on: ubuntu-latest
needs: [config, setup-cache]
permissions:
contents: read
steps:
- name: Checkout code
uses: actions/checkout@v6.0.1
- name: Setup UV with cache
uses: ./.github/actions/setup-uv-cached
with:
cache-key: ${{ needs.setup-cache.outputs.cache-key }}
fail-on-cache-miss: false
- name: Build package
run: make build
- name: Upload build artifacts
uses: actions/upload-artifact@v6.0.0
with:
name: build-artifacts
path: |
dist/
build/
test-report:
name: Generate Test Report
runs-on: ubuntu-latest
needs: [config, setup-cache, tests]
if: always()
permissions:
contents: read
steps:
- name: Checkout code
uses: actions/checkout@v6.0.1
- name: Setup UV with cache
uses: ./.github/actions/setup-uv-cached
with:
cache-key: ${{ needs.setup-cache.outputs.cache-key }}
fail-on-cache-miss: false
- name: Download test results
uses: actions/download-artifact@v7.0.0
with:
path: test-results/
- name: Generate test report
run: make test-report
continue-on-error: true
- name: Upload test report
uses: actions/upload-artifact@v6.0.0
if: always()
with:
name: test-report
path: |
test-results-combined.xml
coverage-combined.xml
htmlcov/
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v5
if: always()
with:
files: coverage-combined.xml
flags: unit
name: unit-tests