summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLouis <louis@chmn.me>2024-02-05 14:53:29 +0100
committerGitHub <noreply@github.com>2024-02-05 14:53:29 +0100
commit2cb2ef41cd7b6a21cf56c05c1e140dd531220fdb (patch)
treeb57a7a71eacc81ca753caee36dd6a52f7bd50041
parent9783246b0e13562e29f2ab5d368ed8de05e68bc6 (diff)
parent1a5bd5719efe55e96237f06357126ef06f73866d (diff)
Merge pull request #2315 from nextcloud/feat/workflow-auto-update-command-compile.yml
Updating command-compile.yml workflow from template
-rw-r--r--.github/workflows/command-compile.yml71
1 files changed, 47 insertions, 24 deletions
diff --git a/.github/workflows/command-compile.yml b/.github/workflows/command-compile.yml
index a1255cff..d70e0312 100644
--- a/.github/workflows/command-compile.yml
+++ b/.github/workflows/command-compile.yml
@@ -15,15 +15,16 @@ jobs:
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: Check actor permission
- uses: skjnldsv/check-actor-permission@e591dbfe838300c007028e1219ca82cc26e8d7c5 # v2
+ uses: skjnldsv/check-actor-permission@69e92a3c4711150929bca9fcf34448c5bf5526e7 # v2
with:
require: write
- name: Add reaction on start
- uses: peter-evans/create-or-update-comment@ca08ebd5dc95aa0cd97021e9708fcd6b87138c9b # v3.0.1
+ uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v4.0.0
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
repository: ${{ github.event.repository.full_name }}
@@ -31,7 +32,7 @@ jobs:
reactions: "+1"
- name: Parse command
- uses: skjnldsv/parse-command-comment@7cef1df370a99dfd5bf896d50121390c96785db8 # v2
+ uses: skjnldsv/parse-command-comment@d8c0034c481b791dd6348fcacd9c510dc3a4cb4f # v2
id: command
# Init path depending on which command is run
@@ -39,9 +40,9 @@ jobs:
id: git-path
run: |
if ${{ startsWith(steps.command.outputs.arg1, '/') }}; then
- echo "path=${{ github.workspace }}${{steps.command.outputs.arg1}}" >> $GITHUB_OUTPUT
+ echo "path=${{steps.command.outputs.arg1}}" >> $GITHUB_OUTPUT
else
- echo "path=${{ github.workspace }}${{steps.command.outputs.arg2}}" >> $GITHUB_OUTPUT
+ echo "path=${{steps.command.outputs.arg2}}" >> $GITHUB_OUTPUT
fi
- name: Init branch
@@ -53,8 +54,14 @@ jobs:
needs: init
steps:
+ - name: Restore cached git repository
+ uses: buildjet/cache@e376f15c6ec6dc595375c78633174c7e5f92dc0e # v3
+ with:
+ path: .git
+ key: git-repo
+
- name: Checkout ${{ needs.init.outputs.head_ref }}
- uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2
+ uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
fetch-depth: 0
@@ -66,49 +73,65 @@ jobs:
git config --local user.name "nextcloud-command"
- name: Read package.json node and npm engines version
- uses: skjnldsv/read-package-engines-version-actions@0ce2ed60f6df073a62a77c0a4958dd0fc68e32e7 # v2.1
+ uses: skjnldsv/read-package-engines-version-actions@8205673bab74a63eb9b8093402fd9e0e018663a1 # v2.2
id: package-engines-versions
with:
- fallbackNode: '^16'
- fallbackNpm: '^7'
+ fallbackNode: '^20'
+ fallbackNpm: '^10'
- name: Set up node ${{ steps.package-engines-versions.outputs.nodeVersion }}
- uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3
+ uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v3
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') }}
+ run: |
+ git fetch origin ${{ needs.init.outputs.base_ref }}:${{ needs.init.outputs.base_ref }}
+ git rebase origin/${{ needs.init.outputs.base_ref }}
- name: Install dependencies & build
+ env:
+ CYPRESS_INSTALL_BINARY: 0
+ PUPPETEER_SKIP_DOWNLOAD: true
run: |
npm ci
npm run build --if-present
- - name: Commit and push default
- if: ${{ needs.init.outputs.arg1 != 'fixup' && needs.init.outputs.arg1 != 'amend' }}
+ - name: Commit default
+ if: ${{ !contains(needs.init.outputs.arg1, 'fixup') && !contains(needs.init.outputs.arg1, 'amend') }}
run: |
- git add ${{ needs.init.outputs.git_path }}
+ git add ${{ github.workspace }}${{ needs.init.outputs.git_path }}
git commit --signoff -m 'chore(assets): Recompile assets'
- git push origin ${{ needs.init.outputs.head_ref }}
-
- - name: Commit and push fixup
- if: ${{ needs.init.outputs.arg1 == 'fixup' }}
+
+ - name: Commit fixup
+ if: ${{ contains(needs.init.outputs.arg1, 'fixup') }}
run: |
- git add ${{ needs.init.outputs.git_path }}
+ git add ${{ github.workspace }}${{ needs.init.outputs.git_path }}
git commit --fixup=HEAD --signoff
- git push origin ${{ needs.init.outputs.head_ref }}
- - name: Commit and push amend
- if: ${{ needs.init.outputs.arg1 == 'amend' }}
+ - name: Commit amend
+ if: ${{ contains(needs.init.outputs.arg1, 'amend') }}
run: |
- git add ${{ needs.init.outputs.git_path }}
+ git add ${{ github.workspace }}${{ needs.init.outputs.git_path }}
git commit --amend --no-edit --signoff
- git push --force origin ${{ needs.init.outputs.head_ref }}
+ # 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') }}
+ run: git push origin ${{ needs.init.outputs.head_ref }}
+
+ - name: Force push
+ if: ${{ contains(needs.init.outputs.arg1, 'rebase') || contains(needs.init.outputs.arg1, 'amend') }}
+ run: git push --force origin ${{ needs.init.outputs.head_ref }}
- name: Add reaction on failure
- uses: peter-evans/create-or-update-comment@ca08ebd5dc95aa0cd97021e9708fcd6b87138c9b # v3.0.1
+ uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v4.0.0
if: failure()
with:
token: ${{ secrets.COMMAND_BOT_PAT }}