fix(files): Prevent corruption of files when moving from encrypted to unencrypted folders within the same object storage #84297
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors | |
| # SPDX-License-Identifier: MIT | |
| name: Psalm static code analysis | |
| on: | |
| pull_request: | |
| push: | |
| branches: | |
| - main | |
| - master | |
| - stable* | |
| paths: | |
| - '.github/workflows/static-code-analysis.yml' | |
| - '**.php' | |
| permissions: | |
| contents: read | |
| concurrency: | |
| group: static-code-analysis-${{ github.head_ref || github.run_id }} | |
| cancel-in-progress: true | |
| jobs: | |
| changes: | |
| runs-on: ubuntu-latest-low | |
| 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/**' | |
| - '3rdparty/**' | |
| - '**/appinfo/**' | |
| - '**/lib/**' | |
| - '**/templates/**' | |
| - 'vendor/**' | |
| - 'vendor-bin/**' | |
| - 'composer.json' | |
| - 'composer.lock' | |
| - 'psalm*.xml' | |
| - 'build/psalm-baseline*.xml' | |
| - '**.php' | |
| static-code-analysis: | |
| runs-on: ubuntu-latest | |
| needs: changes | |
| if: ${{ needs.changes.outputs.src != 'false' && github.event_name != 'push' && github.repository_owner != 'nextcloud-gmbh' }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 | |
| with: | |
| persist-credentials: false | |
| submodules: true | |
| - name: Set up php | |
| uses: shivammathur/setup-php@f3e473d116dcccaddc5834248c87452386958240 #v2.37.2 | |
| timeout-minutes: 5 | |
| with: | |
| php-version: '8.3' | |
| extensions: apcu,ctype,curl,dom,fileinfo,ftp,gd,imagick,intl,json,ldap,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip | |
| coverage: none | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Composer install | |
| run: composer i | |
| - name: Psalm | |
| run: composer run psalm -- --threads=1 --monochrome --no-progress --output-format=github --update-baseline | |
| - name: Show potential changes in Psalm baseline | |
| if: always() | |
| run: git diff --exit-code -- . ':!lib/composer' | |
| static-code-analysis-security: | |
| runs-on: ubuntu-latest | |
| needs: changes | |
| if: ${{ needs.changes.outputs.src != 'false' && github.repository_owner != 'nextcloud-gmbh' }} | |
| permissions: | |
| security-events: write | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 | |
| with: | |
| persist-credentials: false | |
| submodules: true | |
| - name: Set up php | |
| uses: shivammathur/setup-php@f3e473d116dcccaddc5834248c87452386958240 #v2.37.2 | |
| timeout-minutes: 5 | |
| with: | |
| php-version: '8.3' | |
| extensions: ctype,curl,dom,fileinfo,ftp,gd,imagick,intl,json,ldap,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip | |
| coverage: none | |
| - name: Composer install | |
| run: composer i | |
| - name: Psalm taint analysis | |
| run: composer run psalm:security -- --threads=1 --monochrome --no-progress --output-format=github --update-baseline --report=results.sarif | |
| - name: Show potential changes in Psalm baseline | |
| if: always() | |
| run: git diff --exit-code -- . ':!lib/composer' | |
| - name: Upload Security Analysis results to GitHub | |
| if: always() | |
| uses: github/codeql-action/upload-sarif@54f647b7e1bb85c95cddabcd46b0c578ec92bc1a # v3 | |
| with: | |
| sarif_file: results.sarif | |
| static-code-analysis-ocp: | |
| runs-on: ubuntu-latest | |
| needs: changes | |
| if: ${{ needs.changes.outputs.src != 'false' && github.event_name != 'push' && github.repository_owner != 'nextcloud-gmbh' }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 | |
| with: | |
| persist-credentials: false | |
| submodules: true | |
| - name: Set up php | |
| uses: shivammathur/setup-php@f3e473d116dcccaddc5834248c87452386958240 #v2.37.2 | |
| timeout-minutes: 5 | |
| with: | |
| php-version: '8.3' | |
| extensions: ctype,curl,dom,fileinfo,gd,imagick,intl,json,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip | |
| coverage: none | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Composer install | |
| run: composer i | |
| - name: Psalm | |
| run: composer run psalm:ocp -- --threads=1 --monochrome --no-progress --output-format=github --update-baseline | |
| - name: Show potential changes in Psalm baseline | |
| if: always() | |
| run: git diff --exit-code -- . ':!lib/composer' | |
| static-code-analysis-ncu: | |
| runs-on: ubuntu-latest | |
| needs: changes | |
| if: ${{ needs.changes.outputs.src != 'false' && github.event_name != 'push' && github.repository_owner != 'nextcloud-gmbh' }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 | |
| with: | |
| persist-credentials: false | |
| submodules: true | |
| - name: Set up php | |
| uses: shivammathur/setup-php@f3e473d116dcccaddc5834248c87452386958240 #v2.37.2 | |
| timeout-minutes: 5 | |
| with: | |
| php-version: '8.3' | |
| extensions: ctype,curl,dom,fileinfo,gd,imagick,intl,json,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip | |
| coverage: none | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Composer install | |
| run: composer i | |
| - name: Psalm | |
| run: composer run psalm:ncu -- --threads=1 --monochrome --no-progress --output-format=github | |
| static-code-analysis-strict: | |
| runs-on: ubuntu-latest | |
| needs: changes | |
| if: ${{ needs.changes.outputs.src != 'false' && github.event_name != 'push' && github.repository_owner != 'nextcloud-gmbh' }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 | |
| with: | |
| persist-credentials: false | |
| submodules: true | |
| - name: Set up php | |
| uses: shivammathur/setup-php@f3e473d116dcccaddc5834248c87452386958240 #v2.37.2 | |
| with: | |
| php-version: '8.3' | |
| extensions: ctype,curl,dom,fileinfo,gd,imagick,intl,json,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip | |
| coverage: none | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Composer install | |
| run: composer i | |
| - name: Psalm | |
| run: composer run psalm:strict -- --threads=1 --monochrome --no-progress --output-format=github | |
| summary: | |
| permissions: | |
| contents: none | |
| runs-on: ubuntu-latest-low | |
| needs: [changes, static-code-analysis, static-code-analysis-security, static-code-analysis-ocp, static-code-analysis-ncu, static-code-analysis-strict] | |
| if: always() | |
| name: static-code-analysis-summary | |
| steps: | |
| - name: Summary status | |
| run: | | |
| if ${{ needs.changes.outputs.src != 'false' && ( | |
| needs.static-code-analysis-security.result != 'success' || | |
| (github.event_name != 'push' && ( | |
| needs.static-code-analysis.result != 'success' || | |
| needs.static-code-analysis-ocp.result != 'success' || | |
| needs.static-code-analysis-ncu.result != 'success' || | |
| needs.static-code-analysis-strict.result != 'success' | |
| )) | |
| ) }}; then | |
| exit 1 | |
| fi |