fix(editorApi): allow to disable image lazy-loading #12938
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
| # 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: 2021-2024 Nextcloud GmbH and Nextcloud contributors | |
| # SPDX-License-Identifier: MIT | |
| name: Compile Command | |
| on: | |
| issue_comment: | |
| types: [created] | |
| permissions: | |
| contents: read | |
| jobs: | |
| init: | |
| runs-on: ubuntu-latest-low | |
| # On pull requests and if the comment starts with `/compile` | |
| if: github.event.issue.pull_request != '' && startsWith(github.event.comment.body, '/compile') | |
| outputs: | |
| git_path: ${{ steps.git-path.outputs.path }} | |
| arg1: ${{ steps.command.outputs.arg1 }} | |
| arg2: ${{ steps.command.outputs.arg2 }} | |
| head_ref: ${{ steps.comment-branch.outputs.head_ref }} | |
| base_ref: ${{ steps.comment-branch.outputs.base_ref }} | |
| steps: | |
| - name: Get repository from pull request comment | |
| uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 | |
| id: get-repository | |
| with: | |
| github-token: ${{secrets.GITHUB_TOKEN}} | |
| script: | | |
| const pull = await github.rest.pulls.get({ | |
| owner: context.repo.owner, | |
| repo: context.repo.repo, | |
| pull_number: context.issue.number | |
| }); | |
| const repositoryName = pull.data.head?.repo?.full_name | |
| console.log(repositoryName) | |
| return repositoryName | |
| - name: Disabled on forks | |
| if: ${{ fromJSON(steps.get-repository.outputs.result) != github.repository }} | |
| run: | | |
| echo 'Can not execute /compile on forks' | |
| exit 1 | |
| - name: Check actor permission | |
| uses: skjnldsv/check-actor-permission@69e92a3c4711150929bca9fcf34448c5bf5526e7 # v3.0 | |
| with: | |
| require: write | |
| - name: Add reaction on start | |
| uses: peter-evans/create-or-update-comment@e8674b075228eee787fea43ef493e45ece1004c9 # v5.0.0 | |
| with: | |
| token: ${{ secrets.COMMAND_BOT_PAT }} | |
| repository: ${{ github.event.repository.full_name }} | |
| comment-id: ${{ github.event.comment.id }} | |
| reactions: '+1' | |
| - name: Parse command | |
| uses: skjnldsv/parse-command-comment@5c955203c52424151e6d0e58fb9de8a9f6a605a1 # v3.1 | |
| id: command | |
| # Init path depending on which command is run | |
| - name: Init path | |
| id: git-path | |
| run: | | |
| if ${{ startsWith(steps.command.outputs.arg1, '/') }}; then | |
| echo "path=${{steps.command.outputs.arg1}}" >> $GITHUB_OUTPUT | |
| else | |
| echo "path=${{steps.command.outputs.arg2}}" >> $GITHUB_OUTPUT | |
| fi | |
| - name: Init branch | |
| uses: xt0rted/pull-request-comment-branch@e8b8daa837e8ea7331c0003c9c316a64c6d8b0b1 # v3.0.0 | |
| id: comment-branch | |
| - name: Add reaction on failure | |
| uses: peter-evans/create-or-update-comment@e8674b075228eee787fea43ef493e45ece1004c9 # v5.0.0 | |
| if: failure() | |
| with: | |
| token: ${{ secrets.COMMAND_BOT_PAT }} | |
| repository: ${{ github.event.repository.full_name }} | |
| comment-id: ${{ github.event.comment.id }} | |
| reactions: '-1' | |
| process: | |
| runs-on: ubuntu-latest | |
| needs: init | |
| steps: | |
| - name: Restore cached git repository | |
| uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 | |
| with: | |
| path: .git | |
| key: git-repo | |
| - name: Checkout ${{ needs.init.outputs.head_ref }} | |
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| with: | |
| persist-credentials: false | |
| token: ${{ secrets.COMMAND_BOT_PAT }} | |
| fetch-depth: 0 | |
| ref: ${{ needs.init.outputs.head_ref }} | |
| - name: Setup git | |
| run: | | |
| git config --local user.email 'nextcloud-command@users.noreply.github.com' | |
| git config --local user.name 'nextcloud-command' | |
| - name: Read package.json node and npm engines version | |
| uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3 | |
| id: package-engines-versions | |
| with: | |
| fallbackNode: '^24' | |
| fallbackNpm: '^11.3' | |
| - name: Set up node ${{ steps.package-engines-versions.outputs.nodeVersion }} | |
| uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 | |
| with: | |
| node-version: ${{ steps.package-engines-versions.outputs.nodeVersion }} | |
| cache: npm | |
| - name: Set up npm ${{ steps.package-engines-versions.outputs.npmVersion }} | |
| run: npm i -g 'npm@${{ steps.package-engines-versions.outputs.npmVersion }}' | |
| - name: Rebase to ${{ needs.init.outputs.base_ref }} | |
| if: ${{ contains(needs.init.outputs.arg1, 'rebase') }} | |
| env: | |
| BASE_REF: ${{ needs.init.outputs.base_ref }} | |
| run: | | |
| git fetch origin "${BASE_REF}:${BASE_REF}" | |
| # Start the rebase | |
| git rebase "origin/${BASE_REF}" || { | |
| # Handle rebase conflicts in a loop | |
| while [ -d .git/rebase-merge ] || [ -d .git/rebase-apply ]; do | |
| echo "Handling rebase conflict..." | |
| # Remove and checkout /dist and /js folders from the base branch | |
| if [ -d "dist" ]; then | |
| rm -rf dist | |
| git checkout "origin/${BASE_REF}" -- dist/ 2>/dev/null || echo "No dist folder in base branch" | |
| fi | |
| if [ -d "js" ]; then | |
| rm -rf js | |
| git checkout "origin/${BASE_REF}" -- js/ 2>/dev/null || echo "No js folder in base branch" | |
| fi | |
| # Stage all changes | |
| git add . | |
| # Check if there are any changes after resolving conflicts | |
| if git diff --cached --quiet; then | |
| echo "No changes after conflict resolution, skipping commit" | |
| git rebase --skip | |
| else | |
| echo "Changes found, continuing rebase without editing commit message" | |
| git -c core.editor=true rebase --continue | |
| fi | |
| # Break if rebase is complete | |
| if [ ! -d .git/rebase-merge ] && [ ! -d .git/rebase-apply ]; then | |
| break | |
| fi | |
| done | |
| } | |
| - name: Install dependencies & build | |
| env: | |
| CYPRESS_INSTALL_BINARY: 0 | |
| PUPPETEER_SKIP_DOWNLOAD: true | |
| run: | | |
| npm ci | |
| npm run build --if-present | |
| - name: Commit default | |
| if: ${{ !contains(needs.init.outputs.arg1, 'fixup') && !contains(needs.init.outputs.arg1, 'amend') }} | |
| env: | |
| GIT_PATH: ${{ needs.init.outputs.git_path }} | |
| run: | | |
| git add "${GITHUB_WORKSPACE}${GIT_PATH}" | |
| git commit --signoff -m 'chore(assets): Recompile assets' | |
| - name: Commit fixup | |
| if: ${{ contains(needs.init.outputs.arg1, 'fixup') }} | |
| env: | |
| GIT_PATH: ${{ needs.init.outputs.git_path }} | |
| run: | | |
| git add "${GITHUB_WORKSPACE}${GIT_PATH}" | |
| git commit --fixup=HEAD --signoff | |
| - name: Commit amend | |
| if: ${{ contains(needs.init.outputs.arg1, 'amend') }} | |
| env: | |
| GIT_PATH: ${{ needs.init.outputs.git_path }} | |
| run: | | |
| git add "${GITHUB_WORKSPACE}${GIT_PATH}" | |
| git commit --amend --no-edit --signoff | |
| # Remove any [skip ci] from the amended commit | |
| git commit --amend -m "$(git log -1 --format='%B' | sed '/\[skip ci\]/d')" | |
| - name: Push normally | |
| if: ${{ !contains(needs.init.outputs.arg1, 'rebase') && !contains(needs.init.outputs.arg1, 'amend') }} | |
| env: | |
| HEAD_REF: ${{ needs.init.outputs.head_ref }} | |
| BOT_TOKEN: ${{ secrets.COMMAND_BOT_PAT }} # zizmor: ignore[secrets-outside-env] | |
| run: | | |
| git remote set-url origin "https://x-access-token:${BOT_TOKEN}@github.com/${{ github.repository }}.git" | |
| git push origin "$HEAD_REF" | |
| - name: Force push | |
| if: ${{ contains(needs.init.outputs.arg1, 'rebase') || contains(needs.init.outputs.arg1, 'amend') }} | |
| env: | |
| HEAD_REF: ${{ needs.init.outputs.head_ref }} | |
| BOT_TOKEN: ${{ secrets.COMMAND_BOT_PAT }} # zizmor: ignore[secrets-outside-env] | |
| run: | | |
| git remote set-url origin "https://x-access-token:${BOT_TOKEN}@github.com/${{ github.repository }}.git" | |
| git push --force-with-lease origin "$HEAD_REF" | |
| - name: Add reaction on failure | |
| uses: peter-evans/create-or-update-comment@e8674b075228eee787fea43ef493e45ece1004c9 # v5.0.0 | |
| if: failure() | |
| with: | |
| token: ${{ secrets.COMMAND_BOT_PAT }} | |
| repository: ${{ github.event.repository.full_name }} | |
| comment-id: ${{ github.event.comment.id }} | |
| reactions: '-1' |