name: CI Front on: push: branches: - main pull_request: 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: front/node_modules key: front-node_modules-${{hashFiles('front/yarn.lock')}} restore-keys: front-node_modules- - name: Cache twenty-eslint-plugin node modules uses: actions/cache@v3 with: path: packages/twenty-eslint-plugin/node_modules key: twenty-eslint-plugin-node_modules-${{hashFiles('packages/twenty-eslint-plugin/yarn.lock')}} restore-keys: twenty-eslint-plugin-node_modules- - name: Front / Install Dependencies run: cd front && 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 front cp .env.example .env - name: Cache front node modules uses: actions/cache@v3 with: path: front/node_modules key: front-node_modules-${{hashFiles('front/yarn.lock')}} restore-keys: front-node_modules- - name: Cache twenty-eslint-plugin node modules uses: actions/cache@v3 with: path: packages/twenty-eslint-plugin/node_modules key: twenty-eslint-plugin-node_modules-${{hashFiles('packages/twenty-eslint-plugin/yarn.lock')}} restore-keys: twenty-eslint-plugin-node_modules- - name: Install dependencies run: yarn - name: Install Playwright run: cd front && npx playwright install - name: Build Storybook run: cd front && yarn storybook:pages:build --quiet - name: Run storybook tests run: | cd 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 front cp .env.example .env - name: Cache front node modules uses: actions/cache@v3 with: path: front/node_modules key: front-node_modules-${{hashFiles('front/yarn.lock')}} restore-keys: front-node_modules- - name: Cache twenty-eslint-plugin node modules uses: actions/cache@v3 with: path: packages/twenty-eslint-plugin/node_modules key: twenty-eslint-plugin-node_modules-${{hashFiles('packages/twenty-eslint-plugin/yarn.lock')}} restore-keys: twenty-eslint-plugin-node_modules- - name: Install Playwright run: cd front && npx playwright install - name: Build Storybook run: cd front && yarn storybook:modules:build --quiet - name: Run storybook tests run: | cd 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: 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: front/node_modules key: front-node_modules-${{hashFiles('front/yarn.lock')}} restore-keys: front-node_modules- - name: Cache twenty-eslint-plugin node modules uses: actions/cache@v3 with: path: packages/twenty-eslint-plugin/node_modules key: twenty-eslint-plugin-node_modules-${{hashFiles('packages/twenty-eslint-plugin/yarn.lock')}} restore-keys: twenty-eslint-plugin-node_modules- - name: Front / Install Dependencies run: cd front && yarn - name: Front / Run linter run: cd front && yarn lint --config .eslintrc-ci.cjs 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: front/node_modules key: front-node_modules-${{hashFiles('front/yarn.lock')}} restore-keys: front-node_modules- - name: Cache twenty-eslint-plugin node modules uses: actions/cache@v3 with: path: packages/twenty-eslint-plugin/node_modules key: twenty-eslint-plugin-node_modules-${{hashFiles('packages/twenty-eslint-plugin/yarn.lock')}} restore-keys: twenty-eslint-plugin-node_modules- - name: Front / Run jest run: cd front && yarn test