Skip to content

Cron 2024-01-13 for release #8338

Cron 2024-01-13 for release

Cron 2024-01-13 for release #8338

Workflow file for this run

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:
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:
ts-version: ['4.9', '5.0', 'next']
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 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
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