Skip to content

workbench service test and deploy #7

workbench service test and deploy

workbench service test and deploy #7

name: workbench service test and deploy
on:
pull_request:
branches: ["main"]
paths:
[
".github/workflows/semantic-workbench-service.yml",
"workbench-service/**",
]
push:
branches: ["main"]
paths:
[
".github/workflows/semantic-workbench-service.yml",
"workbench-service/**",
]
workflow_dispatch:
defaults:
run:
working-directory: workbench-service
jobs:
test:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version: ["3.11"]
poetry-version: ["1.7.1"]
dbtype: ["sqlite", "postgresql"]
steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
cache: pip
- name: Install poetry
uses: abatilo/actions-poetry@v2
with:
poetry-version: ${{ matrix.poetry-version }}
- name: Install package
run: |
poetry install
- name: pytest
run: |
poetry run pytest --dbtype=${{ matrix.dbtype }}
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: docker-build-workbench
run: |
make docker-build-workbench
deploy:
runs-on: ubuntu-latest
environment: production
permissions:
id-token: write # for OIDC login
contents: read
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}-workbench
needs: [build, test]
if: github.event_name == 'push' || github.event_name == 'workflow_dispatch'
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.AUZRE_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-workbench
run: |
make docker-push-workbench
- name: docker-deploy-workbench
run: |
make docker-deploy-workbench