Merge pull request #1032 from aehrc/fix/iframe-resizer-dependency #321
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Smart Forms Build-Test-Lint Workflow | |
on: | |
push: | |
jobs: | |
build-smart-forms-app: | |
name: Build Smart Forms App | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Use Node.js 16.x | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 16 | |
cache: npm | |
- name: Install dependencies | |
run: npm ci | |
- name: Build application | |
run: npm run build -w apps/smart-forms-app | |
build-demo-app: | |
name: Build Demo App | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Use Node.js 16.x | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 16 | |
cache: npm | |
- name: Install dependencies | |
run: cd apps/demo-renderer-app && npm ci | |
- name: Build application | |
run: cd apps/demo-renderer-app && npm run build | |
jest-test: | |
name: Jest Tests (only runs on node 18) | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Use Node.js 18.x | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 18 | |
cache: npm | |
- name: Install dependencies | |
run: npm ci | |
- name: Run jest tests | |
run: npm run test -w packages/smart-forms-renderer | |
- uses: codecov/codecov-action@v4 | |
playwright-test: | |
name: Playwright Tests | |
timeout-minutes: 60 | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: 16 | |
cache: npm | |
- name: Install dependencies | |
run: npm ci | |
- name: Install Playwright Browsers | |
run: npx playwright install --with-deps | |
- name: Run Playwright tests | |
run: npm run playwright -w apps/smart-forms-app | |
- uses: actions/upload-artifact@v4 | |
if: always() | |
with: | |
build: npm run build -w apps/smart-forms-app | |
start: npm run preview -w apps/smart-forms-app | |
name: playwright-report | |
path: playwright-report/ | |
retention-days: 30 | |
lint: | |
name: Lint | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Use Node.js 16.x | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 16 | |
cache: npm | |
- name: Install dependencies | |
run: npm ci | |
- name: Run linter | |
run: npm run lint | |
- name: Check formatting | |
run: npm run check-formatting | |
deploy-storybook: | |
name: Deploy Storybook to S3 | |
runs-on: ubuntu-latest | |
permissions: | |
contents: read | |
pages: write | |
id-token: write | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Use Node.js 18.x | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 18 | |
cache: npm | |
- name: Configure AWS credentials | |
uses: aws-actions/configure-aws-credentials@v4 | |
with: | |
role-to-assume: arn:aws:iam::209248795938:role/SmartFormsReactAppDeployment | |
aws-region: ap-southeast-2 | |
- name: Install dependencies | |
run: npm ci | |
- name: Build application | |
run: npm run build-storybook -w packages/smart-forms-renderer | |
- name: Upload static Storybook site to S3 | |
run: aws s3 sync packages/smart-forms-renderer/storybook-static s3://smart-forms-storybook/storybook |