Spaces:
Build error
Build error
| name: CI UI | |
| on: | |
| pull_request: | |
| push: | |
| branches: [main] | |
| permissions: | |
| contents: read | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }}${{ github.ref == 'refs/heads/main' && format('-{0}', github.sha) || '' }} | |
| cancel-in-progress: ${{ github.ref != 'refs/heads/main' }} | |
| jobs: | |
| changed-files-check: | |
| if: github.event_name == 'pull_request' | |
| uses: ./.github/workflows/changed-files.yaml | |
| with: | |
| files: | | |
| package.json | |
| yarn.lock | |
| packages/twenty-ui/** | |
| packages/twenty-shared/** | |
| ui-task: | |
| needs: changed-files-check | |
| if: needs.changed-files-check.outputs.any_changed == 'true' | |
| timeout-minutes: 30 | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| task: [lint, typecheck, test, size, pack-size] | |
| steps: | |
| - name: Fetch custom Github Actions and base branch history | |
| uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 | |
| with: | |
| fetch-depth: 10 | |
| - name: Install dependencies | |
| uses: ./.github/actions/yarn-install | |
| - name: Run ${{ matrix.task }} | |
| run: npx nx ${{ matrix.task }} twenty-ui | |
| ui-sb-build: | |
| needs: changed-files-check | |
| if: >- | |
| always() && | |
| (github.event_name == 'push' || | |
| needs.changed-files-check.outputs.any_changed == 'true') | |
| timeout-minutes: 30 | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Fetch custom Github Actions and base branch history | |
| uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 | |
| with: | |
| fetch-depth: 10 | |
| - name: Install dependencies | |
| uses: ./.github/actions/yarn-install | |
| - name: Build storybook | |
| run: npx nx storybook:build twenty-ui | |
| - name: Upload storybook build | |
| uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 | |
| with: | |
| name: storybook-twenty-ui | |
| path: packages/twenty-ui/storybook-static | |
| retention-days: 1 | |
| ui-sb-test: | |
| timeout-minutes: 30 | |
| runs-on: ubuntu-latest | |
| needs: ui-sb-build | |
| if: always() && needs.ui-sb-build.result == 'success' | |
| steps: | |
| - name: Fetch custom Github Actions and base branch history | |
| uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 | |
| with: | |
| fetch-depth: 10 | |
| - name: Install dependencies | |
| uses: ./.github/actions/yarn-install | |
| - name: Build dependencies | |
| run: npx nx build twenty-shared | |
| - name: Download storybook build | |
| uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 | |
| with: | |
| name: storybook-twenty-ui | |
| path: packages/twenty-ui/storybook-static | |
| - name: Install Playwright | |
| run: | | |
| cd packages/twenty-ui | |
| npx playwright install | |
| - name: Run storybook tests | |
| run: npx nx storybook:test twenty-ui | |
| - name: Upload screenshots for visual regression | |
| if: always() && !cancelled() | |
| uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 | |
| with: | |
| name: argos-screenshots-twenty-ui | |
| path: packages/twenty-ui/screenshots | |
| retention-days: 1 | |
| ci-ui-status-check: | |
| if: always() && !cancelled() | |
| timeout-minutes: 5 | |
| runs-on: ubuntu-latest | |
| needs: [changed-files-check, ui-task, ui-sb-build, ui-sb-test] | |
| steps: | |
| - name: Fail job if any needs failed | |
| if: contains(needs.*.result, 'failure') | |
| run: exit 1 | |