name: UI Components on: workflow_dispatch: pull_request: paths: - .github/workflows/ui-components.yml - 'packages/ui-components/**' - 'package.json' - 'pnpm-workspace.yaml' - 'pnpm-lock.yaml' permissions: contents: read # to fetch code (actions/checkout) env: DEBUG: verdaccio* jobs: deploy: permissions: contents: read # to fetch code (actions/checkout) deployments: write pull-requests: write # to comment on pull-requests runs-on: ubuntu-latest env: NODE_OPTIONS: --max_old_space_size=4096 steps: - uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3 - name: Use Node uses: actions/setup-node@1a4442cacd436585916779262731d5b162bc6ec7 # v3 with: node-version-file: '.nvmrc' - name: Cache pnpm modules uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3 env: cache-name: cache-pnpm-modules with: path: ~/.pnpm-store key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ matrix.node-version }}-${{ hashFiles('**/pnpm-lock.yaml') }} restore-keys: | ${{ runner.os }}-build-${{ env.cache-name }}-${{ matrix.node-version }}- - name: Install pnpm run: | corepack enable corepack prepare --activate pnpm@8.9.0 - name: Install run: pnpm install - name: Build storybook run: pnpm ui:storybook:build - name: Copy public content # the msw.js worker is need it at the storybook-static folder in production run: cp -R packages/ui-components/public/* packages/ui-components/storybook-static - name: 🔥 Deploy Production UI Netlify if: (github.event_name == 'push' && github.ref == 'refs/heads/master') || github.event_name == 'workflow_dispatch' uses: verdaccio/action-netlify-deploy@1c086d59169edeec9254672c7de17d2ceac3928f # v2.0.0 with: github-token: ${{ secrets.GITHUB_TOKEN }} netlify-auth-token: ${{ secrets.NETLIFY_AUTH_TOKEN }} netlify-site-id: ${{ secrets.NETLIFY_UI_SITE_ID }} build-dir: './packages/ui-components/storybook-static' - name: 🤖 Deploy Preview UI Components Netlify if: github.repository == 'verdaccio/verdaccio' uses: semoal/action-netlify-deploy@1a53f098745bf78555d11b436f5ee3af87e6b566 id: netlify_preview_ui with: draft: true comment-on-pull-request: true github-deployment-is-production: false github-deployment-is-transient: true github-token: ${{ secrets.GITHUB_TOKEN }} netlify-auth-token: ${{ secrets.NETLIFY_AUTH_TOKEN }} netlify-site-id: ${{ secrets.NETLIFY_UI_SITE_ID }} build-dir: './packages/ui-components/storybook-static'