Ver Fonte

commit-bot: allow skipping branches (#930)

Sam Darwin há 1 ano atrás
pai
commit
edb9948bdf
1 ficheiros alterados com 36 adições e 11 exclusões
  1. 36 11
      .github/workflows/commit-bot.yml

+ 36 - 11
.github/workflows/commit-bot.yml

@@ -1,5 +1,17 @@
 name: Commit Bot
 
+# Instructions
+#
+# - One-time setup: create a personal access token with permissions. Then configure it here
+#   as secrets.CI_PAT. https://github.com/boostorg/boost/settings/secrets/actions
+#   The reason is explained in https://github.com/orgs/community/discussions/25702
+#   "If an action pushes code using the repository's GITHUB_TOKEN, a new workflow will not run"
+#
+# - Processing of either the 'master' or 'develop' branch may be stopped by creating the variables
+#   vars.block_master or vars.block_develop with any value.
+#   https://github.com/boostorg/boost/settings/variables/actions
+#
+
 # To avoid infinite loops, don't trigger on "push"
 on:
   schedule:
@@ -19,12 +31,26 @@ jobs:
       - name: Check for module updates
         id: branches
         run: |
-          if [[ "${{ github.event_name }}" == "push" ]]; then
-            branches="${{ github.ref_name }}"
-          else
-            branches="master develop"
-          fi
-          echo "branches=$branches" >> $GITHUB_OUTPUT
+            set -xe
+            branches=""
+            if [[ "${{ github.event_name }}" == "push" ]]; then
+                if [[ ! -n "${{ vars.block_master }}" && "${{ github.ref_name }}" == "master" ]]; then
+                    branches="master"
+                elif [[ ! -n "${{ vars.block_develop }}" && "${{ github.ref_name }}" == "develop" ]]; then
+                    branches="develop"
+                else
+                    branches="${{ github.ref_name }}"
+                fi
+            else
+                # from a schedule:
+                if [[ ! -n "${{ vars.block_master }}" ]]; then
+                    branches="master"
+                fi
+                if [[ ! -n "${{ vars.block_develop }}" ]]; then
+                    branches="${branches} develop"
+                fi
+            fi
+            echo "branches=$branches" >> $GITHUB_OUTPUT
 
       - name: Checkout master repository
         uses: actions/checkout@v4
@@ -45,11 +71,11 @@ jobs:
       - name: Check for module updates
         run: |
           branches="${{ steps.branches.outputs.branches }}"
-          
-          # Set up Git 
+
+          # Set up Git
           git config --global user.name "boost-commitbot"
           git config --global user.email "boost-commitbot@example.com"
-          
+
           # Update each branch
           for branch in $branches; do
             cd $branch
@@ -74,7 +100,7 @@ jobs:
                   echo "$submodule_name ($commit_id): OK"
               else
                   echo "$submodule_name: $previous_commit_id -> $commit_id"
-                  set -x        
+                  set -x
                   set +e
                   git submodule update --init "$submodule_path"
                   git submodule update --remote "$submodule_path"
@@ -104,4 +130,3 @@ jobs:
           github_token: ${{ secrets.CI_PAT }}
           branch: develop
           directory: develop
-

粤ICP备19079148号