docs: added new entry #22726
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| --- | |
| name: Default Pipeline | |
| permissions: | |
| contents: write | |
| actions: write | |
| pull-requests: write | |
| on: | |
| pull_request: | |
| push: | |
| branches: | |
| - "main" | |
| # We'd like to run the pipeline for Dependabot PRs sequentially, and all other PRs in parallel, but still only one action run for each PR. | |
| concurrency: | |
| group: >- | |
| ${{ | |
| github.actor == 'dependabot[bot]' && | |
| 'dependabot' || | |
| format('{0}-{1}', github.workflow, github.ref) | |
| }} | |
| cancel-in-progress: >- | |
| ${{ | |
| github.actor != 'dependabot[bot]' && | |
| github.ref != 'refs/heads/main' | |
| }} | |
| jobs: | |
| init: | |
| uses: ./.github/workflows/00-init.yml | |
| secrets: inherit | |
| lint: | |
| uses: ./.github/workflows/01-lint-test.yml | |
| needs: [init] | |
| cancel-on-failure-lint: | |
| if: ${{ !cancelled() && needs.lint.result == 'failure' }} | |
| uses: ./.github/workflows/00-cancel-workflow.yml | |
| secrets: inherit | |
| needs: [lint] | |
| build-packages: | |
| uses: ./.github/workflows/01-build-packages.yml | |
| needs: [init] | |
| cancel-on-failure-build-packages: | |
| if: ${{ !cancelled() && needs.build-packages.result == 'failure' }} | |
| uses: ./.github/workflows/00-cancel-workflow.yml | |
| secrets: inherit | |
| needs: [build-packages] | |
| init-playwright: | |
| uses: ./.github/workflows/01-init-playwright.yml | |
| needs: [init] | |
| with: | |
| version: ${{ needs.init.outputs.playwrightVersion }} | |
| build-outputs: | |
| uses: ./.github/workflows/01-build-outputs.yml | |
| needs: [build-packages] | |
| cancel-on-failure-build-outputs: | |
| if: ${{ !cancelled() && needs.build-outputs.result == 'failure' }} | |
| uses: ./.github/workflows/00-cancel-workflow.yml | |
| secrets: inherit | |
| needs: [build-outputs] | |
| test-components: | |
| uses: ./.github/workflows/02-e2e.yml | |
| needs: [build-packages, init] | |
| with: | |
| version: ${{ needs.init.outputs.playwrightVersion }} | |
| test-foundations: | |
| uses: ./.github/workflows/02-e2e-foundations.yml | |
| needs: [build-packages, init] | |
| with: | |
| version: ${{ needs.init.outputs.playwrightVersion }} | |
| build-storybook-composition: | |
| uses: ./.github/workflows/01-build-storybooks.yml | |
| needs: [build-packages, init] | |
| with: | |
| storybook: composition-storybook | |
| baseUrl: ${{ needs.init.outputs.baseUrl }} | |
| build-storybook-angular: | |
| uses: ./.github/workflows/01-build-storybooks.yml | |
| needs: [build-packages, init] | |
| with: | |
| storybook: angular-storybook | |
| baseUrl: ${{ needs.init.outputs.baseUrl }} | |
| build-storybook-react: | |
| uses: ./.github/workflows/01-build-storybooks.yml | |
| needs: [build-packages, init] | |
| with: | |
| storybook: react-storybook | |
| baseUrl: ${{ needs.init.outputs.baseUrl }} | |
| build-storybook-vue: | |
| uses: ./.github/workflows/01-build-storybooks.yml | |
| needs: [build-packages, init] | |
| with: | |
| storybook: vue-storybook | |
| baseUrl: ${{ needs.init.outputs.baseUrl }} | |
| build-showcase-stencil: | |
| uses: ./.github/workflows/01-build-showcases.yml | |
| needs: [build-packages, init] | |
| secrets: inherit | |
| with: | |
| showcase: stencil-showcase | |
| cancel-on-failure-build-showcase-stencil: | |
| if: ${{ !cancelled() && needs.build-showcase-stencil.result == 'failure' }} | |
| uses: ./.github/workflows/00-cancel-workflow.yml | |
| secrets: inherit | |
| needs: [build-showcase-stencil] | |
| build-showcase-angular: | |
| uses: ./.github/workflows/01-build-showcases.yml | |
| needs: [build-packages] | |
| secrets: inherit | |
| with: | |
| showcase: angular-showcase | |
| cancel-on-failure-build-showcase-angular: | |
| if: ${{ !cancelled() && needs.build-showcase-angular.result == 'failure' }} | |
| uses: ./.github/workflows/00-cancel-workflow.yml | |
| secrets: inherit | |
| needs: [build-showcase-angular] | |
| build-showcase-angular-ssr: | |
| uses: ./.github/workflows/01-build-showcases.yml | |
| needs: [build-packages] | |
| secrets: inherit | |
| with: | |
| showcase: angular-ssr-showcase | |
| cancel-on-failure-build-showcase-angular-ssr: | |
| if: ${{ !cancelled() && needs.build-showcase-angular-ssr.result == 'failure' }} | |
| uses: ./.github/workflows/00-cancel-workflow.yml | |
| secrets: inherit | |
| needs: [build-showcase-angular-ssr] | |
| build-showcase-react: | |
| uses: ./.github/workflows/01-build-showcases.yml | |
| needs: [build-packages] | |
| secrets: inherit | |
| with: | |
| showcase: react-showcase | |
| cancel-on-failure-build-showcase-react: | |
| if: ${{ !cancelled() && needs.build-showcase-react.result == 'failure' }} | |
| uses: ./.github/workflows/00-cancel-workflow.yml | |
| secrets: inherit | |
| needs: [build-showcase-react] | |
| build-showcase-next: | |
| uses: ./.github/workflows/01-build-showcases.yml | |
| needs: [build-packages] | |
| secrets: inherit | |
| with: | |
| showcase: next-showcase | |
| cancel-on-failure-build-showcase-next: | |
| if: ${{ !cancelled() && needs.build-showcase-next.result == 'failure' }} | |
| uses: ./.github/workflows/00-cancel-workflow.yml | |
| secrets: inherit | |
| needs: [build-showcase-next] | |
| build-showcase-vue: | |
| uses: ./.github/workflows/01-build-showcases.yml | |
| needs: [build-packages] | |
| secrets: inherit | |
| with: | |
| showcase: vue-showcase | |
| cancel-on-failure-build-showcase-vue: | |
| if: ${{ !cancelled() && needs.build-showcase-vue.result == 'failure' }} | |
| uses: ./.github/workflows/00-cancel-workflow.yml | |
| secrets: inherit | |
| needs: [build-showcase-vue] | |
| build-showcase-nuxt: | |
| uses: ./.github/workflows/01-build-showcases.yml | |
| needs: [build-packages] | |
| secrets: inherit | |
| with: | |
| showcase: nuxt-showcase | |
| cancel-on-failure-build-showcase-nuxt: | |
| if: ${{ !cancelled() && needs.build-showcase-nuxt.result == 'failure' }} | |
| uses: ./.github/workflows/00-cancel-workflow.yml | |
| secrets: inherit | |
| needs: [build-showcase-nuxt] | |
| build-showcase-patternhub: | |
| uses: ./.github/workflows/01-build-patternhub.yml | |
| needs: [build-packages, init] | |
| with: | |
| baseUrl: ${{ needs.init.outputs.baseUrl }} | |
| secrets: inherit | |
| cancel-on-failure-build-showcase-patternhub: | |
| if: ${{ !cancelled() && needs.build-showcase-patternhub.result == 'failure' }} | |
| uses: ./.github/workflows/00-cancel-workflow.yml | |
| secrets: inherit | |
| needs: [build-showcase-patternhub] | |
| test-showcase-stencil: | |
| uses: ./.github/workflows/02-e2e-showcases.yml | |
| needs: [build-showcase-stencil, init] | |
| with: | |
| version: ${{ needs.init.outputs.playwrightVersion }} | |
| showcase: stencil-showcase | |
| test-ally: ${{ needs.init.outputs.test-ally }} | |
| test-showcase-angular: | |
| uses: ./.github/workflows/02-e2e-showcases.yml | |
| needs: [build-showcase-angular, init] | |
| with: | |
| version: ${{ needs.init.outputs.playwrightVersion }} | |
| showcase: angular-showcase | |
| test-ally: ${{ needs.init.outputs.test-ally }} | |
| test-showcase-react: | |
| uses: ./.github/workflows/02-e2e-showcases.yml | |
| needs: [build-showcase-react, init] | |
| with: | |
| version: ${{ needs.init.outputs.playwrightVersion }} | |
| showcase: react-showcase | |
| test-ally: ${{ needs.init.outputs.test-ally }} | |
| test-showcase-vue: | |
| uses: ./.github/workflows/02-e2e-showcases.yml | |
| needs: [build-showcase-vue, init] | |
| with: | |
| version: ${{ needs.init.outputs.playwrightVersion }} | |
| showcase: vue-showcase | |
| test-ally: ${{ needs.init.outputs.test-ally }} | |
| test-showcase-patternhub: | |
| uses: ./.github/workflows/02-e2e-patternhub.yml | |
| needs: [build-showcase-patternhub, init, init] | |
| with: | |
| version: ${{ needs.init.outputs.playwrightVersion }} | |
| baseUrl: ${{ needs.init.outputs.baseUrl }} | |
| regenerate-snapshots-components: | |
| if: ${{ !cancelled() && needs.test-components.result == 'failure' }} | |
| uses: ./.github/workflows/02-e2e-regenerate.yml | |
| with: | |
| version: ${{ needs.init.outputs.playwrightVersion }} | |
| type: components | |
| needs: [test-components, init] | |
| regenerate-snapshots-foundations: | |
| if: ${{ !cancelled() && needs.test-foundations.result == 'failure' }} | |
| uses: ./.github/workflows/02-e2e-regenerate.yml | |
| with: | |
| version: ${{ needs.init.outputs.playwrightVersion }} | |
| type: foundations | |
| needs: [test-foundations, init] | |
| regenerate-snapshots-patternhub: | |
| if: ${{ !cancelled() && needs.test-showcase-patternhub.result == 'failure' }} | |
| uses: ./.github/workflows/02-e2e-regenerate.yml | |
| with: | |
| version: ${{ needs.init.outputs.playwrightVersion }} | |
| path: ${{ needs.build-showcase-patternhub.outputs.path }} | |
| type: patternhub | |
| needs: [build-showcase-patternhub, test-showcase-patternhub, init] | |
| # This job runs only if aria-snapshots were changed compared to main or if it runs on main branch | |
| test-screen-reader: | |
| if: | | |
| needs.init.outputs.test-ally == 'true' || | |
| github.event.pull_request == null | |
| uses: ./.github/workflows/02-e2e-screen-reader.yml | |
| needs: [test-showcase-react, init-playwright, init] | |
| with: | |
| version: ${{ needs.init.outputs.playwrightVersion }} | |
| regenerate-snapshots: | |
| if: | | |
| !cancelled() && !contains(github.actor,'[bot]') && ( | |
| needs.test-showcase-angular.result == 'failure' || | |
| needs.test-showcase-react.result == 'failure' || | |
| needs.test-showcase-vue.result == 'failure' || | |
| needs.test-showcase-stencil.result == 'failure' | |
| ) | |
| uses: ./.github/workflows/02-e2e-regenerate.yml | |
| with: | |
| version: ${{ needs.init.outputs.playwrightVersion }} | |
| type: showcases | |
| needs: | |
| [ | |
| test-showcase-angular, | |
| test-showcase-react, | |
| test-showcase-vue, | |
| test-showcase-stencil, | |
| init | |
| ] | |
| commit-regenerated-snapshots: | |
| uses: ./.github/workflows/02-e2e-regenerated-snapshots-commit.yml | |
| secrets: inherit | |
| if: | | |
| ${{ !cancelled() && | |
| ( needs.regenerate-snapshots-components.result == 'success' || | |
| needs.regenerate-snapshots-foundations.result == 'success' || | |
| needs.regenerate-snapshots-patternhub.result == 'success' || | |
| needs.regenerate-snapshots.result == 'success' ) | |
| }} | |
| needs: | |
| [ | |
| regenerate-snapshots-components, | |
| regenerate-snapshots-foundations, | |
| regenerate-snapshots-patternhub, | |
| regenerate-snapshots | |
| ] | |
| with: | |
| showcases: ${{ needs.regenerate-snapshots.result == 'success' }} | |
| components: ${{ needs.regenerate-snapshots-components.result == 'success' }} | |
| foundations: ${{ needs.regenerate-snapshots-foundations.result == 'success' }} | |
| patternhub: ${{ needs.regenerate-snapshots-patternhub.result == 'success' }} | |
| checks-done: | |
| if: ${{ !cancelled() }} | |
| runs-on: ubuntu-24.04 # Use Ubuntu 24.04 explicitly | |
| steps: | |
| - name: 🎉 Checks done | |
| run: | | |
| resultBuildStorybookComposition="${{ needs.build-storybook-composition.result }}" | |
| resultBuildStorybookAngular="${{ needs.build-storybook-angular.result }}" | |
| resultBuildStorybookReact="${{ needs.build-storybook-react.result }}" | |
| resultBuildStorybookVue="${{ needs.build-storybook-vue.result }}" | |
| resultBuildShowcaseStencil="${{ needs.build-showcase-stencil.result }}" | |
| resultBuildShowcaseAngular="${{ needs.build-showcase-angular.result }}" | |
| resultBuildShowcaseAngularSSR="${{ needs.build-showcase-angular-ssr.result }}" | |
| resultBuildShowcaseReact="${{ needs.build-showcase-react.result }}" | |
| resultBuildShowcaseNext="${{ needs.build-showcase-next.result }}" | |
| resultBuildShowcaseVue="${{ needs.build-showcase-vue.result }}" | |
| resultBuildShowcaseNuxt="${{ needs.build-showcase-nuxt.result }}" | |
| resultBuildShowcasePatternhub="${{ needs.build-showcase-patternhub.result }}" | |
| resultBuildOutputs="${{ needs.build-outputs.result }}" | |
| resultTestPackages="${{ needs.test-components.result }}" | |
| resultTestFoundations="${{ needs.test-foundations.result }}" | |
| resultTestShowcaseStencil="${{ needs.test-showcase-stencil.result }}" | |
| resultTestShowcaseAngular="${{ needs.test-showcase-angular.result }}" | |
| resultTestShowcaseReact="${{ needs.test-showcase-react.result }}" | |
| resultTestShowcaseVue="${{ needs.test-showcase-vue.result }}" | |
| resultTestShowcasePatternhub="${{ needs.test-showcase-patternhub.result }}" | |
| resultTestScreenReader="${{ needs.test-screen-reader.result }}" | |
| if [[ $resultBuildStorybookComposition == "success" ]] && \ | |
| [[ $resultBuildStorybookAngular == "success" ]] && \ | |
| [[ $resultBuildStorybookReact == "success" ]] && \ | |
| [[ $resultBuildStorybookVue == "success" ]] && \ | |
| [[ $resultTestFoundations == "success" ]] && \ | |
| [[ $resultTestScreenReader == "success" || $resultTestScreenReader == "skipped" ]] && \ | |
| [[ $resultTestShowcaseStencil == "success" ]] && \ | |
| [[ $resultTestShowcaseAngular == "success" ]] && \ | |
| [[ $resultTestShowcaseReact == "success" ]] && \ | |
| [[ $resultTestShowcaseVue == "success" ]] && \ | |
| [[ $resultTestShowcasePatternhub == "success" ]] && \ | |
| [[ $resultTestPackages == "success" ]] && \ | |
| [[ $resultBuildOutputs == "success" ]] && \ | |
| [[ $resultBuildShowcaseStencil == "success" ]] && \ | |
| [[ $resultBuildShowcaseAngular == "success" ]] && \ | |
| [[ $resultBuildShowcaseAngularSSR == "success" ]] && \ | |
| [[ $resultBuildShowcaseReact == "success" ]] && \ | |
| [[ $resultBuildShowcaseNext == "success" ]] && \ | |
| [[ $resultBuildShowcaseVue == "success" ]] && \ | |
| [[ $resultBuildShowcaseNuxt == "success" ]] && \ | |
| [[ $resultBuildShowcasePatternhub == "success" ]]; then | |
| echo "🎉 All tests were successful." | |
| exit 0 | |
| else | |
| echo "Some tests were failing." | |
| exit 1 | |
| fi | |
| needs: | |
| [ | |
| build-storybook-composition, | |
| build-storybook-angular, | |
| build-storybook-react, | |
| build-storybook-vue, | |
| build-showcase-stencil, | |
| build-showcase-angular, | |
| build-showcase-angular-ssr, | |
| build-showcase-react, | |
| build-showcase-next, | |
| build-showcase-vue, | |
| build-showcase-nuxt, | |
| build-showcase-patternhub, | |
| build-outputs, | |
| test-components, | |
| test-showcase-stencil, | |
| test-showcase-angular, | |
| test-showcase-react, | |
| test-showcase-vue, | |
| test-showcase-patternhub, | |
| test-foundations, | |
| test-screen-reader | |
| ] | |
| deploy: | |
| uses: ./.github/workflows/03-deploy-gh-pages.yml | |
| if: | | |
| ${{ | |
| !cancelled() && github.actor != 'dependabot[bot]' && | |
| (github.event.pull_request == null || github.event.pull_request.head.repo.owner.login == 'db-ux-design-system') | |
| }} | |
| needs: [checks-done, init] | |
| with: | |
| release: false | |
| preRelease: false | |
| name: ${{ needs.init.outputs.branchName }} | |
| repoName: ${{ needs.init.outputs.repoName }} | |
| repoOwner: ${{ needs.init.outputs.repoOwner }} | |
| preview-url-pr-description: | |
| if: ${{ !cancelled() && github.event.pull_request != null }} | |
| needs: [deploy] | |
| uses: ./.github/workflows/03-preview-url-pr-description.yml |