name: test on: [push, pull_request] jobs: setup: runs-on: ubuntu-latest steps: - name: checkout uses: actions/checkout@master - name: cache package-lock.json uses: actions/cache@v2 with: path: package-temp-dir key: lock-${{ github.sha }} - name: create package-lock.json run: npm i --package-lock-only - name: hack for singe file run: | if [ ! -d "package-temp-dir" ]; then mkdir package-temp-dir fi cp package-lock.json package-temp-dir - name: cache node_modules id: node_modules_cache_id uses: actions/cache@v2 with: path: node_modules key: node_modules-${{ hashFiles('**/package-temp-dir/package-lock.json') }} - name: install if: steps.node_modules_cache_id.outputs.cache-hit != 'true' run: npm ci compile: runs-on: ubuntu-latest steps: - name: checkout uses: actions/checkout@master - name: restore cache from package-lock.json uses: actions/cache@v2 with: path: package-temp-dir key: lock-${{ github.sha }} - name: restore cache from node_modules uses: actions/cache@v2 with: path: node_modules key: node_modules-${{ hashFiles('**/package-temp-dir/package-lock.json') }} - name: cache lib uses: actions/cache@v2 with: path: lib key: lib-${{ github.sha }} - name: cache es uses: actions/cache@v2 with: path: es key: es-${{ github.sha }} - name: compile run: npm run compile - name: check run: node ./tests/dekko/lib.test.js needs: setup dist: runs-on: ubuntu-latest steps: - name: checkout uses: actions/checkout@master - name: restore cache from package-lock.json uses: actions/cache@v2 with: path: package-temp-dir key: lock-${{ github.sha }} - name: restore cache from node_modules uses: actions/cache@v2 with: path: node_modules key: node_modules-${{ hashFiles('**/package-temp-dir/package-lock.json') }} - name: dist run: npm run dist env: NODE_OPTIONS: --max_old_space_size=4096 - name: check run: node ./tests/dekko/dist.test.js - name: test run: npm test env: LIB_DIR: dist needs: setup lint: runs-on: ubuntu-latest steps: - name: checkout uses: actions/checkout@master - name: restore cache from package-lock.json uses: actions/cache@v2 with: path: package-temp-dir key: lock-${{ github.sha }} - name: restore cache from node_modules uses: actions/cache@v2 with: path: node_modules key: node_modules-${{ hashFiles('**/package-temp-dir/package-lock.json') }} - name: lint run: npm run lint needs: setup node: runs-on: ubuntu-latest steps: - name: checkout uses: actions/checkout@master - name: restore cache from package-lock.json uses: actions/cache@v2 with: path: package-temp-dir key: lock-${{ github.sha }} - name: restore cache from node_modules uses: actions/cache@v2 with: path: node_modules key: node_modules-${{ hashFiles('**/package-temp-dir/package-lock.json') }} - name: test run: npm test needs: setup lib: runs-on: ubuntu-latest steps: - name: checkout uses: actions/checkout@master - name: restore cache from package-lock.json uses: actions/cache@v2 with: path: package-temp-dir key: lock-${{ github.sha }} - name: restore cache from node_modules uses: actions/cache@v2 with: path: node_modules key: node_modules-${{ hashFiles('**/package-temp-dir/package-lock.json') }} - name: restore cache from lib uses: actions/cache@v2 with: path: lib key: lib-${{ github.sha }} - name: test run: npm test env: LIB_DIR: lib needs: compile es: runs-on: ubuntu-latest steps: - name: checkout uses: actions/checkout@master - name: restore cache from package-lock.json uses: actions/cache@v2 with: path: package-temp-dir key: lock-${{ github.sha }} - name: restore cache from node_modules uses: actions/cache@v2 with: path: node_modules key: node_modules-${{ hashFiles('**/package-temp-dir/package-lock.json') }} - name: restore cache from es uses: actions/cache@v2 with: path: es key: es-${{ github.sha }} - name: test run: npm test env: LIB_DIR: es needs: compile