-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #57 from nextcloud/automated/update-workflows/default
chore: update workflows from templates
- Loading branch information
Showing
15 changed files
with
549 additions
and
296 deletions.
There are no files selected for viewing
This file contains 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 file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,11 @@ | ||
# 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: | ||
|
@@ -15,33 +23,34 @@ 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@c6c9a1a66007646a28c153e2a8580a5bad27bcfa # v3.0.2 | ||
uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v4.0.0 | ||
with: | ||
token: ${{ secrets.COMMAND_BOT_PAT }} | ||
repository: ${{ github.event.repository.full_name }} | ||
comment-id: ${{ github.event.comment.id }} | ||
reactions: "+1" | ||
reactions: '+1' | ||
|
||
- name: Parse command | ||
uses: skjnldsv/parse-command-comment@7cef1df370a99dfd5bf896d50121390c96785db8 # v2 | ||
uses: skjnldsv/parse-command-comment@5c955203c52424151e6d0e58fb9de8a9f6a605a1 # v2 | ||
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=${{ 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 | ||
|
@@ -54,70 +63,86 @@ jobs: | |
|
||
steps: | ||
- name: Restore cached git repository | ||
uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3.3.1 | ||
uses: buildjet/cache@e376f15c6ec6dc595375c78633174c7e5f92dc0e # v3 | ||
with: | ||
path: .git | ||
key: git-repo | ||
|
||
- name: Checkout ${{ needs.init.outputs.head_ref }} | ||
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 | ||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 | ||
with: | ||
token: ${{ secrets.COMMAND_BOT_PAT }} | ||
fetch-depth: 0 | ||
ref: ${{ needs.init.outputs.head_ref }} | ||
|
||
- name: Setup git | ||
run: | | ||
git config --local user.email "[email protected]" | ||
git config --local user.name "nextcloud-command" | ||
git config --local user.email '[email protected]' | ||
git config --local user.name 'nextcloud-command' | ||
- name: Read package.json node and npm engines version | ||
uses: skjnldsv/read-package-engines-version-actions@8205673bab74a63eb9b8093402fd9e0e018663a1 # v2.2 | ||
uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3 | ||
id: package-engines-versions | ||
with: | ||
fallbackNode: '^20' | ||
fallbackNpm: '^9' | ||
fallbackNpm: '^10' | ||
|
||
- name: Set up node ${{ steps.package-engines-versions.outputs.nodeVersion }} | ||
uses: actions/setup-node@e33196f7422957bea03ed53f6fbb155025ffc7b8 # v3 | ||
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # 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 }}" | ||
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@c6c9a1a66007646a28c153e2a8580a5bad27bcfa # v3.0.2 | ||
uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v4.0.0 | ||
if: failure() | ||
with: | ||
token: ${{ secrets.COMMAND_BOT_PAT }} | ||
repository: ${{ github.event.repository.full_name }} | ||
comment-id: ${{ github.event.comment.id }} | ||
reactions: "-1" | ||
reactions: '-1' |
This file contains 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
Oops, something went wrong.