From 6bdf197b120dddf65ac169f028229722216a657b Mon Sep 17 00:00:00 2001 From: Ed Preston Date: Thu, 28 Sep 2023 07:20:38 +1000 Subject: [PATCH] GitHub CI Updates (#523) * Create PULL_REQUEST_TEMPLATE.md Add standard PR template, linking to this repo. * Update ci.yml Drop unsupported node 16 from CI build matrix. * Update ci.yml Add sensible timeouts * Update ci.yml Add concurrency (early exit) and permissions settings * Update ci.yml optimise "clean install" command, for speed and log clarity. * Update ci.yml upgrade checkout action to v4 * Update ci.yml allow repository owners to manually re-run CI --- .github/PULL_REQUEST_TEMPLATE.md | 3 +++ .github/workflows/ci.yml | 38 +++++++++++++++++++++++++------- 2 files changed, 33 insertions(+), 8 deletions(-) create mode 100644 .github/PULL_REQUEST_TEMPLATE.md diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000000..fd163b9a26 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,3 @@ +Fixes # + +I confirm I have read the [contributing guidelines](https://github.com/playcanvas/developer.playcanvas.com/blob/master/.github/CONTRIBUTING.md) and signed the [Contributor License Agreement](https://docs.google.com/a/playcanvas.com/forms/d/1Ih69zQfJG-QDLIEpHr6CsaAs6fPORNOVnMv5nuo0cjk/viewform). diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 97504f4498..1a8c681001 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,68 +1,90 @@ name: CI on: + workflow_dispatch: push: branches: [ dev ] pull_request: branches: [ dev ] +concurrency: + group: ci-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + +permissions: + contents: read + jobs: build: name: Build runs-on: ubuntu-latest + timeout-minutes: 10 strategy: matrix: - node-version: [16.x, 18.x, 20.x] + node-version: [18.x, 20.x] steps: - name: Checkout repo - uses: actions/checkout@v3 + uses: actions/checkout@v4 + - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v3 with: node-version: ${{ matrix.node-version }} cache: 'npm' + - name: Install dependencies - run: npm ci + run: npm clean-install --progress=false --no-fund + - name: Build Site run: npm run build lint: name: Lint runs-on: ubuntu-latest + timeout-minutes: 10 strategy: matrix: - node-version: [16.x, 18.x, 20.x] + node-version: [18.x, 20.x] steps: - name: Checkout repo - uses: actions/checkout@v3 + uses: actions/checkout@v4 + - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v3 with: node-version: ${{ matrix.node-version }} cache: 'npm' + - name: Install dependencies - run: npm ci + run: npm clean-install --progress=false --no-fund + - name: Lint JavaScript run: npm run lint lint-html: name: Lint HTML runs-on: ubuntu-latest + timeout-minutes: 10 + steps: - name: Checkout repo - uses: actions/checkout@v3 + uses: actions/checkout@v4 + - name: Setup Node.js 18.x uses: actions/setup-node@v3 with: node-version: 18.x cache: 'npm' + - name: Install dependencies - run: npm ci + run: npm clean-install --progress=false --no-fund + - name: Build run: npm run build + - name: Lint HTML run: npm run lint:html