ember-cli/ember-try

View on GitHub
.github/workflows/ci.yml

Summary

Maintainability
Test Coverage
name: CI

on:
  push:
    branches:
      - main
      - master
      - 'v*'
  pull_request: {}

concurrency:
  group: ci-${{ github.head_ref || github.ref }}
  cancel-in-progress: true

jobs:
  lint:
    name: Lint
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-node@v3
        with:
          node-version: 18

      - run: yarn install
      - run: yarn lint
  test:
    name: "Tests"
    runs-on: ubuntu-latest
    timeout-minutes: 10

    steps:
      - uses: actions/checkout@v3
      - name: Install Node
        uses: actions/setup-node@v3
        with:
          node-version: 18
          cache: yarn
      - name: Install Dependencies
        run: yarn install --frozen-lockfile
      - name: Run Tests
        run: yarn node-test-with-coverage

  floating:
    name: "Floating Dependencies"
    runs-on: ubuntu-latest
    timeout-minutes: 10

    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-node@v3
        with:
          node-version: 18
          cache: yarn
      - name: Install Dependencies
        run: yarn install --no-lockfile
      - name: Run Tests
        run: yarn node-test

  all-commands-smoke-tests:
    name: Tests (commands smoke test)
    runs-on: ubuntu-latest
    timeout-minutes: 20

    needs:
      - lint
      - test
      - floating

    strategy:
      fail-fast: false
      matrix:
        command:
          # try:each
          - ./node_modules/.bin/ember try:each

          # skip-cleanup option
          - ./node_modules/.bin/ember try:each --skip-cleanup

          # config-path option
          - ./node_modules/.bin/ember try:each --config-path='../test/fixtures/dummy-ember-try-config.js'

          # both ember-try options
          - ./node_modules/.bin/ember try:each --config-path='../test/fixtures/dummy-ember-try-config.js' --skip-cleanup true

          # try:ember
          - ./node_modules/.bin/ember try:ember '> 4.10.0 < 5.2.0'
          - ./node_modules/.bin/ember try:ember '4.9.0' --config-path='../test/fixtures/dummy-ember-try-config.js'
          - ./node_modules/.bin/ember try:ember '4.8.3' --skip-cleanup=true

          # try:config
          - ./node_modules/.bin/ember try:config
          - ./node_modules/.bin/ember try:config --config-path='../test/fixtures/dummy-ember-try-config.js'

          # try:one <scenario>
          - ./node_modules/.bin/ember try:one default

          # custom command
          - ./node_modules/.bin/ember try:one default --- ember help

          # skip-cleanup option
          - ./node_modules/.bin/ember try:one default --skip-cleanup

          # config-path option
          - ./node_modules/.bin/ember try:one test1 --config-path='../test/fixtures/dummy-ember-try-config.js'

          # both ember-try options
          - ./node_modules/.bin/ember try:one test1 --config-path='../test/fixtures/dummy-ember-try-config.js' --skip-cleanup true

          # custom command with options to command
          - ./node_modules/.bin/ember try:one default --- ember help --silent

          # custom command mixed with ember try's own option
          - ./node_modules/.bin/ember try:one default --skip-cleanup --- ember help --silent

          # try:reset
          - ./node_modules/.bin/ember try:reset

          # Environment variables availability
          - FOO="5" ./node_modules/.bin/ember try:one default --- ./fail-if-no-foo.sh

          - ./node_modules/.bin/ember try:one default --- FOO=5 ./fail-if-no-foo.sh

          # Custom, compound commands
          - ./node_modules/.bin/ember try:one default --- 'echo 1 && echo 2'

          # Environment variables from config
          - ./node_modules/.bin/ember try:each --config-path='../test/fixtures/dummy-ember-try-config-different-env-vars.js'

          # fs-extra versions 7.x and above caused a regresion
          - ./node_modules/.bin/ember try:each --config-path='../test/fixtures/dummy-ember-try-config-fs-extra-scenarios.js'

    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-node@v3
        with:
          node-version: 18

      - name: install deps
        run: yarn install
      - name: install smoke-test-app deps
        # using `npm` to install in the smoke-test-app so that `file:` will be treated
        # as a symlink (npm handles `file:../` as symlink, and `yarn` treats it
        # as "copy into this directory")
        run: npm install
        working-directory: smoke-test-app
      - run: ${{ matrix.command }}
        working-directory: smoke-test-app

  npm-smoke-tests:
    strategy:
      fail-fast: false
      matrix:
        node: [18, 20, 21]

    name: Smoke Tests (Node v${{ matrix.node }} with npm)
    runs-on: ubuntu-latest
    timeout-minutes: 20

    needs:
      - lint
      - test

    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-node@v3
        with:
          node-version: ${{ matrix.node }}

      - name: install deps
        run: yarn install
      - name: install smoke-test-app deps
        run: npm install
        working-directory: smoke-test-app
      - run:  ./node_modules/.bin/ember try:one test2 --config-path='../test/fixtures/dummy-ember-try-config-with-npm-scenarios.js'
        working-directory: smoke-test-app

  yarn-smoke-tests:
    strategy:
      fail-fast: false
      matrix:
        node: [18, 20, 21]

    name: Smoke Tests (Node v${{ matrix.node }} with yarn)
    runs-on: ubuntu-latest
    timeout-minutes: 20

    needs:
      - lint
      - test

    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-node@v3
        with:
          node-version: ${{ matrix.node }}

      - name: install deps
        run: yarn install
      - name: install smoke-test-app deps
        run: yarn install
        working-directory: smoke-test-app
      - run:  ./node_modules/.bin/ember try:one test2 --config-path='../test/fixtures/dummy-ember-try-config-with-yarn-scenarios.js'
        working-directory: smoke-test-app

  windows-smoke-tests:
    name: Smoke Tests (Windows)
    runs-on: windows-latest
    timeout-minutes: 20

    needs:
      - lint
      - test

    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-node@v3
        with:
          node-version: 18

      - name: install deps
        run: yarn install
      - name: install smoke-test-app deps
        run: npm install
        working-directory: smoke-test-app
      - run:  ./node_modules/.bin/ember try:one test2 --config-path='../test/fixtures/dummy-ember-try-config-with-npm-scenarios.js'
        working-directory: smoke-test-app