Skip to content

CI workflow refactor #52

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 18 commits into from
Jul 24, 2025
Merged
Changes from 1 commit
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
aee8b6b
build(ci): add lint job to CI workflow
mertssmnoglu May 17, 2025
72cf486
build(ci): update coverage job to include permissions and use specifi…
mertssmnoglu May 17, 2025
14e2be0
build(ci): add iojs CI workflow to cover iojs tests
mertssmnoglu May 18, 2025
423ade6
build(ci): remove unnecessary 'npm install' step from iojs CI workflow
mertssmnoglu May 18, 2025
7ff64c3
build(ci): enhance CI workflow with concurrency and update Node.js ve…
mertssmnoglu May 18, 2025
e05092a
build(ci): update download-artifact action to version 4.3.0 for colle…
mertssmnoglu May 20, 2025
75d8337
build(ci): add names to test and coverage jobs for clarity
mertssmnoglu May 20, 2025
c912f90
build(ci): disable credential persistence for checkout actions
mertssmnoglu May 20, 2025
c47e724
Delete .github/workflows/iojs.yml
mertssmnoglu May 24, 2025
9620f6a
Merge branch 'master' into mertssmnoglu-new-ci
UlisesGascon Jun 5, 2025
e724829
fix(ci): redundant 'permissions' field
mertssmnoglu Jun 6, 2025
866cfe7
style(ci): format ci.yml
mertssmnoglu Jun 6, 2025
0568f26
fix(ci): avoid coverage artifact conflicts and enable merging of mult…
mertssmnoglu Jun 6, 2025
5306ea7
fix(ci): remove multiple artifact merge step
mertssmnoglu Jun 6, 2025
37b35a3
fix(ci): add 'Merge coverage reports' step
mertssmnoglu Jun 21, 2025
b79cf04
feat(ci): enable manual triggering of workflows with workflow_dispatch
mertssmnoglu Jun 21, 2025
521e19f
fix(ci): update coverage report paths to use node version instead of …
mertssmnoglu Jul 12, 2025
9b581ed
fix(ci): remove pull request types
mertssmnoglu Jul 12, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
build(ci): enhance CI workflow with concurrency and update Node.js ve…
…rsions

- update trigger on
- concurrency
- permissions
- pinned action versions

Signed-off-by: Mert Şişmanoğlu <mertssmnoglu@gmail.com>
  • Loading branch information
mertssmnoglu committed May 18, 2025
commit 7ff64c3269a0a956870cb18d32d2efca2e461808
112 changes: 83 additions & 29 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,29 @@
name: ci

on:
- pull_request
- push
push:
branches:
- master
paths-ignore:
- '*.md'
pull_request:
types:
- opened
- edited # in case of base branch change
- synchronize
branches:
- "**"
paths-ignore:
- '*.md'

# Cancel in progress workflows
# in the scenario where we already had a run going for that PR/branch/tag but then triggered a new run
concurrency:
group: "${{ github.workflow }} ✨ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}"
cancel-in-progress: true

permissions:
contents: read

jobs:
lint:
Expand All @@ -22,8 +43,9 @@ jobs:
run: node --run lint # Use `node --run` to run the script in package.json

test:
runs-on: ubuntu-20.04
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
name:
- Node.js 0.8
Expand All @@ -47,6 +69,12 @@ jobs:
- Node.js 16.x
- Node.js 17.x
- Node.js 18.x
- Node.js 19.x
- Node.js 20.x
- Node.js 21.x
- Node.js 22.x
- Node.js 23.x
- Node.js 24.x

include:
- name: Node.js 0.8
Expand Down Expand Up @@ -75,60 +103,81 @@ jobs:
npm-i: mocha@3.5.3 nyc@10.3.2 supertest@2.0.0

- name: Node.js 4.x
node-version: "4.9"
node-version: "4"
npm-i: mocha@5.2.0 nyc@11.9.0 supertest@3.4.2

- name: Node.js 5.x
node-version: "5.12"
node-version: "5"
npm-i: mocha@5.2.0 nyc@11.9.0 supertest@3.4.2

- name: Node.js 6.x
node-version: "6.16"
node-version: "6"
npm-i: mocha@6.2.3 nyc@14.1.1 supertest@6.1.6

- name: Node.js 7.x
node-version: "7.10"
node-version: "7"
npm-i: mocha@6.2.3 nyc@14.1.1 supertest@6.1.6

- name: Node.js 8.x
node-version: "8.16"
npm-i: mocha@7.2.0
node-version: "8"
npm-i: mocha@7.2.0 nyc@14.1.1 supertest@6.1.6

- name: Node.js 9.x
node-version: "9.11"
npm-i: mocha@7.2.0
node-version: "9"
npm-i: mocha@7.2.0 nyc@14.1.1 supertest@6.1.6

- name: Node.js 10.x
node-version: "10.24"
npm-i: mocha@8.4.0
node-version: "10"
npm-i: mocha@8.4.0 supertest@6.1.6

- name: Node.js 11.x
node-version: "11.15"
npm-i: mocha@8.4.0
node-version: "11"
npm-i: mocha@8.4.0 supertest@6.1.6

- name: Node.js 12.x
node-version: "12.22"
node-version: "12"
npm-i: "supertest@6.1.6"

- name: Node.js 13.x
node-version: "13.14"
node-version: "13"
npm-i: "supertest@6.1.6"

- name: Node.js 13.x
node-version: "14.21"
- name: Node.js 14.x
node-version: "14"

- name: Node.js 15.x
node-version: "15.14"
node-version: "15"
npm-i: "supertest@6.1.6"

- name: Node.js 16.x
node-version: "16.19"
node-version: "16"

- name: Node.js 17.x
node-version: "17.9"
node-version: "17"

- name: Node.js 18.x
node-version: "18.13"
node-version: "18"

- name: Node.js 19.x
node-version: "19"

- name: Node.js 20.x
node-version: "20"

- name: Node.js 21.x
node-version: "21"

- name: Node.js 22.x
node-version: "22"

- name: Node.js 23.x
node-version: "23"

- name: Node.js 24.x
node-version: "24"

steps:
- uses: actions/checkout@v3
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2

- name: Install Node.js ${{ matrix.node-version }}
shell: bash -eo pipefail -l {0}
Expand All @@ -143,7 +192,12 @@ jobs:
dirname "$(nvm which ${{ matrix.node-version }})" >> "$GITHUB_PATH"

- name: Configure npm
run: npm config set shrinkwrap false
run: |
if [[ "$(npm config get package-lock)" == "true" ]]; then
npm config set package-lock false
else
npm config set shrinkwrap false
fi

- name: Remove npm module(s) ${{ matrix.npm-rm }}
run: npm rm --silent --save-dev ${{ matrix.npm-rm }}
Expand All @@ -157,8 +211,8 @@ jobs:
shell: bash
run: |
# eslint for linting
# - remove on Node.js < 12
if [[ "$(cut -d. -f1 <<< "${{ matrix.node-version }}")" -lt 12 ]]; then
# - remove on Node.js < 10
if [[ "$(cut -d. -f1 <<< "${{ matrix.node-version }}")" -lt 10 ]]; then
node -pe 'Object.keys(require("./package").devDependencies).join("\n")' | \
grep -E '^eslint(-|$)' | \
sort -r | \
Expand All @@ -175,7 +229,7 @@ jobs:
echo "node@$(node -v)"
echo "npm@$(npm -v)"
npm -s ls ||:
(npm -s ls --depth=0 ||:) | awk -F'[ @]' 'NR>1 && $2 { print $2 "=" $3 }' >> "$GITHUB_OUTPUT"
(npm -s ls --depth=0 ||:) | awk -F'[ @]' 'NR>1 && $2 { print "::set-output name=" $2 "::" $3 }'

- name: Run tests
shell: bash
Expand All @@ -197,7 +251,7 @@ jobs:
fi

- name: Upload code coverage
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
if: steps.list_env.outputs.nyc != ''
with:
name: coverage
Expand Down
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy