Skip to content

[main] Fix npm audit #43

[main] Fix npm audit

[main] Fix npm audit #43

# SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
#
# App-specific workflow, deliberately not named after an organization template
# (npm-test.yml et al) so the template sync in sync-workflow-templates.yml —
# which copies over any file matching a template name — cannot silently replace
# it. Runs the Vitest suite over the frontend helpers.
name: Frontend unit tests
on: pull_request
permissions:
contents: read
concurrency:
group: frontend-unit-tests-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
permissions:
contents: read
pull-requests: read
outputs:
src: ${{ steps.changes.outputs.src}}
steps:
- uses: dorny/paths-filter@7b450fff21473bca461d4b92ce414b9d0420d706 # v4.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- 'src/**'
- 'package.json'
- 'package-lock.json'
- '**.js'
- '**.vue'
test:
runs-on: ubuntu-latest
needs: changes
if: needs.changes.outputs.src != 'false'
name: Vitest
steps:
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- name: Read package.json node and npm engines version
uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3
id: versions
with:
fallbackNode: '^24'
fallbackNpm: '^11.3'
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: ${{ steps.versions.outputs.nodeVersion }}
- name: Set up npm ${{ steps.versions.outputs.npmVersion }}
run: npm i -g 'npm@${{ steps.versions.outputs.npmVersion }}'
- name: Install dependencies
env:
CYPRESS_INSTALL_BINARY: 0
PUPPETEER_SKIP_DOWNLOAD: true
run: npm ci
- name: Run tests
run: npm run test
summary:
permissions:
contents: none
runs-on: ubuntu-latest-low
needs: [changes, test]
if: always()
name: frontend-unit-tests
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.test.result != 'success' }}; then exit 1; fi