- Fixes storybook coverage command: the coverage directory path was incorrect, but instead of failing `storybook:test --configuration=ci`, it was hanging indefinitely. - Switches back to `concurrently` to launch `storybook:static` and `storybook:test` in parallel, which allows to use options to explicitly kill `storybook:static` when `storybook:test` fails. - Moves `storybook:test --configuration=ci` to its own command `storybook:static:test`: used in the CI, and can be used locally to run storybook tests without having to launch `storybook:dev` first. - Creates command `storybook:coverage` and enables cache for this command. - Fixes Jest tests that were failing. - Improves caching conditions for some tasks (for instance, no need to invalidate Jest test cache if only Storybook story files were modified).
119 lines
3.7 KiB
YAML
119 lines
3.7 KiB
YAML
name: CI Front
|
|
on:
|
|
push:
|
|
branches:
|
|
- main
|
|
paths:
|
|
- 'package.json'
|
|
- 'packages/twenty-front/**'
|
|
- 'packages/twenty-ui/**'
|
|
pull_request:
|
|
paths:
|
|
- 'package.json'
|
|
- 'packages/twenty-front/**'
|
|
- 'packages/twenty-ui/**'
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
front-sb-build:
|
|
runs-on: ubuntu-latest
|
|
env:
|
|
REACT_APP_SERVER_BASE_URL: http://localhost:3000
|
|
steps:
|
|
- name: Cancel Previous Runs
|
|
uses: styfle/cancel-workflow-action@0.11.0
|
|
with:
|
|
access_token: ${{ github.token }}
|
|
- name: Fetch local actions
|
|
uses: actions/checkout@v4
|
|
- name: Install dependencies
|
|
uses: ./.github/workflows/actions/yarn-install
|
|
- name: Front / Restore Storybook Task Cache
|
|
uses: ./.github/workflows/actions/task-cache
|
|
with:
|
|
tag: scope:frontend
|
|
tasks: storybook:build
|
|
- name: Front / Write .env
|
|
run: npx nx reset:env twenty-front
|
|
- name: Front / Build storybook
|
|
run: npx nx storybook:build twenty-front
|
|
front-sb-test:
|
|
runs-on: ci-8-cores
|
|
needs: front-sb-build
|
|
strategy:
|
|
matrix:
|
|
storybook_scope: [pages, modules]
|
|
env:
|
|
REACT_APP_SERVER_BASE_URL: http://localhost:3000
|
|
steps:
|
|
- name: Fetch local actions
|
|
uses: actions/checkout@v4
|
|
- name: Install dependencies
|
|
uses: ./.github/workflows/actions/yarn-install
|
|
- name: Install Playwright
|
|
run: cd packages/twenty-front && npx playwright install
|
|
- name: Front / Restore Storybook Task Cache
|
|
uses: ./.github/workflows/actions/task-cache
|
|
with:
|
|
tag: scope:frontend
|
|
tasks: storybook:build
|
|
- name: Front / Write .env
|
|
run: npx nx reset:env twenty-front
|
|
- name: Run storybook tests
|
|
run: npx nx storybook:static:test twenty-front --configuration=${{ matrix.storybook_scope }}
|
|
front-chromatic-deployment:
|
|
if: contains(github.event.pull_request.labels.*.name, 'run-chromatic') || github.event_name == 'push'
|
|
needs: front-sb-build
|
|
runs-on: ubuntu-latest
|
|
env:
|
|
REACT_APP_SERVER_BASE_URL: http://127.0.0.1:3000
|
|
CHROMATIC_PROJECT_TOKEN: ${{ secrets.CHROMATIC_PROJECT_TOKEN }}
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 0
|
|
- name: Install dependencies
|
|
uses: ./.github/workflows/actions/yarn-install
|
|
- name: Front / Restore Storybook Task Cache
|
|
uses: ./.github/workflows/actions/task-cache
|
|
with:
|
|
tag: scope:frontend
|
|
tasks: storybook:build
|
|
- name: Front / Write .env
|
|
run: |
|
|
cd packages/twenty-front
|
|
touch .env
|
|
echo "REACT_APP_SERVER_BASE_URL: $REACT_APP_SERVER_BASE_URL" >> .env
|
|
- name: Publish to Chromatic
|
|
run: |
|
|
npx nx run twenty-front:chromatic:ci
|
|
front-task:
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
matrix:
|
|
task: [lint, typecheck, test]
|
|
env:
|
|
REACT_APP_SERVER_BASE_URL: http://localhost:3000
|
|
steps:
|
|
- name: Cancel Previous Runs
|
|
uses: styfle/cancel-workflow-action@0.11.0
|
|
with:
|
|
access_token: ${{ github.token }}
|
|
- name: Fetch local actions and base branch history
|
|
uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 0
|
|
- name: Install dependencies
|
|
uses: ./.github/workflows/actions/yarn-install
|
|
- name: Front / Restore Task Cache
|
|
uses: ./.github/workflows/actions/task-cache
|
|
with:
|
|
tag: scope:frontend
|
|
tasks: ${{ matrix.task }}
|
|
- name: Front / Run task
|
|
uses: ./.github/workflows/actions/nx-affected
|
|
with:
|
|
tag: scope:frontend
|
|
tasks: ${{ matrix.task }} |