name: CI on: [push, pull_request] jobs: prepare-yarn-cache: name: Prepare Cache runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v2 - name: Use Node.js latest uses: actions/setup-node@v2-beta - name: Get yarn cache directory path id: yarn-cache-dir-path run: echo "::set-output name=dir::$(yarn config get cacheFolder)" - uses: actions/cache@v2 id: yarn-cache with: path: ${{ steps.yarn-cache-dir-path.outputs.dir }} key: ${{ runner.os }}-yarn-${{ hashFiles('yarn.lock') }} restore-keys: | ${{ runner.os }}-yarn- - name: Update Yarn cache if: steps.yarn-cache.outputs.cache-hit != 'true' env: YARN_ENABLE_SCRIPTS: false # disable post-install scripts YARN_NODE_LINKER: pnp # use pnp linker for better performance: it meant to update yarn cache only run: | yarn install --immutable test-coverage: name: Test on Node.js Latest needs: prepare-yarn-cache runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v2 - name: Use Node.js latest uses: actions/setup-node@v2-beta - name: Get yarn cache directory path id: yarn-cache-dir-path run: echo "::set-output name=dir::$(yarn config get cacheFolder)" - uses: actions/cache@v2 with: path: ${{ steps.yarn-cache-dir-path.outputs.dir }} key: ${{ runner.os }}-yarn-${{ hashFiles('yarn.lock') }} - name: Generate coverage report run: | make -j test-ci-coverage - name: Upload coverage report uses: codecov/codecov-action@v1 with: token: ${{ secrets.CODECOV_TOKEN }} legacy-node-version-test: name: Test on Node.js needs: prepare-yarn-cache runs-on: ubuntu-latest strategy: matrix: node-version: [6.x, 8.x] steps: - name: Checkout code uses: actions/checkout@v2 - name: Use Node.js latest uses: actions/setup-node@v2-beta # Build Babel on latest node versions - name: Get yarn cache directory path id: yarn-cache-dir-path run: echo "::set-output name=dir::$(yarn config get cacheFolder)" - uses: actions/cache@v2 with: path: ${{ steps.yarn-cache-dir-path.outputs.dir }} key: ${{ runner.os }}-yarn-${{ hashFiles('yarn.lock') }} - name: Build run: | BABEL_ENV=test-legacy make -j bootstrap - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v2-beta with: node-version: ${{ matrix.node-version }} - name: Test on node.js ${{ matrix.node-version }} # Hack: --color has supports-color@5 returned true for GitHub CI # Remove once `chalk` is bumped to 4.0. run: | BABEL_ENV=test node ./node_modules/.bin/jest --ci --color