Skip to content

refactor(CI/CD): replace shell script by JavaScript #14964

refactor(CI/CD): replace shell script by JavaScript

refactor(CI/CD): replace shell script by JavaScript #14964

Workflow file for this run

---
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