From c87aad436faa84650f948889029411a5c612276b Mon Sep 17 00:00:00 2001 From: Himself65 Date: Tue, 28 Mar 2023 13:55:35 -0500 Subject: [PATCH] ci: improve storybook build (#1728) --- .github/workflows/build-master.yml | 35 +++++++++++++++++++++++++----- .github/workflows/build.yml | 32 +++++++++++++++++++++++---- playwright.config.ts | 3 ++- 3 files changed, 60 insertions(+), 10 deletions(-) diff --git a/.github/workflows/build-master.yml b/.github/workflows/build-master.yml index e3b523345..8ae2f1bfc 100644 --- a/.github/workflows/build-master.yml +++ b/.github/workflows/build-master.yml @@ -16,8 +16,25 @@ jobs: uses: ./.github/actions/setup-node - run: yarn lint --max-warnings=0 + build-storybook: + name: Build Storybook + runs-on: ubuntu-latest + environment: development + + steps: + - uses: actions/checkout@v3 + - name: Setup Node.js + uses: ./.github/actions/setup-node + - run: yarn build:storybook + - name: Upload storybook artifact + uses: actions/upload-artifact@v3 + with: + name: storybook + path: ./packages/component/storybook-static + if-no-files-found: error + build-frontend: - name: Build frontend + name: Build @affine/web runs-on: ubuntu-latest environment: production @@ -51,7 +68,9 @@ jobs: - name: Upload artifact uses: actions/upload-artifact@v3 with: + name: next-js path: ./apps/web/out + if-no-files-found: error publish-frontend: name: Push frontend image @@ -75,8 +94,8 @@ jobs: - name: Download artifact uses: actions/download-artifact@v3 with: - name: artifact - path: apps/web/out/ + name: next-js + path: ./apps/web/out - name: Log in to Docker Hub uses: docker/login-action@v2 @@ -111,7 +130,7 @@ jobs: matrix: shard: [1, 2, 3, 4] environment: development - needs: build-frontend + needs: [build-frontend, build-storybook] services: octobase: image: ghcr.io/toeverything/cloud-self-hosted:nightly-latest @@ -134,9 +153,15 @@ jobs: - name: Download artifact uses: actions/download-artifact@v3 with: - name: artifact + name: next-js path: ./apps/web/.next + - name: Download storybook artifact + uses: actions/download-artifact@v3 + with: + name: storybook + path: ./packages/component/storybook-static + - name: Run playwright tests run: yarn test --forbid-only --shard=${{ matrix.shard }}/${{ strategy.job-total }} env: diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 99ed8912a..53b531a5c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -17,8 +17,25 @@ jobs: uses: ./.github/actions/setup-node - run: yarn lint --max-warnings=0 + build-storybook: + name: Build Storybook + runs-on: ubuntu-latest + environment: development + + steps: + - uses: actions/checkout@v3 + - name: Setup Node.js + uses: ./.github/actions/setup-node + - run: yarn build:storybook + - name: Upload storybook artifact + uses: actions/upload-artifact@v3 + with: + name: storybook + path: ./packages/component/storybook-static + if-no-files-found: error + build: - name: Build on Pull Request + name: Build @affine/web runs-on: ubuntu-latest environment: development @@ -48,8 +65,9 @@ jobs: - name: Upload artifact uses: actions/upload-artifact@v3 with: - name: artifact + name: next-js path: ./apps/web/.next + if-no-files-found: error e2e-test: name: E2E Test @@ -59,7 +77,7 @@ jobs: matrix: shard: [1, 2, 3, 4] environment: development - needs: [build] + needs: [build, build-storybook] services: octobase: image: ghcr.io/toeverything/cloud-self-hosted:nightly-latest @@ -79,9 +97,15 @@ jobs: - name: Download artifact uses: actions/download-artifact@v3 with: - name: artifact + name: next-js path: ./apps/web/.next + - name: Download storybook artifact + uses: actions/download-artifact@v3 + with: + name: storybook + path: ./packages/component/storybook-static + - name: Run playwright tests run: yarn test --forbid-only --shard=${{ matrix.shard }}/${{ strategy.job-total }} env: diff --git a/playwright.config.ts b/playwright.config.ts index 5d8d1f0fa..d25d23a4d 100644 --- a/playwright.config.ts +++ b/playwright.config.ts @@ -56,7 +56,8 @@ const config: PlaywrightTestConfig = { }, }, { - command: 'yarn run build:storybook && yarn run start:storybook', + // Intentionally not building the storybook, reminds you to run it by yourself. + command: 'yarn run start:storybook', port: 6006, timeout: 120 * 1000, reuseExistingServer: !process.env.CI,