From c3f73291a3fc2a0c6fb419986491ce1e692d689d Mon Sep 17 00:00:00 2001 From: Michel Roegl-Brunner Date: Tue, 13 May 2025 14:19:16 +0200 Subject: [PATCH] Changes to Workfows --- .github/workflows/auto-update-app-headers.yml | 9 +- .github/workflows/autolabeler.yml | 11 +- .github/workflows/changelog-pr.yaml | 2 +- .github/workflows/close-discussion.yaml | 1 + .github/workflows/close-ttek-issue.yaml | 5 +- .../create-ready-for-testing-message.yml | 2 +- .github/workflows/delete-discord-thread.yml | 3 +- .github/workflows/delete_new_script.yaml | 2 +- .github/workflows/frontend-cicd.yml | 5 +- .github/workflows/get-versions-from-gh.yaml | 7 +- .../get-versions-from-newreleases.yaml | 1 + .github/workflows/move-to-main-repo.yaml | 2 +- .github/workflows/push-to-gitea.yml | 3 +- .github/workflows/script-test.yaml | 132 +++++++++--------- 14 files changed, 96 insertions(+), 89 deletions(-) diff --git a/.github/workflows/auto-update-app-headers.yml b/.github/workflows/auto-update-app-headers.yml index 5e447ea..541442d 100644 --- a/.github/workflows/auto-update-app-headers.yml +++ b/.github/workflows/auto-update-app-headers.yml @@ -5,11 +5,12 @@ on: branches: - main paths: - - 'ct/**.sh' - workflow_dispatch: + - "ct/**.sh" + workflow_dispatch: jobs: update-app-files: + if: github.repository == 'community-scripts/ProxmoxVED' runs-on: ubuntu-latest permissions: @@ -79,7 +80,7 @@ jobs: --label "automated pr" env: GH_TOKEN: ${{ steps.generate-token.outputs.token }} - + - name: Approve pull request if: env.changed == 'true' env: @@ -89,7 +90,7 @@ jobs: if [ -n "$PR_NUMBER" ]; then gh pr review $PR_NUMBER --approve fi - + - name: Re-approve pull request after update if: env.changed == 'true' env: diff --git a/.github/workflows/autolabeler.yml b/.github/workflows/autolabeler.yml index 013c40b..149382c 100644 --- a/.github/workflows/autolabeler.yml +++ b/.github/workflows/autolabeler.yml @@ -7,6 +7,7 @@ on: jobs: autolabeler: + if: github.repository == 'community-scripts/ProxmoxVED' runs-on: ubuntu-latest permissions: pull-requests: write @@ -42,9 +43,9 @@ jobs: pull_number: prNumber, }); const prFiles = prListFilesResponse.data; - - + + // Apply labels based on file changes for (const [label, rules] of Object.entries(autolabelerConfig)) { const shouldAddLabel = prFiles.some((prFile) => { @@ -66,17 +67,17 @@ jobs: "✨ **New feature**": "feature", "💥 **Breaking change**": "breaking change", }; - + for (const [checkbox, label] of Object.entries(templateLabelMappings)) { const escapedCheckbox = checkbox.replace(/([.*+?^=!:${}()|\[\]\/\\])/g, "\\$1"); const regex = new RegExp(`- \\[(x|X)\\]\\s*.*${escapedCheckbox}`, "i"); - const match = prBody.match(regex); + const match = prBody.match(regex); if (match) { console.log(`Match: ${match}`); labelsToAdd.add(label); } } - + console.log(`Labels to add: ${Array.from(labelsToAdd).join(", ")}`); if (labelsToAdd.size > 0) { diff --git a/.github/workflows/changelog-pr.yaml b/.github/workflows/changelog-pr.yaml index c8fa281..ec4d7d7 100644 --- a/.github/workflows/changelog-pr.yaml +++ b/.github/workflows/changelog-pr.yaml @@ -7,7 +7,7 @@ on: jobs: update-changelog-pull-request: - if: github.repository == 'community-scripts/ProxmoxVE' + if: github.repository == 'community-scripts/ProxmoxVED' runs-on: ubuntu-latest env: CONFIG_PATH: .github/changelog-pr-config.json diff --git a/.github/workflows/close-discussion.yaml b/.github/workflows/close-discussion.yaml index 80a3f50..9b0352f 100644 --- a/.github/workflows/close-discussion.yaml +++ b/.github/workflows/close-discussion.yaml @@ -11,6 +11,7 @@ permissions: jobs: close-discussion: + if: github.repository == 'community-scripts/ProxmoxVED' runs-on: ubuntu-latest steps: diff --git a/.github/workflows/close-ttek-issue.yaml b/.github/workflows/close-ttek-issue.yaml index a71622e..037d607 100644 --- a/.github/workflows/close-ttek-issue.yaml +++ b/.github/workflows/close-ttek-issue.yaml @@ -6,6 +6,7 @@ on: jobs: close_tteck_issues: + if: github.repository == 'community-scripts/ProxmoxVED' runs-on: ubuntu-latest steps: - name: Auto-close if tteck script detected @@ -22,12 +23,12 @@ jobs: This repository is no longer used for active scripts. **Please update your bookmarks** and use: [https://helper-scripts.com](https://helper-scripts.com) - + Also make sure your Bash command starts with: \`\`\`bash bash <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/...) \`\`\` - + This issue is being closed automatically.`; await github.rest.issues.createComment({ diff --git a/.github/workflows/create-ready-for-testing-message.yml b/.github/workflows/create-ready-for-testing-message.yml index 4c1770b..939bb04 100644 --- a/.github/workflows/create-ready-for-testing-message.yml +++ b/.github/workflows/create-ready-for-testing-message.yml @@ -11,7 +11,7 @@ permissions: jobs: post_to_discord: runs-on: ubuntu-latest - if: contains(github.event.issue.labels.*.name, 'Ready For Testing') + if: contains(github.event.issue.labels.*.name, 'Ready For Testing') && github.repository == 'community-scripts/ProxmoxVED' steps: - name: Extract Issue Title (Lowercase & Underscores) id: extract_title diff --git a/.github/workflows/delete-discord-thread.yml b/.github/workflows/delete-discord-thread.yml index 92972e6..19e3608 100644 --- a/.github/workflows/delete-discord-thread.yml +++ b/.github/workflows/delete-discord-thread.yml @@ -7,13 +7,14 @@ on: jobs: close_discord_thread: + if: github.repository == 'community-scripts/ProxmoxVED' runs-on: ubuntu-latest steps: - name: Get thread-ID op and close thread run: | ISSUE_TITLE="${{ github.event.issue.title }}" - + THREAD_ID=$(curl -s -X GET "https://discord.com/api/v10/guilds/${{ secrets.DISCORD_GUILD_ID }}/threads/active" \ -H "Authorization: Bot ${{ secrets.DISCORD_BOT_TOKEN }}" \ -H "Content-Type: application/json" | \ diff --git a/.github/workflows/delete_new_script.yaml b/.github/workflows/delete_new_script.yaml index 0f05c83..d938ea5 100644 --- a/.github/workflows/delete_new_script.yaml +++ b/.github/workflows/delete_new_script.yaml @@ -7,7 +7,7 @@ on: jobs: delete-files: runs-on: ubuntu-latest - if: contains(github.event.issue.labels.*.name, 'Started Migration To ProxmoxVE') + if: contains(github.event.issue.labels.*.name, 'Started Migration To ProxmoxVE') && github.repository == 'community-scripts/ProxmoxVED' steps: - name: Checkout repository uses: actions/checkout@v4 diff --git a/.github/workflows/frontend-cicd.yml b/.github/workflows/frontend-cicd.yml index 4eb3676..6adaf0c 100644 --- a/.github/workflows/frontend-cicd.yml +++ b/.github/workflows/frontend-cicd.yml @@ -25,10 +25,11 @@ concurrency: jobs: build: + if: github.repository == 'community-scripts/ProxmoxVED' runs-on: ubuntu-latest defaults: run: - working-directory: frontend # Set default working directory for all run steps + working-directory: frontend # Set default working directory for all run steps steps: - name: Checkout uses: actions/checkout@v4 @@ -63,7 +64,7 @@ jobs: deploy: runs-on: ubuntu-latest needs: build - if: github.ref == 'refs/heads/main' + if: github.ref == 'refs/heads/main' && github.repository == 'community-scripts/ProxmoxVED' permissions: pages: write id-token: write diff --git a/.github/workflows/get-versions-from-gh.yaml b/.github/workflows/get-versions-from-gh.yaml index 71b6add..d3cd7e3 100644 --- a/.github/workflows/get-versions-from-gh.yaml +++ b/.github/workflows/get-versions-from-gh.yaml @@ -12,6 +12,7 @@ permissions: jobs: crawl-versions: + if: github.repository == 'community-scripts/ProxmoxVED' runs-on: ubuntu-latest steps: @@ -32,10 +33,10 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | - ls + ls - chmod +x .github/workflows/scripts/get-gh-release.sh - .github/workflows/scripts/get-gh-release.sh + chmod +x .github/workflows/scripts/get-gh-release.sh + .github/workflows/scripts/get-gh-release.sh - name: Commit JSON env: diff --git a/.github/workflows/get-versions-from-newreleases.yaml b/.github/workflows/get-versions-from-newreleases.yaml index 293ca72..9c4a833 100644 --- a/.github/workflows/get-versions-from-newreleases.yaml +++ b/.github/workflows/get-versions-from-newreleases.yaml @@ -12,6 +12,7 @@ permissions: jobs: crawl-versions: + if: github.repository == 'community-scripts/ProxmoxVED' runs-on: ubuntu-latest steps: diff --git a/.github/workflows/move-to-main-repo.yaml b/.github/workflows/move-to-main-repo.yaml index 63595f5..d06ce04 100644 --- a/.github/workflows/move-to-main-repo.yaml +++ b/.github/workflows/move-to-main-repo.yaml @@ -14,7 +14,7 @@ permissions: jobs: move-to-main-repo: runs-on: ubuntu-latest - if: github.event.label.name == 'Migration To ProxmoxVE' + if: github.event.label.name == 'Migration To ProxmoxVE' && github.repository == 'community-scripts/ProxmoxVED' steps: - name: Generate a token id: app-token diff --git a/.github/workflows/push-to-gitea.yml b/.github/workflows/push-to-gitea.yml index 92f4552..04a0135 100644 --- a/.github/workflows/push-to-gitea.yml +++ b/.github/workflows/push-to-gitea.yml @@ -7,6 +7,7 @@ on: jobs: sync: + if: github.repository == 'community-scripts/ProxmoxVED' runs-on: ubuntu-latest steps: @@ -19,7 +20,7 @@ jobs: run: | git config --global user.name "Push From Github" git config --global user.email "actions@github.com" - git remote add gitea http://$GITEA_USER:$GITEA_TOKEN@git.community-scripts.org/community-scripts/ProxmoxVED.git + git remote add gitea https://$GITEA_USER:$GITEA_TOKEN@git.community-scripts.org/community-scripts/ProxmoxVED.git git push gitea --mirror env: GITEA_USER: ${{ secrets.GITEA_USERNAME }} diff --git a/.github/workflows/script-test.yaml b/.github/workflows/script-test.yaml index b41c20e..e9798ae 100644 --- a/.github/workflows/script-test.yaml +++ b/.github/workflows/script-test.yaml @@ -1,16 +1,17 @@ name: Run Scripts on PVE Node for testing permissions: - pull-requests: write + pull-requests: write on: pull_request_target: branches: - main paths: - - 'install/**.sh' - - 'ct/**.sh' + - "install/**.sh" + - "ct/**.sh" jobs: run-install-script: + if: github.repository == 'community-scripts/ProxmoxVED' runs-on: pvenode steps: - name: Checkout PR branch @@ -39,7 +40,6 @@ jobs: env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - name: Get scripts id: check-install-script run: | @@ -62,73 +62,73 @@ jobs: id: run-install continue-on-error: true run: | - set +e - #run for each files in /ct - for FILE in ${{ env.ALL_FILES }}; do - STRIPPED_NAME=$(basename "$FILE" | sed 's/-install//' | sed 's/\.sh$//') - echo "Running Test for: $STRIPPED_NAME" - if grep -E -q 'read\s+-r\s+-p\s+".*"\s+\w+' "$FILE"; then - echo "The script contains an interactive prompt. Skipping execution." + set +e + #run for each files in /ct + for FILE in ${{ env.ALL_FILES }}; do + STRIPPED_NAME=$(basename "$FILE" | sed 's/-install//' | sed 's/\.sh$//') + echo "Running Test for: $STRIPPED_NAME" + if grep -E -q 'read\s+-r\s+-p\s+".*"\s+\w+' "$FILE"; then + echo "The script contains an interactive prompt. Skipping execution." + continue + fi + if [[ $FILE =~ ^install/.*-install\.sh$ ]]; then + CT_SCRIPT="ct/$STRIPPED_NAME.sh" + if [[ ! -f $CT_SCRIPT ]]; then + echo "No CT script found for $STRIPPED_NAME" + ERROR_MSG="No CT script found for $FILE" + echo "$ERROR_MSG" > result_$STRIPPED_NAME.log continue fi - if [[ $FILE =~ ^install/.*-install\.sh$ ]]; then - CT_SCRIPT="ct/$STRIPPED_NAME.sh" - if [[ ! -f $CT_SCRIPT ]]; then - echo "No CT script found for $STRIPPED_NAME" - ERROR_MSG="No CT script found for $FILE" - echo "$ERROR_MSG" > result_$STRIPPED_NAME.log + if grep -E -q 'read\s+-r\s+-p\s+".*"\s+\w+' "install/$STRIPPED_NAME-install.sh"; then + echo "The script contains an interactive prompt. Skipping execution." continue fi - if grep -E -q 'read\s+-r\s+-p\s+".*"\s+\w+' "install/$STRIPPED_NAME-install.sh"; then - echo "The script contains an interactive prompt. Skipping execution." - continue - fi - echo "Found CT script for $STRIPPED_NAME" - chmod +x "$CT_SCRIPT" - RUNNING_FILE=$CT_SCRIPT - elif [[ $FILE =~ ^ct/.*\.sh$ ]]; then - INSTALL_SCRIPT="install/$STRIPPED_NAME-install.sh" - if [[ ! -f $INSTALL_SCRIPT ]]; then - echo "No install script found for $STRIPPED_NAME" - ERROR_MSG="No install script found for $FILE" - echo "$ERROR_MSG" > result_$STRIPPED_NAME.log - continue - fi - echo "Found install script for $STRIPPED_NAME" - chmod +x "$INSTALL_SCRIPT" - RUNNING_FILE=$FILE - if grep -E -q 'read\s+-r\s+-p\s+".*"\s+\w+' "ct/$STRIPPED_NAME.sh"; then - echo "The script contains an interactive prompt. Skipping execution." - continue - fi - fi - git remote add community-scripts https://github.com/community-scripts/ProxmoxVE.git - git fetch community-scripts - rm -f .github/workflows/scripts/app-test/pr-build.func || true - rm -f .github/workflows/scripts/app-test/pr-install.func || true - rm -f .github/workflows/scripts/app-test/pr-alpine-install.func || true - rm -f .github/workflows/scripts/app-test/pr-create-lxc.sh || true - git checkout community-scripts/main -- .github/workflows/scripts/app-test/pr-build.func - git checkout community-scripts/main -- .github/workflows/scripts/app-test/pr-install.func - git checkout community-scripts/main -- .github/workflows/scripts/app-test/pr-alpine-install.func - git checkout community-scripts/main -- .github/workflows/scripts/app-test/pr-create-lxc.sh - chmod +x $RUNNING_FILE - chmod +x .github/workflows/scripts/app-test/pr-create-lxc.sh - chmod +x .github/workflows/scripts/app-test/pr-install.func - chmod +x .github/workflows/scripts/app-test/pr-alpine-install.func - chmod +x .github/workflows/scripts/app-test/pr-build.func - sed -i 's|source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)|source .github/workflows/scripts/app-test/pr-build.func|g' "$RUNNING_FILE" - echo "Executing $RUNNING_FILE" - export TERM=xterm-256color - ./$RUNNING_FILE - ERROR_MSG=$(./$RUNNING_FILE 2>&1 > /dev/null) - echo "Finished running $FILE" - if [ -n "$ERROR_MSG" ]; then - echo "ERROR in $STRIPPED_NAME: $ERROR_MSG" + echo "Found CT script for $STRIPPED_NAME" + chmod +x "$CT_SCRIPT" + RUNNING_FILE=$CT_SCRIPT + elif [[ $FILE =~ ^ct/.*\.sh$ ]]; then + INSTALL_SCRIPT="install/$STRIPPED_NAME-install.sh" + if [[ ! -f $INSTALL_SCRIPT ]]; then + echo "No install script found for $STRIPPED_NAME" + ERROR_MSG="No install script found for $FILE" echo "$ERROR_MSG" > result_$STRIPPED_NAME.log + continue fi - done - set -e # Restore exit-on-error + echo "Found install script for $STRIPPED_NAME" + chmod +x "$INSTALL_SCRIPT" + RUNNING_FILE=$FILE + if grep -E -q 'read\s+-r\s+-p\s+".*"\s+\w+' "ct/$STRIPPED_NAME.sh"; then + echo "The script contains an interactive prompt. Skipping execution." + continue + fi + fi + git remote add community-scripts https://github.com/community-scripts/ProxmoxVE.git + git fetch community-scripts + rm -f .github/workflows/scripts/app-test/pr-build.func || true + rm -f .github/workflows/scripts/app-test/pr-install.func || true + rm -f .github/workflows/scripts/app-test/pr-alpine-install.func || true + rm -f .github/workflows/scripts/app-test/pr-create-lxc.sh || true + git checkout community-scripts/main -- .github/workflows/scripts/app-test/pr-build.func + git checkout community-scripts/main -- .github/workflows/scripts/app-test/pr-install.func + git checkout community-scripts/main -- .github/workflows/scripts/app-test/pr-alpine-install.func + git checkout community-scripts/main -- .github/workflows/scripts/app-test/pr-create-lxc.sh + chmod +x $RUNNING_FILE + chmod +x .github/workflows/scripts/app-test/pr-create-lxc.sh + chmod +x .github/workflows/scripts/app-test/pr-install.func + chmod +x .github/workflows/scripts/app-test/pr-alpine-install.func + chmod +x .github/workflows/scripts/app-test/pr-build.func + sed -i 's|source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)|source .github/workflows/scripts/app-test/pr-build.func|g' "$RUNNING_FILE" + echo "Executing $RUNNING_FILE" + export TERM=xterm-256color + ./$RUNNING_FILE + ERROR_MSG=$(./$RUNNING_FILE 2>&1 > /dev/null) + echo "Finished running $FILE" + if [ -n "$ERROR_MSG" ]; then + echo "ERROR in $STRIPPED_NAME: $ERROR_MSG" + echo "$ERROR_MSG" > result_$STRIPPED_NAME.log + fi + done + set -e # Restore exit-on-error - name: Cleanup PVE Node run: | @@ -175,5 +175,3 @@ jobs: done echo "ERROR=$ERROR" >> $GITHUB_ENV - -