tzellman/ember-fakerjs

View on GitHub
.github/workflows/ci.yml

Summary

Maintainability
Test Coverage
# This workflow will do a clean install of node dependencies, build the source code and run tests across different versions of node
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions

name: CI

on:
    push:
        branches: [master]
    pull_request:
        branches: [master]

env:
    CC_TEST_REPORTER_ID: 3c17d30a957d0b5f06d932c3dd8ce9354df2b8d7769710d8827e6261445839d8

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

jobs:
    test:
        name: "Tests"
        runs-on: ubuntu-latest

        steps:
            - uses: actions/checkout@v2
            - name: Install Node
              uses: actions/setup-node@v2
              with:
                  node-version: 12.x
                  cache: npm
            - name: Install Dependencies
              run: npm ci
            - name: Lint
              run: npm run lint
            - name: Run Tests
              run: npm run test:ember

    floating:
        name: "Floating Dependencies"
        runs-on: ubuntu-latest

        steps:
            - uses: actions/checkout@v2
            - uses: actions/setup-node@v2
              with:
                  node-version: 12.x
                  cache: npm
            - name: Install Dependencies
              run: npm install --no-shrinkwrap
            - name: Run Tests
              run: npm run test:ember

    try-scenarios:
        name: ${{ matrix.try-scenario }}
        runs-on: ubuntu-latest
        continue-on-error: ${{ matrix.experimental }}
        needs: "test"

        strategy:
            fail-fast: false
            matrix:
                try-scenario:
                    - ember-lts-3.24
                    - ember-lts-3.28
                    - ember-beta
                    - ember-classic
                    - ember-default-with-jquery
                    - embroider-safe
                    - embroider-optimized
                experimental: [false]
                coverage: [false]
                include:
                    - try-scenario: ember-canary
                      experimental: true
                      coverage: false
                    - try-scenario: ember-release
                      experimental: false
                      coverage: true

        steps:
            - uses: actions/checkout@v2
            - name: Install Node
              uses: actions/setup-node@v2
              with:
                  node-version: 12.x
                  cache: npm
            - name: Install Dependencies
              run: npm ci
            - name: Run Tests
              run: COVERAGE=${{ matrix.coverage }} ./node_modules/.bin/ember try:one ${{ matrix.try-scenario }}
            - name: Coverage Report
              if: ${{ matrix.coverage }}
              run: cat coverage/coverage-summary.json
            - name: Coverage Upload
              if: ${{ matrix.coverage && github.ref == 'refs/heads/master' }}
              run: |
                  curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
                  chmod +x ./cc-test-reporter
                  ./cc-test-reporter format-coverage -t lcov -o coverage/codeclimate.json coverage/lcov.info
                  ./cc-test-reporter upload-coverage