Stencil Nightly Build #378
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
# This workflow is intended to run against the `HEAD` of Stencil's primary branch. | |
# See https://github.com/ionic-team/stencil for contents of the repository | |
name: 'Stencil Nightly Build' | |
on: | |
schedule: | |
# Run every Monday-Friday | |
# at 6:00 UTC (6:00 am UTC) | |
- cron: '00 06 * * 1-5' | |
workflow_dispatch: | |
inputs: | |
npm_release_tag: | |
required: true | |
type: string | |
description: What version should be pulled from NPM? | |
default: nightly | |
# When pushing a new commit we should | |
# cancel the previous test run to not | |
# consume more runners than we need to. | |
concurrency: | |
group: ${{ github.ref }} | |
cancel-in-progress: false | |
jobs: | |
build-core-with-stencil-nightly: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/workflows/actions/build-core-stencil-prerelease | |
with: | |
stencil-version: ${{ inputs.npm_release_tag || 'nightly' }} | |
test-core-clean-build: | |
needs: [build-core-with-stencil-nightly] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/workflows/actions/test-core-clean-build | |
test-core-lint: | |
needs: [build-core-with-stencil-nightly] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/workflows/actions/test-core-lint | |
test-core-spec: | |
needs: [build-core-with-stencil-nightly] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/workflows/actions/test-core-spec | |
with: | |
stencil-version: ${{ inputs.npm_release_tag || 'nightly' }} | |
test-core-screenshot: | |
strategy: | |
# This ensures that all screenshot shard | |
# failures are reported so the dev can | |
# review everything at once. | |
fail-fast: false | |
matrix: | |
# Divide the tests into n buckets | |
# and run those buckets in parallel. | |
# To increase the number of shards, | |
# add new items to the shard array | |
# and change the value of totalShards | |
# to be the length of the shard array. | |
shard: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20] | |
totalShards: [20] | |
needs: [build-core-with-stencil-nightly] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/workflows/actions/test-core-screenshot | |
with: | |
shard: ${{ matrix.shard }} | |
totalShards: ${{ matrix.totalShards }} | |
# Screenshots are required to pass | |
# in order for the branch to be merge | |
# eligible. However, the screenshot tests | |
# are run on n runners where n can change | |
# over time. The verify-screenshots step allows | |
# us to have a required status check for screenshot | |
# results without having to manually add each | |
# matrix run in the branch protection rules | |
# Source: https://github.community/t/status-check-for-a-matrix-jobs/127354 | |
verify-screenshots: | |
if: ${{ always() }} | |
needs: test-core-screenshot | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check build matrix status | |
if: ${{ needs.test-core-screenshot.result != 'success' }} | |
run: exit 1 | |
build-vue: | |
needs: [build-core-with-stencil-nightly] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/workflows/actions/build-vue | |
build-vue-router: | |
needs: [build-vue] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/workflows/actions/build-vue-router | |
test-vue-e2e: | |
strategy: | |
fail-fast: false | |
matrix: | |
apps: [vue3] | |
needs: [build-vue, build-vue-router] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/workflows/actions/test-vue-e2e | |
with: | |
app: ${{ matrix.apps }} | |
verify-test-vue-e2e: | |
if: ${{ always() }} | |
needs: test-vue-e2e | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check build matrix status | |
if: ${{ needs.test-vue-e2e.result != 'success' }} | |
run: exit 1 | |
build-angular: | |
needs: [build-core-with-stencil-nightly] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/workflows/actions/build-angular | |
build-angular-server: | |
needs: [build-core-with-stencil-nightly] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/workflows/actions/build-angular-server | |
test-angular-e2e: | |
strategy: | |
fail-fast: false | |
matrix: | |
apps: [ng16, ng17, ng18] | |
needs: [build-angular, build-angular-server] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/workflows/actions/test-angular-e2e | |
with: | |
app: ${{ matrix.apps }} | |
verify-test-angular-e2e: | |
if: ${{ always() }} | |
needs: test-angular-e2e | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check build matrix status | |
if: ${{ needs.test-angular-e2e.result != 'success' }} | |
run: exit 1 | |
build-react: | |
needs: [build-core-with-stencil-nightly] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/workflows/actions/build-react | |
build-react-router: | |
needs: [build-react] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/workflows/actions/build-react-router | |
test-react-router-e2e: | |
strategy: | |
fail-fast: false | |
matrix: | |
apps: [reactrouter5] | |
needs: [build-react, build-react-router] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/workflows/actions/test-react-router-e2e | |
with: | |
app: ${{ matrix.apps }} | |
verify-test-react-router-e2e: | |
if: ${{ always() }} | |
needs: test-react-router-e2e | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check build matrix status | |
if: ${{ needs.test-react-router-e2e.result != 'success' }} | |
run: exit 1 | |
test-react-e2e: | |
strategy: | |
fail-fast: false | |
matrix: | |
apps: [react17, react18] | |
needs: [build-react, build-react-router] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/workflows/actions/test-react-e2e | |
with: | |
app: ${{ matrix.apps }} | |
verify-test-react-e2e: | |
if: ${{ always() }} | |
needs: test-react-e2e | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check build matrix status | |
if: ${{ needs.test-react-e2e.result != 'success' }} | |
run: exit 1 |