diff --git a/.github/workflows/reuse-compliance.yml b/.github/workflows/reuse-compliance.yml index 3d81a8c4418..d39cf386d4f 100644 --- a/.github/workflows/reuse-compliance.yml +++ b/.github/workflows/reuse-compliance.yml @@ -16,6 +16,6 @@ jobs: name: Compliance Check runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Execute REUSE Compliance Check uses: fsfe/reuse-action@v6 diff --git a/.github/workflows/security-audit.yml b/.github/workflows/security-audit.yml index 8e67dab4818..74085acb18c 100644 --- a/.github/workflows/security-audit.yml +++ b/.github/workflows/security-audit.yml @@ -18,7 +18,7 @@ jobs: steps: - name: Checkout '${{ matrix.branch }}' branch - uses: actions/checkout@v4 + uses: actions/checkout@v5 with: ref: ${{ matrix.branch }} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 00000000000..f03047a16d7 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,36 @@ +name: Tests + +on: + push: + branches: + - main + pull_request: + branches: + - main + +permissions: + contents: read + +jobs: + test: + name: Unit and Integration + strategy: + fail-fast: false # Do not stop other jobs if one fails + matrix: + version: [20, 22, 24] + os: [ubuntu-24.04, windows-2025, macos-15] + runs-on: ${{ matrix.os }} + steps: + + - uses: actions/checkout@v5 + + - name: Setup Node.js + uses: actions/setup-node@v6 + with: + node-version: ${{ matrix.version }} + + - name: Install dependencies + run: npm ci + + - name: Run unit tests + run: npm run unit diff --git a/package.json b/package.json index c770b1f7139..8a986c81b9a 100644 --- a/package.json +++ b/package.json @@ -25,6 +25,7 @@ "scripts": { "test": "npm run lint && npm run depcheck && npm run coverage && npm run jsdoc-generate && npm run schema-generate && npm run generate-cli-doc", "lint": "eslint ./ && npm run lint --workspaces", + "unit": "npm run unit --workspaces", "coverage": "npm run coverage --workspaces", "jsdoc": "npm run jsdoc-generate && open-cli site/api/index.html", "jsdoc-generate": "node ./scripts/isWorkspace.js && npm run jsdoc-generate-workspace || npm run jsdoc-generate-local",