# This workflow is provided via the organization template repository # # https://github.com/nextcloud/.github # https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization # # SPDX-FileCopyrightText: 2023-2024 Nextcloud GmbH and Nextcloud contributors # SPDX-License-Identifier: MIT name: Node handlebars tests on: pull_request: permissions: contents: read concurrency: group: node-tests-handlebars-${{ 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@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2 id: changes continue-on-error: true with: filters: | src: - '.github/workflows/**' - '**/__tests__/**' - '**/__mocks__/**' - 'apps/*/src/**' - 'apps/*/appinfo/info.xml' - 'core/src/**' - 'package.json' - '**/package-lock.json' - 'tsconfig.json' - '**.js' - '**.ts' - '**.vue' handlebars: runs-on: ubuntu-latest needs: [changes] if: needs.changes.outputs.src != 'false' env: CYPRESS_INSTALL_BINARY: 0 PUPPETEER_SKIP_DOWNLOAD: true steps: - name: Checkout uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 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@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.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 run: npm ci - name: Run compile run: ./build/compile-handlebars-templates.sh summary: permissions: contents: none runs-on: ubuntu-latest-low needs: [changes, handlebars] if: always() name: test-summary steps: - name: Summary status run: if ${{ needs.changes.outputs.src != 'false' && needs.handlebars.result != 'success' }}; then exit 1; fi