Skip to content

[WIP] issue 9232 #11230

[WIP] issue 9232

[WIP] issue 9232 #11230

Workflow file for this run

name: CI
on:
pull_request:
push:
branches:
- master
- beta
- release
- 'release-*'
- 'lts-*'
tags:
- '*'
concurrency:
group: ci-${{ github.head_ref }}
cancel-in-progress: true
jobs:
lint:
timeout-minutes: 5
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 16.x
cache: 'yarn'
- name: Yarn install
run: yarn --frozen-lockfile
- name: Lint features
run: yarn lint:features
- name: Lint js
run: yarn lint:js
- name: Check for TypeScript problems
run: yarn problems
test-infra:
timeout-minutes: 10
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 16.x
cache: 'yarn'
- name: Yarn install
run: yarn --frozen-lockfile
- name: Yarn test infra compatWith 3.0
env:
COMPAT_WITH: '3.0'
run: yarn test:infra
- name: Yarn test infra compatWith 3.8
env:
COMPAT_WITH: '3.8'
run: yarn test:infra
- name: Yarn test infra compatWith 3.12
env:
COMPAT_WITH: '3.12'
run: yarn test:infra
- name: Yarn test infra compatWith 3.16
env:
COMPAT_WITH: '3.16'
run: yarn test:infra
- name: Yarn test infra compatWith 99.0
env:
COMPAT_WITH: '99.0'
run: yarn test:infra
basic-tests:
timeout-minutes: 20
strategy:
matrix:
os: [macos-latest, windows-latest, ubuntu-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 16.x
cache: 'yarn'
- name: Install dependencies
run: yarn install --frozen-lockfile --network-timeout=300000
- name: Launcher Info
run: |
yarn run testem launchers
- name: Basic tests
run: yarn test
- name: Production build
run: yarn test:production
- name: Docs tests
run: yarn test:docs
- if: matrix.os != 'windows-latest'
name: Node tests
run: yarn test:node
- if: matrix.os == 'ubuntu-latest'
name: Encapsulation tests
run: yarn test:encapsulation
- if: |
matrix.os == 'ubuntu-latest' &&
github.event_name == 'pull_request' && (
github.base_ref == 'master' || github.base_ref == 'beta'
) || github.event_name == 'push' && (
endsWith(github.ref, '/master') || endsWith(github.ref, '/beta')
)
name: Enable All In progress features
env:
EMBER_DATA_FEATURE_OVERRIDE: ENABLE_ALL_OPTIONAL
run: yarn test
- if: |
matrix.os == 'ubuntu-latest' &&
github.event_name == 'pull_request' && (
github.base_ref == 'master' || github.base_ref == 'beta'
) || github.event_name == 'push' && (
endsWith(github.ref, '/master') || endsWith(github.ref, '/beta')
)
name: Disabled All In progress features
env:
EMBER_DATA_FEATURE_OVERRIDE: DISABLE_ALL
run: yarn test
- if: |
github.event_name == 'pull_request' && (
github.base_ref == 'master' || github.base_ref == 'beta'
) || github.event_name == 'push' && (
endsWith(github.ref, '/master') || endsWith(github.ref, '/beta')
)
name: Remove All Deprecations
env:
EMBER_DATA_FULL_COMPAT: true
run: yarn test:production
fastboot-tests:
needs: [lint]
strategy:
matrix:
os: [macos-latest, windows-latest, ubuntu-latest]
scenario: [fastboot-with-ember-fetch]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 16.x
cache: 'yarn'
- name: Install dependencies
run: yarn install --frozen-lockfile --network-timeout=300000
- name: Fastboot Test ${{ matrix.scenario }}
timeout-minutes: 12
run: yarn test:fastboot ${{ matrix.scenario }}
browser-tests:
needs: [lint]
timeout-minutes: 20
strategy:
fail-fast: false
matrix:
launcher: [Chrome, Firefox]
os: [macos-latest, windows-latest, ubuntu-latest]
exclude:
- os: ubuntu-latest
launcher: Firefox
- os: windows-latest
launcher: Firefox
- os: macos-latest
launcher: Chrome
- os: windows-latest
launcher: Chrome
runs-on: ${{ matrix.os }}
name: ${{matrix.launcher}} on ${{matrix.os}}
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 16.x
cache: 'yarn'
- name: Install dependencies
run: yarn install --frozen-lockfile --network-timeout=300000
- name: Launcher Info
run: |
yarn run testem launchers
- name: Run Production Test
timeout-minutes: 10
env:
TESTEM_CI_LAUNCHER: ${{ matrix.launcher }}
CI: true
run:
yarn test:production
floating-dependencies:
timeout-minutes: 10
needs: [lint, basic-tests]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 16.x
cache: 'yarn'
- name: Install dependencies w/o lockfile
run: yarn install --no-lockfile --non-interactive
- name: Basic Tests
run: yarn test
lts:
needs: [lint, basic-tests]
strategy:
fail-fast: false
matrix:
scenario: [ember-lts-4.4, ember-lts-3.28]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 16.x
cache: 'yarn'
- name: Install dependencies
run: yarn install
- name: Basic tests with ${{ matrix.scenario }}
timeout-minutes: 10
env:
CI: true
run: yarn test:try-one ${{ matrix.scenario }}
releases:
timeout-minutes: 10
needs: [lint, basic-tests]
if: |
github.event_name == 'pull_request' && (
github.base_ref == 'master' || github.base_ref == 'beta'
) || github.event_name == 'push' && (
endsWith(github.ref, '/master') || endsWith(github.ref, '/beta')
)
strategy:
fail-fast: false
matrix:
release: [ember-release, ember-beta]
include:
- release: ember-beta
continue-on-error: true
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 16.x
cache: 'yarn'
- name: Install dependencies
run: yarn install
- name: Basic tests with ${{ matrix.release }}
env:
CI: true
run: yarn test:try-one ${{ matrix.release }}
continue-on-error: ${{ matrix['continue-on-error'] == true }}
additional-scenarios:
timeout-minutes: 8
needs: [lint, basic-tests]
strategy:
matrix:
scenario:
[
with-native-fetch,
with-ember-fetch-no-jquery,
with-ember-fetch-and-jquery,
with-jquery,
]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 16.x
cache: 'yarn'
- name: Install dependencies
run: yarn install --frozen-lockfile --network-timeout=300000
- name: Basic tests with ${{ matrix.scenario }}
env:
CI: true
run: yarn test:try-one ${{ matrix.scenario }}
node-version-test:
name: Use Node.js ${{ matrix.node-version }}
timeout-minutes: 8
needs: [lint, basic-tests]
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [14.x, 18.x]
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
cache: 'yarn'
- name: Install dependencies w/o lockfile
run: yarn install --no-lockfile --non-interactive
- name: Basic Tests
run: yarn test
external-partners:
needs: [additional-scenarios, basic-tests, floating-dependencies, lint, lts, releases]
if: |
github.event_name == 'pull_request' && (
github.base_ref == 'master' || github.base_ref == 'beta'
) || github.event_name == 'push' && (
endsWith(github.ref, '/master') || endsWith(github.ref, '/beta')
)
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
partner:
[
# ember-data-relationship-tracker,
ember-m3,
ember-observer,
# ember-resource-metadata,
factory-guy,
# ilios-frontend,
model-fragments,
storefront,
travis-web,
]
include:
- partner: storefront
continue-on-error: true
- partner: factory-guy
continue-on-error: true
- partner: travis-web
continue-on-error: true
- partner: model-fragments
continue-on-error: true
- partner: ember-observer
continue-on-error: true
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 16.x
cache: 'yarn'
- name: Install dependencies
run: yarn install
- name: Generate package tarballs
run: node ./scripts/packages-for-commit.js
- name: Run Tests
timeout-minutes: 16
env:
CI: true
run: yarn test-external:${{ matrix.partner }}
continue-on-error: ${{ matrix['continue-on-error'] == true }}