diff --git a/.github/workflows/lint-and-syntax-check.yml b/.github/workflows/lint-and-syntax-check.yml new file mode 100644 index 00000000..43532fef --- /dev/null +++ b/.github/workflows/lint-and-syntax-check.yml @@ -0,0 +1,55 @@ +name: Lint and Syntax Check + +on: + push: + branches: + # Only run on branch push, not tag push + - '**' + pull_request: + +jobs: + lint: + # Run for external PRs, but not on our own internal PRs as they'll be run by the push to the branch. + if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != 'DoctorMcKay/node-steam-user' + + uses: DoctorMcKay/github-workflows/.github/workflows/eslint.yml@master + with: + node-version: 14.x + + syntax-check: + # Run for external PRs, but not on our own internal PRs as they'll be run by the push to the branch. + if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != 'DoctorMcKay/node-steam-user' + runs-on: ubuntu-latest + + strategy: + matrix: + node-version: [ 14.x, 16.x, 18.x, 20.x ] + + steps: + - uses: actions/checkout@v3 + with: + fetch-depth: 1 + + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v3 + with: + node-version: ${{ matrix.node-version }} + + - name: Cache dependencies + uses: actions/cache@v3 + with: + path: node_modules + key: ${{ runner.os }}-node_modules + + - name: npm install + run: npm install + + - name: Syntax check + run: node index.js + + publish: + needs: [ lint, syntax-check ] + if: success() && github.event.ref == 'refs/heads/master' && contains(github.event.head_commit.message, '#npm-publish') + uses: DoctorMcKay/github-workflows/.github/workflows/npm-publish.yml@master + secrets: + npm-access-token: ${{ secrets.NPM_ACCESS_TOKEN }}