Skip to content

Merge branch 'edge' into testing-liquid-classes-api-in-grav-script #25296

Merge branch 'edge' into testing-liquid-classes-api-in-grav-script

Merge branch 'edge' into testing-liquid-classes-api-in-grav-script #25296

# Run tests, build PD, and deploy it to sandbox
name: 'PD test, build, and deploy'
on:
pull_request:
paths:
- 'protocol-designer/**'
- 'step-generation/**'
- 'shared-data/**'
- 'components/**'
- 'package.json'
- '.github/workflows/pd-test-build-deploy.yaml'
- '.github/actions/js/setup/action.yml'
- '.github/actions/git/resolve-tag/action.yml'
- '.github/actions/environment/complex-variables/action.yml'
push:
paths:
- 'protocol-designer/**'
- 'step-generation/**'
- 'shared-data/**'
- 'components/**'
- 'package.json'
- '.github/workflows/pd-test-build-deploy.yaml'
- '.github/actions/js/setup/action.yml'
- '.github/actions/git/resolve-tag/action.yml'
- '.github/actions/environment/complex-variables/action.yml'
branches:
- '**'
tags:
- 'protocol-designer*'
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}-${{ github.ref_name != 'edge' || github.run_id}}-${{ github.ref_type != 'tag' || github.run_id }}
cancel-in-progress: true
defaults:
run:
shell: bash
env:
CI: true
jobs:
unit-test:
name: 'protocol designer unit tests'
runs-on: 'ubuntu-24.04'
timeout-minutes: 20
steps:
- name: 'Checkout Repository'
uses: actions/checkout@v4
- uses: ./.github/actions/js/setup
- name: 'run unit tests'
run: make -C protocol-designer test-cov
- name: 'Upload coverage report'
uses: codecov/codecov-action@v5
with:
flags: protocol-designer
token: ${{ secrets.CODECOV_TOKEN }}
e2e-test:
name: 'protocol designer e2e tests'
runs-on: 'ubuntu-24.04'
timeout-minutes: 20
steps:
- name: 'Checkout Repository'
uses: actions/checkout@v4
- uses: ./.github/actions/js/setup
- name: 'run test-e2e'
run: make -C protocol-designer test-e2e
build-pd:
timeout-minutes: 20
name: 'build protocol designer'
needs: ['unit-test', 'e2e-test']
runs-on: 'ubuntu-24.04'
if: github.event_name != 'pull_request'
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/js/setup
- name: 'build PD'
env:
OT_PD_MIXPANEL_ID: ${{ secrets.OT_PD_MIXPANEL_ID }}
OT_PD_MIXPANEL_DEV_ID: ${{ secrets.OT_PD_MIXPANEL_DEV_ID }}
run: |
make -C protocol-designer NODE_ENV=development
- name: 'upload github artifact'
uses: actions/upload-artifact@v4
with:
name: 'pd-artifact'
path: protocol-designer/dist
deploy-pd:
timeout-minutes: 10
name: 'deploy protocol designer'
needs: ['build-pd']
runs-on: 'ubuntu-24.04'
if: github.event_name != 'pull_request'
steps:
- name: 'Checkout Repository'
uses: actions/checkout@v4
- uses: ./.github/actions/git/resolve-tag
- uses: ./.github/actions/environment/complex-variables
- name: 'download PD build'
uses: 'actions/download-artifact@v4'
with:
name: pd-artifact
path: ./dist
- name: 'configure ot3 s3 deploy creds and deploy'
shell: bash
env:
AWS_ACCESS_KEY_ID: ${{ secrets.PD_S3_SANDBOX_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.PD_S3_SANDBOX_SECRET }}
AWS_DEFAULT_REGION: us-east-1
run: |
aws configure set aws_access_key_id ${{ secrets.PD_S3_SANDBOX_KEY_ID }} --profile identity
aws configure set aws_secret_access_key ${{ secrets.PD_S3_SANDBOX_SECRET }} --profile identity
aws configure set region us-east-2 --profile identity
aws configure set output json --profile identity
aws configure set region us-east-2 --profile deploy
aws configure set role_arn ${{ secrets.OT_PD_DEPLOY_ROLE }} --profile deploy
aws configure set source_profile identity --profile deploy
aws s3 sync ./dist s3://sandbox.designer.opentrons.com/${{ env.OT_BRANCH }} --acl=public-read --profile=deploy
# invalidate both sandbox.opentrons.com and www.sandbox.opentrons.com cloudfront caches
aws cloudfront create-invalidation --distribution-id ${{ secrets.PD_CLOUDFRONT_SANDBOX_DISTRIBUTION_ID }} --paths "/*" --profile deploy
aws cloudfront create-invalidation --distribution-id ${{ secrets.PD_CLOUDFRONT_SANDBOX_WWW_DISTRIBUTION_ID }} --paths "/*" --profile deploy