Skip to content

Test and Deploy

Test and Deploy #470

Workflow file for this run

name: Test and Deploy
on:
workflow_dispatch:
push:
branches:
- main
- dev
tags:
- 'v*'
paths:
- 'pyproject.toml'
- 'infrastructure/aws/**'
- 'titiler/**'
- '.pre-commit-config.yaml'
pull_request:
env:
LATEST_PY_VERSION: '3.12'
permissions:
id-token: write
contents: read
jobs:
tests:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ['3.10', '3.11', '3.12', '3.13']
steps:
- uses: actions/checkout@v4
- name: Install uv
uses: astral-sh/setup-uv@v3
with:
version: "0.5.*"
enable-cache: true
- name: Set up Python ${{ matrix.python-version }}
run: uv python install ${{ matrix.python-version }}
- name: Install dependencies
run: |
uv sync --all-extras
- name: run pre-commit
if: ${{ matrix.python-version == env.LATEST_PY_VERSION }}
run: |
uv run pre-commit run --all-files
- name: Run tests
run: uv run pytest
cdk-checks:
needs: [tests]
runs-on: ubuntu-latest
environment: dev
if: github.event_name == 'pull_request'
env:
UV_PYTHON: 3.12
TITILER_MULTIDIM_PYTHONWARNINGS: ignore
TITILER_MULTIDIM_DEBUG: true
STACK_ALARM_EMAIL: ${{ secrets.ALARM_EMAIL }}
STACK_CDK_DEFAULT_ACCOUNT: ${{ vars.STACK_CDK_DEFAULT_ACCOUNT }}
STACK_CDK_DEFAULT_REGION: ${{ vars.STACK_CDK_DEFAULT_REGION }}
STACK_READER_ROLE_ARN: ${{ vars.STACK_READER_ROLE_ARN }}
STACK_STAGE: ${{ vars.STACK_STAGE }}
STACK_VPC_ID: ${{ vars.STACK_VPD_ID }}
defaults:
run:
working-directory: infrastructure/aws
steps:
- uses: actions/checkout@v4
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v4
with:
role-to-assume: ${{ vars.AWS_ROLE_ARN }}
role-session-name: github-actions-pr
aws-region: ${{ vars.STACK_CDK_DEFAULT_REGION }}
- uses: ./.github/actions/cdk-deploy
with:
dir: 'infrastructure/aws'
skip_deploy: true
deploy-development:
needs: [tests]
runs-on: ubuntu-latest
environment: dev
if: github.ref == 'refs/heads/main' || github.ref == 'refs/heads/dev'
env:
UV_PYTHON: 3.12
TITILER_MULTIDIM_PYTHONWARNINGS: ignore
TITILER_MULTIDIM_DEBUG: true
STACK_ALARM_EMAIL: ${{ secrets.ALARM_EMAIL }}
STACK_CDK_DEFAULT_ACCOUNT: ${{ vars.STACK_CDK_DEFAULT_ACCOUNT }}
STACK_CDK_DEFAULT_REGION: ${{ vars.STACK_CDK_DEFAULT_REGION }}
STACK_READER_ROLE_ARN: ${{ vars.STACK_READER_ROLE_ARN }}
STACK_STAGE: ${{ vars.STACK_STAGE }}
STACK_VPC_ID: ${{ vars.STACK_VPD_ID }}
defaults:
run:
working-directory: infrastructure/aws
steps:
- uses: actions/checkout@v4
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v4
with:
role-to-assume: ${{ vars.AWS_ROLE_ARN }}
role-session-name: github-actions-dev
aws-region: ${{ vars.STACK_CDK_DEFAULT_REGION }}
- uses: ./.github/actions/cdk-deploy
with:
dir: 'infrastructure/aws'
skip_deploy: false
deploy-production:
needs: [tests]
runs-on: ubuntu-latest
environment: production
if: startsWith(github.ref, 'refs/tags/v')
env:
UV_PYTHON: 3.12
TITILER_MULTIDIM_PYTHONWARNINGS: ignore
TITILER_MULTIDIM_DEBUG: true
STACK_ALARM_EMAIL: ${{ secrets.ALARM_EMAIL }}
STACK_CDK_DEFAULT_ACCOUNT: ${{ vars.STACK_CDK_DEFAULT_ACCOUNT }}
STACK_CDK_DEFAULT_REGION: ${{ vars.STACK_CDK_DEFAULT_REGION }}
STACK_READER_ROLE_ARN: ${{ vars.STACK_READER_ROLE_ARN }}
STACK_STAGE: ${{ vars.STACK_STAGE }}
STACK_VPC_ID: ${{ vars.STACK_VPD_ID }}
defaults:
run:
working-directory: infrastructure/aws
steps:
- uses: actions/checkout@v4
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v4
with:
role-to-assume: ${{ vars.AWS_ROLE_ARN }}
role-session-name: github-actions-dev
aws-region: ${{ vars.STACK_CDK_DEFAULT_REGION }}
- uses: ./.github/actions/cdk-deploy
with:
dir: 'infrastructure/aws'
skip_deploy: false