Spaces:
Paused
Paused
| on: [push, pull_request] | |
| name: Build, Test and maybe Publish | |
| jobs: | |
| test: | |
| name: Build & Test | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| node-version: [12.x, 14.x] | |
| steps: | |
| - uses: actions/checkout@v2 | |
| - name: Use Node.js ${{ matrix.node-version }} | |
| uses: actions/setup-node@v1 | |
| with: | |
| node-version: ${{ matrix.node-version }} | |
| - name: Cache node_modules | |
| id: cache-modules | |
| uses: actions/cache@v1 | |
| with: | |
| path: node_modules | |
| key: ${{ matrix.node-version }}-${{ runner.OS }}-build-${{ hashFiles('package.json') }} | |
| - name: Build | |
| if: steps.cache-modules.outputs.cache-hit != 'true' | |
| run: npm install | |
| - name: Test | |
| run: npm_config_yes=true npx best-test@latest | |
| publish: | |
| name: Publish | |
| needs: test | |
| runs-on: ubuntu-latest | |
| if: github.event_name == 'push' && ( github.ref == 'refs/heads/master' || github.ref == 'refs/heads/main' ) | |
| steps: | |
| - uses: actions/checkout@v2 | |
| - name: Cache node_modules | |
| id: cache-modules | |
| uses: actions/cache@v1 | |
| with: | |
| path: node_modules | |
| key: 12.x-${{ runner.OS }}-build-${{ hashFiles('package.json') }} | |
| - name: Build | |
| if: steps.cache-modules.outputs.cache-hit != 'true' | |
| run: npm install | |
| - name: Test | |
| run: npm_config_yes=true npx best-test@latest | |
| - name: Publish | |
| uses: mikeal/merge-release@master | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| NPM_AUTH_TOKEN: ${{ secrets.NPM_AUTH_TOKEN }} | |