Skip to content
Permalink
master
Switch branches/tags
View runs Go to file
 
 
Cannot retrieve contributors at this time
name: CI
on:
push:
branches:
- master
- 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: actions/setup-node@v3
with:
node-version: 12.x
cache: yarn
- name: install dependencies
run: yarn install --frozen-lockfile --non-interactive
- name: linting
run: yarn lint
types:
name: Type Checking (current version)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 12.x
cache: yarn
- name: install dependencies
run: yarn install --frozen-lockfile --non-interactive
- name: Check types
run: yarn type-check
types-range:
name: Type Checking (other supported versions)
runs-on: ubuntu-latest
needs: ['types']
strategy:
matrix:
ts-version: ['next']
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 12.x
cache: yarn
- name: install dependencies
run: yarn install --frozen-lockfile --non-interactive
- name: install TS@${{matrix.ts-version}}
run: yarn add -D typescript@${{ matrix.ts-version }}
- name: Check types with TS@${{matrix.ts-version}}
run: yarn type-check
basic-test:
name: Debug and Prebuilt (All Tests by Package + Canary Features)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 12.x
cache: yarn
- name: install dependencies
run: yarn install --frozen-lockfile --non-interactive
- name: build
env:
DISABLE_SOURCE_MAPS: true
BROCCOLI_ENV: production
run: yarn ember build
- name: Upload build
uses: actions/upload-artifact@v3
with:
name: dist
path: dist
- name: test
env:
TEST_SUITE: each-package
run: yarn test
browserstack-test:
name: Browserstack Tests (Safari, Edge)
runs-on: ubuntu-latest
needs: [basic-test, lint, types]
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 12.x
cache: yarn
- name: install dependencies
run: yarn install --frozen-lockfile --non-interactive
- name: build
env:
DISABLE_SOURCE_MAPS: true
BROCCOLI_ENV: production
SHOULD_TRANSPILE: true
run: yarn ember build
- 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: yarn 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: actions/setup-node@v2
with:
node-version: 12.x
cache: yarn
- name: install dependencies
run: yarn install --frozen-lockfile --non-interactive
- name: build
run: yarn ember build -prod
- name: test
# todo: potentially more apps? use matrix?
run: |
yarn link
cd smoke-tests/ember-test-app/
yarn
yarn link ember-source
yarn test
production-test:
name: Production (All Tests + Canary Features)
runs-on: ubuntu-latest
needs: [basic-test, lint, types]
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 12.x
cache: yarn
- name: install dependencies
run: yarn install --frozen-lockfile --non-interactive
- name: build
env:
DISABLE_SOURCE_MAPS: true
BROCCOLI_ENV: production
run: yarn ember build -prod
- name: test
run: yarn 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: actions/setup-node@v3
with:
node-version: 12.x
cache: yarn
- name: install dependencies
run: yarn install --frozen-lockfile --non-interactive
- name: build
env:
DISABLE_SOURCE_MAPS: true
BROCCOLI_ENV: production
DEBUG_RENDER_TREE: true
run: yarn ember build -prod
- name: test
run: yarn test
extend-prototypes-test:
name: Extend Prototypes
runs-on: ubuntu-latest
needs: [basic-test, lint, types]
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 12.x
cache: yarn
- name: install dependencies
run: yarn install --frozen-lockfile --non-interactive
- uses: actions/download-artifact@v3
with:
name: dist
path: dist
- name: test
env:
TEST_SUITE: extend-prototypes
run: yarn test
node-test:
name: Node.js Tests
runs-on: ubuntu-latest
needs: [basic-test, lint, types]
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 12.x
cache: yarn
- name: install dependencies
run: yarn install --frozen-lockfile --non-interactive
- name: build
env:
DISABLE_SOURCE_MAPS: true
BROCCOLI_ENV: production
SHOULD_TRANSPILE_FOR_NODE: true
run: yarn ember build -prod
- name: test
run: yarn test:node
blueprint-test:
name: Blueprint Tests
runs-on: ubuntu-latest
needs: [lint]
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 12.x
cache: yarn
- name: install dependencies
run: yarn install --frozen-lockfile --non-interactive
- uses: actions/download-artifact@v3
with:
name: dist
path: dist
- name: test
run: yarn test:blueprints
browser-test:
name: Browser Tests (Firefox)
runs-on: ubuntu-latest
needs: [basic-test, lint, types]
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 12.x
cache: yarn
- name: install dependencies
run: yarn install --frozen-lockfile --non-interactive
- uses: actions/download-artifact@v3
with:
name: dist
path: dist
- name: Setup firefox
uses: browser-actions/setup-firefox@latest
with:
firefox-version: 91.0.1
- run: firefox --version
- name: test
run: yarn 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: actions/setup-node@v3
with:
node-version: 12.x
registry-url: 'https://registry.npmjs.org'
cache: yarn
- name: install dependencies
run: yarn install --frozen-lockfile --non-interactive
- 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: actions/setup-node@v3
with:
node-version: 12.x
cache: yarn
- name: install dependencies
run: yarn install --frozen-lockfile --non-interactive
- name: build for publish
run: node bin/build-for-publishing.js
- name: publish to s3
run: node bin/publish_to_s3.js
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 master
if: github.event_name == 'push' && github.ref == 'refs/heads/master'
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 12.x
cache: yarn
- name: install dependencies
run: yarn install --frozen-lockfile --non-interactive
- name: build for publish
run: node bin/build-for-publishing.js
- name: publish to s3
run: node bin/publish_to_s3.js
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}}