name: CI Front on: push: branches: - main paths: - 'package.json' - 'packages/twenty-front/**' pull_request: paths: - 'package.json' - 'packages/twenty-front/**' jobs: 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: 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: Build Storybook run: yarn nx storybook:pages:build twenty-front --quiet - name: Run storybook tests run: | cd packages/twenty-front && npx concurrently -k -s first -n "SB,TEST" -c "magenta,blue" \ "npx http-server storybook-static --silent --port 6006" \ "yarn storybook:pages:coverage" 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: Build Storybook run: yarn nx storybook:modules:build twenty-front --quiet - name: Run storybook tests run: | cd packages/twenty-front && npx concurrently -k -s first -n "SB,TEST" -c "magenta,blue" \ "npx http-server storybook-static --silent --port 6006" \ "yarn storybook:modules:coverage" 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: Front / Run linter run: yarn nx lint:ci twenty-front - name: Front / Run Typescript Check run: yarn nx tsc:ci twenty-front 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: yarn nx coverage twenty-front