Skip to content

feat: added unit tests for laboratory runs related lambdas (#664) #606

feat: added unit tests for laboratory runs related lambdas (#664)

feat: added unit tests for laboratory runs related lambdas (#664) #606

# ~~ Generated by projen. To modify, edit .projenrc.ts and run "pnpm dlx projen".
name: cicd-release-quality
on:
push:
branches:
- development
jobs:
build-deploy-back-end:
name: Build & Deploy Back-End
runs-on: ubuntu-latest
permissions:
id-token: write
contents: write
actions: read
environment: quality
env:
NODE_OPTIONS: --max-old-space-size=8192
AWS_ACCOUNT_ID: ${{ secrets.AWS_ACCOUNT_ID }}
AWS_REGION: ${{ secrets.AWS_REGION }}
ENV_TYPE: ${{ vars.ENV_TYPE }}
ENV_NAME: ${{ vars.ENV_NAME }}
APP_DOMAIN_NAME: ${{ vars.APP_DOMAIN_NAME }}
AWS_HOSTED_ZONE_ID: ${{ secrets.AWS_HOSTED_ZONE_ID }}
AWS_CERTIFICATE_ARN: ${{ secrets.AWS_CERTIFICATE_ARN }}
JWT_SECRET_KEY: ${{ secrets.JWT_SECRET_KEY }}
SYSTEM_ADMIN_EMAIL: ${{ vars.SYSTEM_ADMIN_EMAIL }}
SYSTEM_ADMIN_PASSWORD: ${{ secrets.SYSTEM_ADMIN_PASSWORD }}
ORG_ADMIN_EMAIL: ${{ vars.ORG_ADMIN_EMAIL }}
ORG_ADMIN_PASSWORD: ${{ secrets.ORG_ADMIN_PASSWORD }}
LAB_MANAGER_EMAIL: ${{ vars.LAB_MANAGER_EMAIL }}
LAB_MANAGER_PASSWORD: ${{ secrets.LAB_MANAGER_PASSWORD }}
LAB_TECHNICIAN_EMAIL: ${{ vars.LAB_TECHNICIAN_EMAIL }}
LAB_TECHNICIAN_PASSWORD: ${{ secrets.LAB_TECHNICIAN_PASSWORD }}
TEST_ACCESS_TOKEN: ${{ secrets.TEST_ACCESS_TOKEN }}
TEST_S3_URL: ${{ secrets.TEST_S3_URL }}
TEST_WORKSPACE_ID: ${{ secrets.TEST_WORKSPACE_ID }}
TEST_INVITE_EMAIL: ${{ vars.TEST_INVITE_EMAIL }}
SLACK_E2E_TEST_WEBHOOK_URL: ${{ vars.SLACK_E2E_TEST_WEBHOOK_URL }}
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 9.15.0
- name: Setup node
uses: actions/setup-node@v4
with:
node-version: 20.15.0
cache: pnpm
- name: Nx cache
uses: actions/cache@v4
with:
path: node_modules/.cache/nx
fail-on-cache-miss: false
key: nx-${{ github.repository_id }}-${{ github.sha }}
- name: Install dependencies
run: pnpm install
- name: Derive SHAs for nx affected commands
uses: nrwl/nx-set-shas@v4
with:
main-branch-name: main
- name: Configure AWS Credentials
id: configure_iam_credentials
uses: aws-actions/configure-aws-credentials@v4
with:
role-to-assume: arn:aws:iam::${{ secrets.AWS_ACCOUNT_ID }}:role/GitHub_to_AWS_via_FederatedOIDC
role-session-name: GitHub_to_AWS_via_FederatedOIDC
role-duration-seconds: 3600
aws-region: ${{ secrets.AWS_REGION }}
audience: sts.amazonaws.com
- name: Run CI/CD Build & Deploy Back-End
run: pnpm run cicd-build-deploy-back-end
build-deploy-front-end:
name: Build & Deploy Front-End
needs: build-deploy-back-end
runs-on: ubuntu-latest
permissions:
id-token: write
contents: write
actions: read
environment: quality
env:
NODE_OPTIONS: --max-old-space-size=8192
AWS_ACCOUNT_ID: ${{ secrets.AWS_ACCOUNT_ID }}
AWS_REGION: ${{ secrets.AWS_REGION }}
ENV_TYPE: ${{ vars.ENV_TYPE }}
ENV_NAME: ${{ vars.ENV_NAME }}
APP_DOMAIN_NAME: ${{ vars.APP_DOMAIN_NAME }}
AWS_HOSTED_ZONE_ID: ${{ secrets.AWS_HOSTED_ZONE_ID }}
AWS_CERTIFICATE_ARN: ${{ secrets.AWS_CERTIFICATE_ARN }}
JWT_SECRET_KEY: ${{ secrets.JWT_SECRET_KEY }}
SYSTEM_ADMIN_EMAIL: ${{ vars.SYSTEM_ADMIN_EMAIL }}
SYSTEM_ADMIN_PASSWORD: ${{ secrets.SYSTEM_ADMIN_PASSWORD }}
ORG_ADMIN_EMAIL: ${{ vars.ORG_ADMIN_EMAIL }}
ORG_ADMIN_PASSWORD: ${{ secrets.ORG_ADMIN_PASSWORD }}
LAB_MANAGER_EMAIL: ${{ vars.LAB_MANAGER_EMAIL }}
LAB_MANAGER_PASSWORD: ${{ secrets.LAB_MANAGER_PASSWORD }}
LAB_TECHNICIAN_EMAIL: ${{ vars.LAB_TECHNICIAN_EMAIL }}
LAB_TECHNICIAN_PASSWORD: ${{ secrets.LAB_TECHNICIAN_PASSWORD }}
TEST_ACCESS_TOKEN: ${{ secrets.TEST_ACCESS_TOKEN }}
TEST_S3_URL: ${{ secrets.TEST_S3_URL }}
TEST_WORKSPACE_ID: ${{ secrets.TEST_WORKSPACE_ID }}
TEST_INVITE_EMAIL: ${{ vars.TEST_INVITE_EMAIL }}
SLACK_E2E_TEST_WEBHOOK_URL: ${{ vars.SLACK_E2E_TEST_WEBHOOK_URL }}
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 9.15.0
- name: Setup node
uses: actions/setup-node@v4
with:
node-version: 20.15.0
cache: pnpm
- name: Nx cache
uses: actions/cache@v4
with:
path: node_modules/.cache/nx
fail-on-cache-miss: false
key: nx-${{ github.repository_id }}-${{ github.sha }}
- name: Install dependencies
run: pnpm install
- name: Derive SHAs for nx affected commands
uses: nrwl/nx-set-shas@v4
with:
main-branch-name: main
- name: Configure AWS Credentials
id: configure_iam_credentials
uses: aws-actions/configure-aws-credentials@v4
with:
role-to-assume: arn:aws:iam::${{ secrets.AWS_ACCOUNT_ID }}:role/GitHub_to_AWS_via_FederatedOIDC
role-session-name: GitHub_to_AWS_via_FederatedOIDC
role-duration-seconds: 3600
aws-region: ${{ secrets.AWS_REGION }}
audience: sts.amazonaws.com
- name: Run CI/CD Build & Deploy Front-End
run: pnpm cicd-build-deploy-front-end
run-e2e-tests:
name: Run E2E Tests
needs: build-deploy-front-end
runs-on: ubuntu-latest
permissions:
id-token: write
contents: write
actions: read
environment: quality
env:
NODE_OPTIONS: --max-old-space-size=8192
AWS_ACCOUNT_ID: ${{ secrets.AWS_ACCOUNT_ID }}
AWS_REGION: ${{ secrets.AWS_REGION }}
ENV_TYPE: ${{ vars.ENV_TYPE }}
ENV_NAME: ${{ vars.ENV_NAME }}
APP_DOMAIN_NAME: ${{ vars.APP_DOMAIN_NAME }}
AWS_HOSTED_ZONE_ID: ${{ secrets.AWS_HOSTED_ZONE_ID }}
AWS_CERTIFICATE_ARN: ${{ secrets.AWS_CERTIFICATE_ARN }}
JWT_SECRET_KEY: ${{ secrets.JWT_SECRET_KEY }}
SYSTEM_ADMIN_EMAIL: ${{ vars.SYSTEM_ADMIN_EMAIL }}
SYSTEM_ADMIN_PASSWORD: ${{ secrets.SYSTEM_ADMIN_PASSWORD }}
ORG_ADMIN_EMAIL: ${{ vars.ORG_ADMIN_EMAIL }}
ORG_ADMIN_PASSWORD: ${{ secrets.ORG_ADMIN_PASSWORD }}
LAB_MANAGER_EMAIL: ${{ vars.LAB_MANAGER_EMAIL }}
LAB_MANAGER_PASSWORD: ${{ secrets.LAB_MANAGER_PASSWORD }}
LAB_TECHNICIAN_EMAIL: ${{ vars.LAB_TECHNICIAN_EMAIL }}
LAB_TECHNICIAN_PASSWORD: ${{ secrets.LAB_TECHNICIAN_PASSWORD }}
TEST_ACCESS_TOKEN: ${{ secrets.TEST_ACCESS_TOKEN }}
TEST_S3_URL: ${{ secrets.TEST_S3_URL }}
TEST_WORKSPACE_ID: ${{ secrets.TEST_WORKSPACE_ID }}
TEST_INVITE_EMAIL: ${{ vars.TEST_INVITE_EMAIL }}
SLACK_E2E_TEST_WEBHOOK_URL: ${{ vars.SLACK_E2E_TEST_WEBHOOK_URL }}
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 9.15.0
- name: Setup node
uses: actions/setup-node@v4
with:
node-version: 20.15.0
cache: pnpm
- name: Nx cache
uses: actions/cache@v4
with:
path: node_modules/.cache/nx
fail-on-cache-miss: false
key: nx-${{ github.repository_id }}-${{ github.sha }}
- name: Install dependencies
run: pnpm install
- name: Derive SHAs for nx affected commands
uses: nrwl/nx-set-shas@v4
with:
main-branch-name: main
- name: Clear Playwright Cache
run: rm -rf /home/runner/.cache/ms-playwright
- name: Install Playwright + Chromium Only and Slack Reporter
run: pnpm add -Dw @playwright/test && pnpm add -Dw playwright-slack-report && npx playwright install chromium
- name: Run E2E Tests
run: pnpm run test-e2e
continue-on-error: true
working-directory: packages/front-end
- name: Always Succeed Step
if: failure()
run: echo "E2E tests failed, but we are allowing the pipeline to succeed."