aboutsummaryrefslogtreecommitdiffstats
path: root/apps/files_sharing/l10n/eu.js
stat options
Period:
Authors:

Commits per author per week (path 'apps/files_sharing/l10n/eu.js')

AuthorW51 2024W52 2024W01 2025W02 2025Total
Total00000
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162
name: Cypress

on: pull_request

concurrency:
  group: cypress-${{ github.head_ref || github.run_id }}
  cancel-in-progress: true

env:
  # Adjust APP_NAME if your repository name is different
  APP_NAME: ${{ github.event.repository.name }}
  # Server requires head_ref instead of base_ref, as we want to test the PR branch
  BRANCH: ${{ github.head_ref || github.ref_name }}

jobs:
  init:
    runs-on: ubuntu-latest
    outputs:
      nodeVersion: ${{ steps.versions.outputs.nodeVersion }}
      npmVersion: ${{ steps.versions.outputs.npmVersion }}

    env:
      PUPPETEER_SKIP_DOWNLOAD: true

    steps:
      - name: Checkout server
        uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
        with:
          # We need to checkout submodules for 3rdparty
          submodules: true

      - name: Check composer.json
        id: check_composer
        uses: andstor/file-existence-action@20b4d2e596410855db8f9ca21e96fbe18e12930b # v2
        with:
          files: "composer.json"

      - name: Install composer dependencies
        if: steps.check_composer.outputs.files_exists == 'true'
        run: composer install --no-dev

      - name: Read package.json node and npm engines version
        uses: skjnldsv/read-package-engines-version-actions@8205673bab74a63eb9b8093402fd9e0e018663a1 # v2.2
        id: versions
        with:
          fallbackNode: "^20"
          fallbackNpm: "^9"

      - name: Set up node ${{ steps.versions.outputs.nodeVersion }}
        uses: actions/setup-node@8f152de45cc393bb48ce5d89d36b731f54556e65 # v4.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 node dependencies & build app
        run: |
          npm ci
          TESTING=true npm run build --if-present

      - name: Show cypress version
        run: npm run cypress:version

      - name: Save context
        uses: buildjet/cache/save@e376f15c6ec6dc595375c78633174c7e5f92dc0e # v3
        with:
          key: cypress-context-${{ github.run_id }}
          path: ./

  cypress:
    runs-on: ubuntu-latest
    needs: init

    strategy:
      fail-fast: false
      matrix:
        # Run multiple copies of the current job in parallel
        # Please increase the number or runners as your tests suite grows (0 based index for e2e tests)
        containers: ["component", 0, 1, 2, 3, 4, 5]
        # Hack as strategy.job-total includes the component and GitHub does not allow math expressions
        # Always aling this number with the total of e2e runners (max. index + 1)
        total-containers: [6]

    name: runner ${{ matrix.containers }}

    steps:
      - name: Restore context
        uses: buildjet/cache/restore@e376f15c6ec6dc595375c78633174c7e5f92dc0e # v3
        with:
          fail-on-cache-miss: true
          key: cypress-context-${{ github.run_id }}
          path: ./

      - name: Set up node ${{ needs.init.outputs.nodeVersion }}
        uses: actions/setup-node@8f152de45cc393bb48ce5d89d36b731f54556e65 # v4.0.0
        with:
          node-version: ${{ needs.init.outputs.nodeVersion }}

      - name: Set up npm ${{ needs.init.outputs.npmVersion }}
        run: npm i -g npm@"${{ needs.init.outputs.npmVersion }}"

      - name: Run ${{ matrix.containers == 'component' && 'component' || 'E2E' }} cypress tests
        uses: cypress-io/github-action@ebe8b24c4428922d0f793a5c4c96853a633180e3 # v6.6.0
        with:
          component: ${{ matrix.containers == 'component' }}
          group: ${{ matrix.use-cypress-cloud && matrix.containers == 'component' && 'Run component' || matrix.use-cypress-cloud && 'Run E2E' || '' }}
          # cypress env
          ci-build-id: ${{ matrix.use-cypress-cloud && format('{0}-{1}', github.sha, github.run_number) || '' }}
          tag: ${{ matrix.use-cypress-cloud && github.event_name || '' }}
        env:
          # Needs to be prefixed with CYPRESS_
          CYPRESS_BRANCH: ${{ env.BRANCH }}
          # https://github.com/cypress-io/github-action/issues/124
          COMMIT_INFO_MESSAGE: ${{ github.event.pull_request.title }}
          # Needed for some specific code workarounds
          TESTING: true
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
          SPLIT: ${{ matrix.total-containers }}
          SPLIT_INDEX: ${{ matrix.containers == 'component' && 0 || matrix.containers }}

      - name: Upload snapshots
        uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 # v3.1.3
        if: always()
        with:
          name: snapshots_${{ matrix.containers }}
          path: cypress/snapshots

      - name: Extract NC logs
        if: failure() && matrix.containers != 'component'
        run: docker logs nextcloud-cypress-tests-${{ env.APP_NAME }} > nextcloud.log

      - name: Upload NC logs
        uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 # v3.1.3
        if: failure() && matrix.containers != 'component'
        with:
          name: nc_logs_${{ matrix.containers }}
          path: nextcloud.log

      - name: Create data dir archive
        if: failure() && matrix.containers != 'component'
        run: docker exec nextcloud-cypress-tests-server tar -cvjf - data > data.tar

      - name: Upload data dir archive
        uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 # v3.1.3
        if: failure() && matrix.containers != 'component'
        with:
          name: nc_data_${{ matrix.containers }}
          path: data.tar

  summary:
    runs-on: ubuntu-latest
    needs: [init, cypress]

    if: always()

    name: cypress-summary

    steps:
      - name: Summary status
        run: if ${{ needs.init.result != 'success' || ( needs.cypress.result != 'success' && needs.cypress.result != 'skipped' ) }}; then exit 1; fi