From 806fb25d5a07c545aa1c0f393b41ed2f63ff6193 Mon Sep 17 00:00:00 2001 From: Oscaner Miao Date: Fri, 12 Jan 2024 09:26:37 +0800 Subject: [PATCH] fix(#49): github api rate limit in actions --- .github/actions/bump-casks/action.yml | 11 ++++++++--- .github/actions/bump-casks/script.sh | 2 +- .github/actions/bump-formulas/action.yml | 11 ++++++++--- .github/actions/bump-formulas/script.sh | 2 +- .github/actions/homebrew-env/action.yml | 8 +++++++- .github/workflows/main.yml | 4 +++- 6 files changed, 28 insertions(+), 10 deletions(-) diff --git a/.github/actions/bump-casks/action.yml b/.github/actions/bump-casks/action.yml index 5080082..8899013 100644 --- a/.github/actions/bump-casks/action.yml +++ b/.github/actions/bump-casks/action.yml @@ -14,7 +14,12 @@ runs: env: HOMEBREW_GITHUB_API_TOKEN: ${{ inputs.HOMEBREW_GITHUB_API_TOKEN }} shell: bash + # https://docs.github.com/en/rest/using-the-rest-api/rate-limits-for-the-rest-api?apiVersion=2022-11-28#primary-rate-limit-for-authenticated-users + # Github Actions: 5000 requests per hour + # 1 * 60 * 24 = 1440 (because bump-pr will checkout a new branch and push to remote) + # 1 concurrent parallel jobs, 1 second delay between jobs. run: | - parallel -j0 --group --halt now,fail=1 \ - './.github/actions/bump-casks/script.sh {}' \ - ::: $(ls $(brew --repository brewforge/chinese)/Casks/*.rb | xargs -I {} basename {} .rb) + cd $(brew --repository brewforge/chinese) + parallel -j1 --delay 1s --group --halt now,fail=1 \ + "$GITHUB_WORKSPACE/.github/actions/bump-casks/script.sh {}" \ + ::: $(ls ./Casks/*.rb | xargs -I {} basename {} .rb) diff --git a/.github/actions/bump-casks/script.sh b/.github/actions/bump-casks/script.sh index 4a58d31..708050f 100755 --- a/.github/actions/bump-casks/script.sh +++ b/.github/actions/bump-casks/script.sh @@ -27,6 +27,6 @@ toV=${cleanCheck#*==>} echo "Updating $cask from $fromV to $toV" if [[ "$fromV" != "$toV" ]]; then - brew bump-cask-pr "$cask" --version "$toV" --verbose --force + brew bump-cask-pr "$cask" --version "$toV" --verbose --force --no-browse --fork-org=Brewforge fi echo "Done for $cask" diff --git a/.github/actions/bump-formulas/action.yml b/.github/actions/bump-formulas/action.yml index e7077ec..a15fdd6 100644 --- a/.github/actions/bump-formulas/action.yml +++ b/.github/actions/bump-formulas/action.yml @@ -14,7 +14,12 @@ runs: env: HOMEBREW_GITHUB_API_TOKEN: ${{ inputs.HOMEBREW_GITHUB_API_TOKEN }} shell: bash + # https://docs.github.com/en/rest/using-the-rest-api/rate-limits-for-the-rest-api?apiVersion=2022-11-28#primary-rate-limit-for-authenticated-users + # Github Actions: 5000 requests per hour + # 1 * 60 * 24 = 1440 (because bump-pr will checkout a new branch and push to remote) + # 1 concurrent parallel jobs, 1 second delay between jobs. run: | - parallel -j0 --group --halt now,fail=1 \ - './.github/actions/bump-formulas/script.sh {}' \ - ::: $(ls $(brew --repository brewforge/chinese)/Formula/*.rb | xargs -I {} basename {} .rb) + cd $(brew --repository brewforge/chinese) + parallel -j1 --delay 1s --group --halt now,fail=1 \ + "$GITHUB_WORKSPACE/.github/actions/bump-formulas/script.sh {}" \ + ::: $(ls ./Formula/*.rb | xargs -I {} basename {} .rb) diff --git a/.github/actions/bump-formulas/script.sh b/.github/actions/bump-formulas/script.sh index 36c7870..adf4d97 100755 --- a/.github/actions/bump-formulas/script.sh +++ b/.github/actions/bump-formulas/script.sh @@ -27,6 +27,6 @@ toV=${cleanCheck#*==>} echo "Updating $formula from $fromV to $toV" if [[ "$fromV" != "$toV" ]]; then - brew bump-formula-pr "$formula" --version "$toV" --verbose --force + brew bump-formula-pr "$formula" --version "$toV" --verbose --force --no-browse --fork-org=Brewforge fi echo "Done for $formula" diff --git a/.github/actions/homebrew-env/action.yml b/.github/actions/homebrew-env/action.yml index 977d4d1..a12facc 100644 --- a/.github/actions/homebrew-env/action.yml +++ b/.github/actions/homebrew-env/action.yml @@ -17,13 +17,16 @@ runs: cask: true test-bot: false - - name: Add parallel cli + - name: Necessary clis shell: bash run: | brew install parallel # makesure brew livecheck works brew livecheck parallel + brew install coreutils + brew link --overwrite coreutils + - name: Add Tap env: HOMEBREW_GITHUB_API_TOKEN: ${{ inputs.HOMEBREW_GITHUB_API_TOKEN }} @@ -32,3 +35,6 @@ runs: brew tap brewforge/chinese brew update brew install ripgrep sd + brew install-bundler-gems --groups "audit,style" + + brew update-reset $(brew --repository brewforge/chinese) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 8db98d2..096e1f3 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -2,7 +2,7 @@ name: CI on: pull_request: - branches: [main, bump-*] + branches: [main] push: branches: [fix-*] schedule: @@ -13,6 +13,8 @@ on: # allow run manually workflow_dispatch: {} +permissions: write-all + jobs: casks: name: Bump Casks in parallel