version: 2.1

###########################################
# Constants
###########################################
workspace_root: &workspace_root
    ~/repo


###########################################
# Executors Definitions
###########################################
executors:
    build_executor:
        working_directory: *workspace_root
        docker:
            - image: node:10-buster


###########################################
# Commands Definitions
###########################################
commands:


###########################################
# Job Definitions
###########################################
jobs:
   build_and_test_for_every_change:
        executor: build_executor
        steps:
            - checkout
            - run: yarn install
            - run: make ci -j 8


###########################################
# Workflow Conditions
###########################################
ignore_branches_for_bors: &ignore_branches_for_bors
    # These branches are used by bors-ng
    branches:
        ignore:
            - staging.tmp
            - trying.tmp


###########################################
# Workflow Definitions
###########################################
workflows:
    version: 2
    build_and_test:
        jobs:
            - build_and_test_for_every_change:
                filters:
                    <<: *ignore_branches_for_bors

version: 2.1

###########################################
# Constants
###########################################
workspace_root: &workspace_root
    ~/repo


###########################################
# Executors Definitions
###########################################
executors:
    nodejs_10_executor:
        working_directory: *workspace_root
        docker:
            - image: node:10-buster

    latest_nodejs_executor:
        working_directory: *workspace_root
        docker:
            - image: node:latest


###########################################
# Commands Definitions
###########################################
commands:


###########################################
# Job Definitions
###########################################
jobs:
   minimum_build_and_test_for_every_change:
        executor: nodejs_10_executor
        steps:
            - checkout
            - run: yarn install
            - run: make ci -j 8

   latest_build_and_test_for_every_change:
        executor: latest_nodejs_executor
        steps:
            - checkout
            - run: yarn install
            - run: make ci -j 8


###########################################
# Workflow Conditions
###########################################
ignore_branches_for_bors: &ignore_branches_for_bors
    # These branches are used by bors-ng
    branches:
        ignore:
            - staging.tmp
            - trying.tmp


###########################################
# Workflow Definitions
###########################################
workflows:
    version: 2
    build_and_test:
        jobs:
            - minimum_build_and_test_for_every_change:
                filters:
                    <<: *ignore_branches_for_bors
            - latest_build_and_test_for_every_change:
                filters:
                    <<: *ignore_branches_for_bors

Enable CI build for the latest Node.js
Enable CI build for the latest Node.js
