Cron 2024-05-09 for beta #8969
Workflow file for this run
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: CI | |
on: | |
push: | |
branches: | |
- main | |
- beta | |
- release | |
# release branches | |
- release* | |
- lts* | |
# nightly ci cron branches | |
- cron* | |
tags: | |
- 'v*' | |
paths-ignore: | |
- 'CHANGELOG.md' | |
pull_request: | |
permissions: | |
contents: read | |
jobs: | |
lint: | |
name: Linting | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: ./.github/actions/setup | |
- name: linting | |
run: pnpm lint | |
types: | |
name: Type Checking (current version) | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: ./.github/actions/setup | |
- name: Check published and internal types | |
run: pnpm type-check | |
types-range: | |
name: Type Checking (other supported versions) | |
runs-on: ubuntu-latest | |
needs: ['types'] | |
strategy: | |
matrix: | |
# I removed 'next' from this list because we're seeing buggy behavior in | |
# the so-far unreleased 5.4. -ef4 | |
ts-version: ['4.9', '5.0', '5.1', '5.2', '5.3'] | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: ./.github/actions/setup | |
- name: build stable type definitions | |
run: pnpm build:types | |
- name: install TS@${{matrix.ts-version}} | |
run: pnpm add --save-dev --workspace-root typescript@${{ matrix.ts-version }} | |
- name: Check published and internal types with TS@${{matrix.ts-version}} | |
run: pnpm type-check | |
basic-test: | |
name: Debug and Prebuilt (All Tests by Package + Canary Features) | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: ./.github/actions/setup | |
- name: build | |
env: | |
DISABLE_SOURCE_MAPS: true | |
BROCCOLI_ENV: production | |
run: pnpm ember build | |
- name: Upload build | |
uses: actions/upload-artifact@v3 | |
with: | |
name: dist | |
path: dist | |
- name: test | |
env: | |
TEST_SUITE: each-package | |
run: pnpm test | |
deprecations-enabled-test: | |
name: Debug and Prebuilt (All Tests by Package + Canary Features) with all Deprecations enabled | |
runs-on: ubuntu-latest | |
needs: [basic-test, lint, types] | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: ./.github/actions/setup | |
- name: build | |
env: | |
DISABLE_SOURCE_MAPS: true | |
BROCCOLI_ENV: production | |
run: pnpm ember build | |
- name: Upload build | |
uses: actions/upload-artifact@v3 | |
with: | |
name: dist | |
path: dist | |
- name: test | |
env: | |
TEST_SUITE: each-package | |
ALL_DEPRECATIONS_ENABLED: true | |
run: pnpm test | |
deprecations-broken-test: | |
name: Debug and Prebuilt (All Tests by Package + Canary Features) with Deprecations as Errors | |
runs-on: ubuntu-latest | |
needs: [ basic-test, lint, types ] | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: ./.github/actions/setup | |
- name: build | |
env: | |
DISABLE_SOURCE_MAPS: true | |
BROCCOLI_ENV: production | |
run: pnpm ember build | |
- name: Upload build | |
uses: actions/upload-artifact@v3 | |
with: | |
name: dist | |
path: dist | |
- name: test | |
env: | |
TEST_SUITE: each-package | |
OVERRIDE_DEPRECATION_VERSION: '15.0.0' # Throws on all deprecations with an until before or equal to this version | |
run: pnpm test | |
browserstack-test: | |
name: Browserstack Tests (Safari, Edge) | |
runs-on: ubuntu-latest | |
needs: [basic-test, lint, types] | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: ./.github/actions/setup | |
- name: build | |
env: | |
DISABLE_SOURCE_MAPS: true | |
BROCCOLI_ENV: production | |
SHOULD_TRANSPILE: true | |
run: pnpm ember build | |
- name: Set BrowserStack Local Identifier | |
if: startsWith(github.ref, 'refs/tags/v') | |
run: | | |
BROWSERSTACK_LOCAL_IDENTIFIER="$GITHUB_RUN_ID-$GITHUB_RUN_ATTEMPT" | |
echo "BROWSERSTACK_LOCAL_IDENTIFIER=$BROWSERSTACK_LOCAL_IDENTIFIER" >> $GITHUB_ENV | |
- name: test:browserstack | |
env: | |
BROWSERSTACK_USERNAME: emberjscoreteam1 | |
# This is in plaintext on purpose. It has no privileged access to anything (this is a free | |
# account) and it allows us to run browserstack tests against PRs. | |
BROWSERSTACK_ACCESS_KEY: o5LNEdygq1SP4L9kst4s | |
run: pnpm test:browserstack | |
smoke-test: | |
name: Smoke tests (Full Ember Apps) | |
runs-on: ubuntu-latest | |
needs: [basic-test, lint, types] | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: ./.github/actions/setup | |
- name: build | |
run: pnpm ember build -prod | |
- name: test | |
# todo: potentially more apps? use matrix? | |
run: | | |
cd smoke-tests/ember-test-app/ | |
pnpm install | |
pnpm link ../.. | |
pnpm test | |
production-test: | |
name: Production (All Tests + Canary Features) | |
runs-on: ubuntu-latest | |
needs: [basic-test, lint, types] | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: ./.github/actions/setup | |
- name: build | |
env: | |
DISABLE_SOURCE_MAPS: true | |
BROCCOLI_ENV: production | |
run: pnpm ember build -prod | |
- name: test | |
run: pnpm test | |
production-debug-render-test: | |
name: Production (All Tests + Canary Features with Debug Render Tree) | |
runs-on: ubuntu-latest | |
needs: [basic-test, lint, types] | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: ./.github/actions/setup | |
- name: build | |
env: | |
DISABLE_SOURCE_MAPS: true | |
BROCCOLI_ENV: production | |
DEBUG_RENDER_TREE: true | |
run: pnpm ember build -prod | |
- name: test | |
run: pnpm test | |
extend-prototypes-test: | |
name: Extend Prototypes | |
runs-on: ubuntu-latest | |
needs: [basic-test, lint, types] | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: ./.github/actions/setup | |
- uses: actions/download-artifact@v3 | |
with: | |
name: dist | |
path: dist | |
- name: test | |
env: | |
TEST_SUITE: extend-prototypes | |
run: pnpm test | |
node-test: | |
name: Node.js Tests | |
runs-on: ubuntu-latest | |
needs: [basic-test, lint, types] | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: ./.github/actions/setup | |
- name: build | |
env: | |
DISABLE_SOURCE_MAPS: true | |
BROCCOLI_ENV: production | |
SHOULD_TRANSPILE_FOR_NODE: true | |
run: pnpm ember build -prod | |
- name: test | |
run: pnpm test:node | |
blueprint-test: | |
name: Blueprint Tests | |
runs-on: ubuntu-latest | |
needs: [lint] | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: ./.github/actions/setup | |
- name: test | |
run: pnpm test:blueprints | |
browser-test: | |
name: Browser Tests (Firefox) | |
runs-on: ubuntu-latest | |
needs: [basic-test, lint, types] | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: ./.github/actions/setup | |
- uses: actions/download-artifact@v3 | |
with: | |
name: dist | |
path: dist | |
- name: Setup firefox | |
uses: browser-actions/setup-firefox@latest | |
with: | |
firefox-version: 102.0.1 | |
- run: firefox --version | |
- name: test | |
run: pnpm ember test -c testem.ci-browsers.js | |
deploy-tag: | |
name: Deploy tags to npm | |
runs-on: ubuntu-latest | |
needs: | |
[ | |
basic-test, | |
lint, | |
browserstack-test, | |
production-test, | |
production-debug-render-test, | |
extend-prototypes-test, | |
node-test, | |
blueprint-test, | |
browser-test, | |
] | |
if: startsWith(github.ref, 'refs/tags/v') | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: ./.github/actions/setup | |
- name: build for publish | |
run: node bin/build-for-publishing.js | |
- name: publish to npm | |
run: npm publish | |
env: | |
NODE_AUTH_TOKEN: ${{ secrets.NPM_AUTH_TOKEN }} | |
publish: | |
name: Publish channel to s3 | |
runs-on: ubuntu-latest | |
needs: | |
[ | |
basic-test, | |
lint, | |
browserstack-test, | |
production-test, | |
production-debug-render-test, | |
extend-prototypes-test, | |
node-test, | |
blueprint-test, | |
browser-test, | |
] | |
# Only run on pushes to branches that are not from the cron workflow | |
if: github.event_name == 'push' && contains(github.ref, 'cron') != true | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: ./.github/actions/setup | |
- name: build for publish | |
run: node bin/build-for-publishing.js | |
- name: publish to s3 | |
run: node bin/publish-to-s3.mjs | |
env: | |
S3_BUCKET_NAME: 'builds.emberjs.com' | |
S3_SECRET_ACCESS_KEY: ${{ secrets.S3_SECRET_ACCESS_KEY}} | |
S3_ACCESS_KEY_ID: ${{ secrets.S3_ACCESS_KEY_ID}} | |
publish-alpha: | |
name: Publish alpha from default branch | |
runs-on: ubuntu-latest | |
needs: | |
[ | |
basic-test, | |
lint, | |
browserstack-test, | |
production-test, | |
production-debug-render-test, | |
extend-prototypes-test, | |
node-test, | |
blueprint-test, | |
browser-test, | |
] | |
# Only run on pushes to main | |
if: github.event_name == 'push' && github.ref == 'refs/heads/main' | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: ./.github/actions/setup | |
- name: build for publish | |
run: node bin/build-for-publishing.js | |
- name: publish to s3 | |
run: node bin/publish-to-s3.mjs | |
env: | |
BUILD_TYPE: alpha | |
OVERRIDE_FEATURES: '' | |
S3_BUCKET_NAME: 'builds.emberjs.com' | |
S3_SECRET_ACCESS_KEY: ${{ secrets.S3_SECRET_ACCESS_KEY}} | |
S3_ACCESS_KEY_ID: ${{ secrets.S3_ACCESS_KEY_ID}} | |
notify: | |
name: Notify Discord | |
runs-on: ubuntu-latest | |
needs: | |
[ | |
basic-test, | |
lint, | |
browserstack-test, | |
production-test, | |
production-debug-render-test, | |
extend-prototypes-test, | |
node-test, | |
blueprint-test, | |
browser-test, | |
] | |
if: failure() && contains(github.ref, 'cron') == true | |
steps: | |
- uses: sarisia/actions-status-discord@v1 | |
with: | |
webhook: ${{ secrets.FRAMEWORK_WEBHOOK }} | |
status: 'Failure' | |
title: 'Ember.js Nightly CI' | |
color: 0xcc0000 | |
url: '${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}' | |
username: GitHub Actions |