refactor(CI/CD): replace shell script by JavaScript #14964
This file contains 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 | |
on: | |
pull_request: | |
push: | |
branches: | |
- "main" | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }} | |
jobs: | |
init: | |
uses: ./.github/workflows/00-init.yml | |
scan-secrets: | |
if: github.event.pull_request == null || github.event.pull_request.head.repo.owner.login == 'db-ui' | |
uses: ./.github/workflows/00-scan-secrets.yml | |
get-playwright-version: | |
uses: ./.github/workflows/01-get-playwright-version.yml | |
needs: [init] | |
lint: | |
uses: ./.github/workflows/01-lint.yml | |
needs: [init] | |
test: | |
uses: ./.github/workflows/01-test.yml | |
needs: [init] | |
build-packages: | |
uses: ./.github/workflows/01-build-packages.yml | |
needs: [init] | |
init-playwright: | |
uses: ./.github/workflows/01-init-playwright.yml | |
needs: [get-playwright-version] | |
with: | |
version: ${{ needs.get-playwright-version.outputs.version }} | |
build-outputs: | |
uses: ./.github/workflows/01-build-outputs.yml | |
needs: [build-packages] | |
test-components: | |
uses: ./.github/workflows/02-e2e.yml | |
needs: [build-packages, get-playwright-version] | |
with: | |
version: ${{ needs.get-playwright-version.outputs.version }} | |
test-foundations: | |
uses: ./.github/workflows/02-e2e-foundations.yml | |
needs: [build-packages, get-playwright-version] | |
with: | |
version: ${{ needs.get-playwright-version.outputs.version }} | |
build-showcase-stencil: | |
uses: ./.github/workflows/01-build-showcases.yml | |
needs: [build-packages] | |
with: | |
showcase: stencil-showcase | |
build-showcase-angular: | |
uses: ./.github/workflows/01-build-showcases.yml | |
needs: [build-packages] | |
with: | |
showcase: angular-showcase | |
build-showcase-angular-ssr: | |
uses: ./.github/workflows/01-build-showcases.yml | |
needs: [build-packages] | |
with: | |
showcase: angular-ssr-showcase | |
build-showcase-react: | |
uses: ./.github/workflows/01-build-showcases.yml | |
needs: [build-packages] | |
with: | |
showcase: react-showcase | |
build-showcase-next: | |
uses: ./.github/workflows/01-build-showcases.yml | |
needs: [build-packages] | |
with: | |
showcase: next-showcase | |
build-showcase-vue: | |
uses: ./.github/workflows/01-build-showcases.yml | |
needs: [build-packages] | |
with: | |
showcase: vue-showcase | |
build-showcase-nuxt: | |
uses: ./.github/workflows/01-build-showcases.yml | |
needs: [build-packages] | |
with: | |
showcase: nuxt-showcase | |
build-showcase-patternhub: | |
uses: ./.github/workflows/01-build-patternhub.yml | |
needs: [build-packages] | |
test-showcase-stencil: | |
uses: ./.github/workflows/02-e2e-showcases.yml | |
needs: [build-showcase-stencil, get-playwright-version] | |
with: | |
version: ${{ needs.get-playwright-version.outputs.version }} | |
showcase: stencil-showcase | |
test-showcase-angular: | |
uses: ./.github/workflows/02-e2e-showcases.yml | |
needs: [build-showcase-angular, get-playwright-version] | |
with: | |
version: ${{ needs.get-playwright-version.outputs.version }} | |
showcase: angular-showcase | |
test-showcase-react: | |
uses: ./.github/workflows/02-e2e-showcases.yml | |
needs: [build-showcase-react, get-playwright-version] | |
with: | |
version: ${{ needs.get-playwright-version.outputs.version }} | |
showcase: react-showcase | |
test-showcase-vue: | |
uses: ./.github/workflows/02-e2e-showcases.yml | |
needs: [build-showcase-vue, get-playwright-version] | |
with: | |
version: ${{ needs.get-playwright-version.outputs.version }} | |
showcase: vue-showcase | |
test-showcase-patternhub: | |
uses: ./.github/workflows/02-e2e-showcases.yml | |
needs: [build-showcase-patternhub, get-playwright-version] | |
with: | |
version: ${{ needs.get-playwright-version.outputs.version }} | |
path: ${{ needs.build-showcase-patternhub.outputs.path }} | |
showcase: patternhub | |
regenerate-snapshots-components: | |
if: always() && needs.test-components.result == 'failure' | |
uses: ./.github/workflows/02-e2e-regenerate.yml | |
with: | |
version: ${{ needs.get-playwright-version.outputs.version }} | |
type: components | |
needs: [test-components, get-playwright-version] | |
regenerate-snapshots-foundations: | |
if: always() && needs.test-foundations.result == 'failure' | |
uses: ./.github/workflows/02-e2e-regenerate.yml | |
with: | |
version: ${{ needs.get-playwright-version.outputs.version }} | |
type: foundations | |
needs: [test-foundations, get-playwright-version] | |
regenerate-snapshots-patternhub: | |
if: always() && needs.test-showcase-patternhub.result == 'failure' | |
uses: ./.github/workflows/02-e2e-regenerate.yml | |
with: | |
version: ${{ needs.get-playwright-version.outputs.version }} | |
path: ${{ needs.build-showcase-patternhub.outputs.path }} | |
type: patternhub | |
needs: | |
[ | |
build-showcase-patternhub, | |
test-showcase-patternhub, | |
get-playwright-version | |
] | |
test-screen-reader: | |
uses: ./.github/workflows/02-e2e-screen-reader.yml | |
needs: [build-showcase-react, init-playwright, get-playwright-version] | |
with: | |
version: ${{ needs.get-playwright-version.outputs.version }} | |
regenerate-snapshots: | |
if: always() && (needs.test-showcase-angular.result == 'failure' || needs.test-showcase-react.result == 'failure' || needs.test-showcase-vue.result == 'failure') | |
uses: ./.github/workflows/02-e2e-regenerate.yml | |
with: | |
version: ${{ needs.get-playwright-version.outputs.version }} | |
type: showcases | |
needs: | |
[ | |
test-showcase-angular, | |
test-showcase-react, | |
test-showcase-vue, | |
get-playwright-version | |
] | |
checks-done: | |
if: ${{ always() }} | |
runs-on: ubuntu-latest | |
steps: | |
- name: 🎉 Checks done | |
run: | | |
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 [[ $resultTestFoundations == "success" ]] && \ | |
[[ $resultTestScreenReader == "success" ]] && \ | |
[[ $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-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: ${{ github.actor != 'dependabot[bot]' && (github.event.pull_request == null || github.event.pull_request.head.repo.owner.login == 'db-ui') }} | |
needs: [checks-done] | |
with: | |
release: false | |
preRelease: false |