diff --git a/.github/workflows/shared-component-storybook-build.yml b/.github/workflows/shared-component-storybook-build.yml new file mode 100644 index 0000000000..374a6ff2f2 --- /dev/null +++ b/.github/workflows/shared-component-storybook-build.yml @@ -0,0 +1,36 @@ +name: Build shared component storybook +on: + merge_group: {} + pull_request: {} + workflow_call: {} + +permissions: {} + +jobs: + doc: + name: Build storybook + runs-on: ubuntu-latest + steps: + - name: 🧮 Checkout code + uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6 + + - uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061 # v4 + - name: 🔧 Pnpm cache + uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6 + with: + cache: "pnpm" + node-version-file: package.json + + - name: 🔨 Install dependencies + working-directory: packages/shared-components + run: "pnpm install --frozen-lockfile" + + - name: 📖 Build Storybook + working-directory: packages/shared-components + run: pnpm build:storybook + + - uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6 + with: + name: shared-components-storybook + path: packages/shared-components/storybook-static + retention-days: 1 diff --git a/.github/workflows/shared-component-storybook-publish.yaml b/.github/workflows/shared-component-storybook-publish.yaml index 8dbbaa7f86..13efd7f0fd 100644 --- a/.github/workflows/shared-component-storybook-publish.yaml +++ b/.github/workflows/shared-component-storybook-publish.yaml @@ -10,34 +10,24 @@ on: permissions: {} jobs: - doc: + build: + name: Build storybook + uses: ./.github/workflows/shared-component-storybook-build.yml + + publish: name: Publish storybook runs-on: ubuntu-latest + needs: build environment: SharedComponents steps: - - name: 🧮 Checkout code - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6 - - - uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061 # v4 - - name: 🔧 Pnpm cache - uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6 + - uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7 with: - cache: "pnpm" - node-version-file: package.json - - - name: 🔨 Install dependencies - working-directory: packages/shared-components - run: "pnpm install --frozen-lockfile" - - - name: 📖 Build Storybook - working-directory: packages/shared-components - run: pnpm build:storybook + name: shared-components-storybook + path: storybook-static - name: 🚀 Deploy to Cloudflare Pages uses: cloudflare/wrangler-action@9681c2997648301493e78cacbfb790a9f19c833f # v3 with: apiToken: ${{ secrets.CF_PAGES_TOKEN }} accountId: ${{ secrets.CF_PAGES_ACCOUNT_ID }} - workingDirectory: "packages/shared-components" - packageManager: "pnpm" command: pages deploy storybook-static --project-name=shared-components-storybook diff --git a/nx.json b/nx.json index fa9df91de7..58b3b014cd 100644 --- a/nx.json +++ b/nx.json @@ -5,5 +5,8 @@ "build": { "dependsOn": ["^build", "prebuild:*"] } + }, + "namedInputs": { + "src": ["{projectRoot}/src/**/*"] } } diff --git a/packages/shared-components/package.json b/packages/shared-components/package.json index 3d009a5fcd..e668296714 100644 --- a/packages/shared-components/package.json +++ b/packages/shared-components/package.json @@ -44,8 +44,8 @@ "build": "nx build", "prepack": "pnpm run build", "storybook": "storybook dev -p 6007", - "build:storybook": "pnpm build:doc && storybook build && node scripts/storybook-build-i18n.ts", - "build:doc": "typedoc", + "build:storybook": "nx run @element-hq/web-shared-components:storybook", + "build:doc": "nx run @element-hq/web-shared-components:typedoc", "lint": "pnpm lint:types && pnpm lint:js", "lint:js": "eslint --max-warnings 0 src && prettier --check .", "lint:types": "tsc --noEmit && tsc --noEmit -p tsconfig.node.json" diff --git a/packages/shared-components/project.json b/packages/shared-components/project.json index 8d82188c83..8178db5582 100644 --- a/packages/shared-components/project.json +++ b/packages/shared-components/project.json @@ -5,7 +5,7 @@ "build": { "cache": true, "command": "vite build", - "inputs": ["{projectRoot}/src/**/*"], + "inputs": ["src"], "outputs": ["{projectRoot}/dist"], "options": { "cwd": "packages/shared-components" } }, @@ -13,6 +13,25 @@ "command": "vite build --watch", "options": { "cwd": "packages/shared-components" }, "continuous": true + }, + "typedoc": { + "cache": "true", + "command": "typedoc", + "inputs": ["src"], + "outputs": ["{projectRoot}/typedoc"], + "options": { "cwd": "packages/shared-components" } + }, + "storybook": { + "cache": "true", + "inputs": ["src", "{projectRoot}/.storybook", "{projectRoot}/typedoc"], + "outputs": ["{projectRoot}/storybook-static"], + "executor": "nx:run-commands", + "options": { + "commands": ["storybook build", "node scripts/storybook-build-i18n.ts"], + "parallel": false, + "cwd": "packages/shared-components" + }, + "dependsOn": ["build", "typedoc"] } } }