Reusable GitHub Actions workflows shared across CAD repos.
ado_comment.ymlfrontend_build_and_deploy.ymlbackend_build_and_deploy.ymlupdate-config-fe.ymlupdate-config-be.ymlget-update-config-be-inputs.ymltest_deployment.ymlfrontend_ci.ymlbackend_ci.ymlaws_ci.ymldelete_stack.ymlrelease.yml
create_shared_workflows_release.yml
Call reusable workflows from app repo.
jobs:
post-comment:
uses: oxctl/shared-workflows/.github/workflows/ado_comment.yml@master
with:
ado_organization: oxforduniversity
ado_project: Canvas
secrets:
ado_username: ${{ secrets.ADO_USERNAME }}
ado_personal_token: ${{ secrets.ADO_PERSONAL_TOKEN }}jobs:
call-frontend-build-and-deploy:
uses: oxctl/shared-workflows/.github/workflows/frontend_build_and_deploy.yml@master
with:
account_type: ${{ fromJSON(needs.aws-params.outputs.json).accountType }}
app_name: ${{ fromJSON(needs.aws-params.outputs.json).appName }}
aws_account_id: ${{ fromJSON(needs.aws-params.outputs.json).awsAccountId }}
aws_parameters: ${{ (startsWith(github.ref_name, 'dr-')) && 'dr' || github.ref_name }}
aws_region: ${{ fromJSON(needs.aws-params.outputs.json).awsRegion }}
env_type: ${{ fromJSON(needs.aws-params.outputs.json).envType }}
github_env: ${{ fromJSON(needs.aws-params.outputs.json).envType }}
ref: ${{ github.ref }}
sha: ${{ github.sha }}
execution-environment: ${{ fromJSON(needs.aws-params.outputs.json).envType }}
secrets: inherit
call-backend-build-and-deploy:
uses: oxctl/shared-workflows/.github/workflows/backend_build_and_deploy.yml@master
with:
account_type: ${{ fromJSON(needs.aws-params.outputs.json).accountType }}
app_name: ${{ fromJSON(needs.aws-params.outputs.json).appName }}
aws_account_id: ${{ fromJSON(needs.aws-params.outputs.json).awsAccountId }}
aws_parameters: ${{ (startsWith(github.ref_name, 'dr-')) && 'dr' || github.ref_name }}
aws_region: ${{ fromJSON(needs.aws-params.outputs.json).awsRegion }}
env_type: ${{ fromJSON(needs.aws-params.outputs.json).envType }}
github_env: ${{ fromJSON(needs.aws-params.outputs.json).envType }}
ref: ${{ github.ref }}
sha: ${{ github.sha }}
secrets: inherit
call-update-config:
uses: oxctl/shared-workflows/.github/workflows/update-config-be.yml@master
needs: [aws-params, call-frontend-build-and-deploy, call-backend-build-and-deploy]
with:
account_type: ${{ fromJSON(needs.aws-params.outputs.json).accountType }}
app_name: ${{ fromJSON(needs.aws-params.outputs.json).appName }}
aws_account_id: ${{ fromJSON(needs.aws-params.outputs.json).awsAccountId }}
aws_region: ${{ fromJSON(needs.aws-params.outputs.json).awsRegion }}
env_type: ${{ fromJSON(needs.aws-params.outputs.json).envType }}
github_env: ${{ fromJSON(needs.aws-params.outputs.json).envType }}
secrets: inherit
call-deployment-tests:
uses: oxctl/shared-workflows/.github/workflows/test_deployment.yml@master
needs: [aws-params, call-frontend-build-and-deploy, call-backend-build-and-deploy, call-update-config]
with:
execution-environment: ${{ fromJSON(needs.aws-params.outputs.json).envType }}
secrets: inheriton:
workflow_dispatch:
inputs:
env_type:
type: choice
required: true
options: [beta, prod]
jobs:
call-update-config:
uses: oxctl/shared-workflows/.github/workflows/update-config-fe.yml@master
with:
env_type: ${{ inputs.env_type }}on:
workflow_dispatch:
inputs:
env_type:
type: choice
required: true
options: [beta, prod]
jobs:
resolve-inputs:
uses: oxctl/shared-workflows/.github/workflows/get-update-config-be-inputs.yml@master
with:
env_type: ${{ inputs.env_type }}
call-update-config:
needs: [resolve-inputs]
uses: oxctl/shared-workflows/.github/workflows/update-config-be.yml@master
with:
account_type: ${{ needs.resolve-inputs.outputs.account_type }}
app_name: ${{ needs.resolve-inputs.outputs.app_name }}
aws_account_id: ${{ needs.resolve-inputs.outputs.aws_account_id }}
aws_region: ${{ needs.resolve-inputs.outputs.aws_region }}
env_type: ${{ needs.resolve-inputs.outputs.env_type }}
github_env: ${{ needs.resolve-inputs.outputs.github_env }}
secrets: inheriton:
pull_request:
branches: [master]
paths:
- 'frontend/**'
- '.github/workflows/frontend*'
jobs:
frontend-ci:
uses: oxctl/shared-workflows/.github/workflows/frontend_ci.yml@masteron:
pull_request:
branches: [master]
paths:
- 'backend/**'
- '.github/workflows/backend*'
jobs:
backend-ci:
uses: oxctl/shared-workflows/.github/workflows/backend_ci.yml@masteron:
pull_request:
branches: [master]
jobs:
aws-ci:
uses: oxctl/shared-workflows/.github/workflows/aws_ci.yml@master
with:
aws_region: eu-west-1
aws_account_id: 730335587339on:
workflow_dispatch:
inputs:
stack-prefix:
type: string
required: true
account-id:
type: string
required: true
region:
type: string
required: true
default: eu-west-1
jobs:
delete-stack:
uses: oxctl/shared-workflows/.github/workflows/delete_stack.yml@master
with:
stack_prefix: ${{ inputs['stack-prefix'] }}
aws_account_id: ${{ inputs['account-id'] }}
region: ${{ inputs.region }}on:
workflow_dispatch:
jobs:
create-release-pr:
uses: oxctl/shared-workflows/.github/workflows/release.yml@master
with:
base_branch: release
head_branch: masterIn this repository, run Actions → "Create shared workflows release" and choose:
bump:patch,minor, ormajor
The workflow creates and pushes the next vX.Y.Z tag, always moves the matching major floating tag (vN) to that new release, and publishes a GitHub Release with generated notes.