Skip to content

Aspire Orchestration and Deployment #143

Aspire Orchestration and Deployment

Aspire Orchestration and Deployment #143

name: workbench-service continuous integration
on:
pull_request:
branches: ["main"]
paths:
- "workbench-service/**"
- "libraries/python/semantic-workbench-api-model/**"
- "tools/docker/**"
- ".github/workflows/workbench-service.yml"
push:
branches: ["main"]
paths:
- "workbench-service/**"
- "libraries/python/semantic-workbench-api-model/**"
- "tools/docker/**"
- ".github/workflows/workbench-service.yml"
workflow_dispatch:
defaults:
run:
working-directory: workbench-service
jobs:
test:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version: ["3.11"]
dbtype: ["sqlite", "postgresql"]
steps:
- uses: actions/checkout@v4
- name: Install uv
uses: astral-sh/setup-uv@v3
- name: Set up Python ${{ matrix.python-version }}
run: uv python install ${{ matrix.python-version }}
- name: pytest
run: uv run pytest --dbtype=${{ matrix.dbtype }}
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: docker-build
run: |
make docker-build
deploy:
runs-on: ubuntu-latest
environment: production
permissions:
id-token: write # for OIDC login
contents: read
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
needs: [build, test]
if: ${{ (github.event_name == 'push' || github.event_name == 'workflow_dispatch') && github.ref == 'refs/heads/main' && vars.DEPLOYMENT_ENABLED == 'true' }}
env:
DOCKER_IMAGE_TAG: ${{ github.sha }}
DOCKER_REGISTRY_NAME: ${{ secrets.AZURE_CONTAINER_REGISTRY_NAME }}
AZURE_WEBSITE_NAME: ${{ secrets.AZURE_WORKBENCH_SERVICE_NAME }}
AZURE_WEBSITE_RESOURCE_GROUP: ${{ secrets.AZURE_WEBSITE_RESOURCE_GROUP }}
AZURE_WEBSITE_SUBSCRIPTION: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
steps:
- uses: actions/checkout@v4
- uses: azure/login@v2
with:
client-id: ${{ secrets.AZURE_CLIENT_ID }}
tenant-id: ${{ secrets.AZURE_TENANT_ID }}
subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
- name: docker-push
run: |
make docker-push
- name: docker-deploy
run: |
make docker-deploy