Skip to content

global handling of unhandled exceptions in app, graceful handling of service failures getting speech token #120

global handling of unhandled exceptions in app, graceful handling of service failures getting speech token

global handling of unhandled exceptions in app, graceful handling of service failures getting speech token #120

Workflow file for this run

# Docs for the Azure Web Apps Deploy action: https://github.com/Azure/webapps-deploy
# More GitHub Actions for Azure: https://github.com/Azure/actions
name: workbench-app continuous integration
on:
push:
branches:
- main
paths:
- "workbench-app/**"
- ".github/workflows/workbench-app.yml"
pull_request:
branches:
- main
paths:
- "workbench-app/**"
- ".github/workflows/workbench-app.yml"
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
if: ${{ github.ref != 'refs/heads/main' }}
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
name: Install pnpm
with:
version: 9
run_install: false
- name: Install Node.js
uses: actions/setup-node@v4
with:
node-version: 20
cache: 'pnpm'
cache-dependency-path: workbench-app/pnpm-lock.yaml
- name: pnpm install
working-directory: ./workbench-app
run: pnpm install --frozen-lockfile
- name: pnpm build
env:
NODE_OPTIONS: "--max_old_space_size=8192"
VITE_SEMANTIC_WORKBENCH_AUTHORITY: ${{ secrets.VITE_SEMANTIC_WORKBENCH_AUTHORITY }}
VITE_SEMANTIC_WORKBENCH_CLIENT_ID: ${{ secrets.VITE_SEMANTIC_WORKBENCH_CLIENT_ID }}
VITE_SEMANTIC_WORKBENCH_SERVICE_URL: ${{ secrets.VITE_SEMANTIC_WORKBENCH_SERVICE_URL }}
working-directory: ./workbench-app
run: pnpm run build
build-main:
runs-on: ubuntu-latest
if: ${{ github.ref == 'refs/heads/main' }}
environment:
name: production
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
name: Install pnpm
with:
version: 9
run_install: false
- name: Install Node.js
uses: actions/setup-node@v4
with:
node-version: 20
cache: 'pnpm'
cache-dependency-path: workbench-app/pnpm-lock.yaml
- name: pnpm install
working-directory: ./workbench-app
run: pnpm install --frozen-lockfile
- name: pnpm build
env:
NODE_OPTIONS: "--max_old_space_size=8192"
VITE_SEMANTIC_WORKBENCH_AUTHORITY: ${{ secrets.VITE_SEMANTIC_WORKBENCH_AUTHORITY }}
VITE_SEMANTIC_WORKBENCH_CLIENT_ID: ${{ secrets.VITE_SEMANTIC_WORKBENCH_CLIENT_ID }}
VITE_SEMANTIC_WORKBENCH_SERVICE_URL: ${{ secrets.VITE_SEMANTIC_WORKBENCH_SERVICE_URL }}
working-directory: ./workbench-app
run: pnpm run build
- name: Zip artifact for deployment
if: ${{ github.event_name == 'push' || github.event_name == 'workflow_dispatch' }}
run: zip semantic-workbench-release.zip . -r
working-directory: ./workbench-app/build
- name: Upload artifact for deployment job
if: ${{ github.event_name == 'push' || github.event_name == 'workflow_dispatch' }}
uses: actions/upload-artifact@v4
with:
name: semantic-workbench-node-app
path: ./workbench-app/build/semantic-workbench-release.zip
deploy:
runs-on: ubuntu-latest
if: ${{ (github.event_name == 'push' || github.event_name == 'workflow_dispatch') && github.ref == 'refs/heads/main' && vars.DEPLOYMENT_ENABLED == 'true' }}
needs: build-main
environment:
name: production
permissions:
id-token: write #This is required for requesting the JWT
steps:
- name: Download artifact from build job
uses: actions/download-artifact@v4
with:
name: semantic-workbench-node-app
- name: Unzip artifact for deployment
run: unzip semantic-workbench-release.zip
- name: Login to Azure
uses: azure/login@v2
with:
client-id: ${{ secrets.AZURE_CLIENT_ID }}
tenant-id: ${{ secrets.AZURE_TENANT_ID }}
subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
- name: "Deploy to Azure Web App"
id: deploy-to-webapp
uses: azure/webapps-deploy@v2
with:
app-name: ${{ secrets.AZURE_WORKBENCH_APP_SERVICE_NAME }}
slot-name: "Production"
package: .