# This PR - Moves dev and ci scripts to the `project.json` file in the twenty-front package - Adds a project.json file in the root of the project with the main start command that start both twenty-server and twenty-front applications concurrently - Updates the script command of the root project with the start:prod command (replacing the start command which will be used in dev with the help of nx) - Add a start:prod command in the twenty-front app, replacing the start command (now used for dev purpose) Issue ref #4645 @charlesBochet @FelixMalfait please let me know how can I improve it --------- Co-authored-by: Thaïs Guigon <guigon.thais@gmail.com>
184 lines
6.0 KiB
YAML
184 lines
6.0 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-yarn-install:
|
|
runs-on: ci-8-cores
|
|
env:
|
|
REACT_APP_SERVER_BASE_URL: http://localhost:3000
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Setup Node.js
|
|
uses: actions/setup-node@v3
|
|
with:
|
|
node-version: "18"
|
|
- name: Cache front node modules
|
|
uses: actions/cache@v3
|
|
with:
|
|
path: packages/twenty-front/node_modules
|
|
key: front-node_modules-${{hashFiles('yarn.lock')}}
|
|
restore-keys: front-node_modules-
|
|
- name: Cache root node modules
|
|
uses: actions/cache@v3
|
|
with:
|
|
path: node_modules
|
|
key: root-node_modules-${{hashFiles('yarn.lock')}}
|
|
restore-keys: root-node_modules-
|
|
- name: Front / Install Dependencies
|
|
run: yarn
|
|
front-pages-sb-test:
|
|
needs: front-yarn-install
|
|
runs-on: ci-8-cores
|
|
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 }}
|
|
- uses: actions/checkout@v4
|
|
- name: Setup Node.js
|
|
uses: actions/setup-node@v3
|
|
with:
|
|
node-version: "18"
|
|
- name: Front / Write .env
|
|
run: |
|
|
cd packages/twenty-front
|
|
cp .env.example .env
|
|
- name: Cache front node modules
|
|
uses: actions/cache@v3
|
|
with:
|
|
path: packages/twenty-front/node_modules
|
|
key: front-node_modules-${{hashFiles('yarn.lock')}}
|
|
restore-keys: front-node_modules-
|
|
- name: Cache root node modules
|
|
uses: actions/cache@v3
|
|
with:
|
|
path: node_modules
|
|
key: root-node_modules-${{hashFiles('yarn.lock')}}
|
|
restore-keys: root-node_modules-
|
|
- name: Install Playwright
|
|
run: cd packages/twenty-front && npx playwright install
|
|
- name: Run storybook tests
|
|
run: |
|
|
npx concurrently -k -s first -n "SB,TEST" -c "magenta,blue" \
|
|
"STORYBOOK_SCOPE=pages npx nx run twenty-front:storybook:static" \
|
|
"npx wait-on tcp:6006 && STORYBOOK_SCOPE=pages npx nx run twenty-front:storybook:test"
|
|
front-modules-sb-test:
|
|
needs: front-yarn-install
|
|
runs-on: ci-4-cores
|
|
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 }}
|
|
- uses: actions/checkout@v4
|
|
- name: Setup Node.js
|
|
uses: actions/setup-node@v3
|
|
with:
|
|
node-version: "18"
|
|
- name: Front / Write .env
|
|
run: |
|
|
cd packages/twenty-front
|
|
cp .env.example .env
|
|
- name: Cache front node modules
|
|
uses: actions/cache@v3
|
|
with:
|
|
path: packages/twenty-front/node_modules
|
|
key: front-node_modules-${{hashFiles('yarn.lock')}}
|
|
restore-keys: front-node_modules-
|
|
- name: Cache root node modules
|
|
uses: actions/cache@v3
|
|
with:
|
|
path: node_modules
|
|
key: root-node_modules-${{hashFiles('yarn.lock')}}
|
|
restore-keys: root-node_modules-
|
|
- name: Install Playwright
|
|
run: cd packages/twenty-front && npx playwright install
|
|
- name: Run storybook tests
|
|
run: |
|
|
npx concurrently -k -s first -n "SB,TEST" -c "magenta,blue" \
|
|
"STORYBOOK_SCOPE=modules npx nx run twenty-front:storybook:static" \
|
|
"npx wait-on tcp:6006 && STORYBOOK_SCOPE=modules npx nx run twenty-front:storybook:test"
|
|
front-lint-tsc:
|
|
needs: front-yarn-install
|
|
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 }}
|
|
- uses: actions/checkout@v4
|
|
- name: Setup Node.js
|
|
uses: actions/setup-node@v3
|
|
with:
|
|
node-version: "18"
|
|
- name: Cache front node modules
|
|
uses: actions/cache@v3
|
|
with:
|
|
path: packages/twenty-front/node_modules
|
|
key: front-node_modules-${{hashFiles('yarn.lock')}}
|
|
restore-keys: front-node_modules-
|
|
- name: Cache root node modules
|
|
uses: actions/cache@v3
|
|
with:
|
|
path: node_modules
|
|
key: root-node_modules-${{hashFiles('yarn.lock')}}
|
|
restore-keys: root-node_modules-
|
|
- name: UI / Run linter
|
|
run: npx nx lint twenty-ui
|
|
- name: UI / Run Typescript Check
|
|
run: npx nx run twenty-ui:typecheck:ci
|
|
- name: Front / Run linter
|
|
run: npx nx run twenty-front:lint:ci
|
|
- name: Front / Run Typescript Check
|
|
run: npx nx run twenty-front:typecheck:ci
|
|
front-jest:
|
|
needs: front-yarn-install
|
|
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 }}
|
|
- uses: actions/checkout@v4
|
|
- name: Setup Node.js
|
|
uses: actions/setup-node@v3
|
|
with:
|
|
node-version: "18"
|
|
- name: Cache front node modules
|
|
uses: actions/cache@v3
|
|
with:
|
|
path: packages/twenty-front/node_modules
|
|
key: front-node_modules-${{hashFiles('yarn.lock')}}
|
|
restore-keys: front-node_modules-
|
|
- name: Cache root node modules
|
|
uses: actions/cache@v3
|
|
with:
|
|
path: node_modules
|
|
key: root-node_modules-${{hashFiles('yarn.lock')}}
|
|
restore-keys: root-node_modules-
|
|
- name: Front / Run jest
|
|
run: npx nx test twenty-front --configuration=ci
|