From c3d95240c46f36a71fe6d15f74da4a2a11cf94e1 Mon Sep 17 00:00:00 2001 From: Matt Sturgeon Date: Tue, 28 Jan 2025 12:55:54 +0000 Subject: [PATCH] ci/update: check against base branch if no PR is open --- .github/workflows/update.yml | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/.github/workflows/update.yml b/.github/workflows/update.yml index 7a264e2e..f1c50c42 100644 --- a/.github/workflows/update.yml +++ b/.github/workflows/update.yml @@ -33,7 +33,8 @@ jobs: if: github.event_name != 'schedule' || github.repository == 'nix-community/nixvim' env: repo: ${{ github.repository }} - branch: update/${{ github.ref_name }} + base_branch: ${{ github.ref_name }} + pr_branch: update/${{ github.ref_name }} steps: - name: Checkout repository @@ -59,7 +60,7 @@ jobs: run: | # Query for info about the already open update PR info=$( - gh api graphql -F owner='{owner}' -F repo='{repo}' -F branch="$branch" -f query=' + gh api graphql -F owner='{owner}' -F repo='{repo}' -F branch="$pr_branch" -f query=' query($owner:String!, $repo:String!, $branch:String!) { repository(owner: $owner, name: $repo) { pullRequests(first: 1, states: OPEN, headRefName: $branch) { @@ -98,8 +99,8 @@ jobs: fi - name: Check if nixpkgs input was changed - # The check is run only on scheduled runs & when there is a PR already open - if: github.event_name == 'schedule' && steps.open_pr_info.outputs.number + # The check is run only on scheduled runs + if: github.event_name == 'schedule' env: pr_num: ${{ steps.open_pr_info.outputs.number }} pr_url: ${{ steps.open_pr_info.outputs.url }} @@ -113,8 +114,15 @@ jobs: getNixpkgsRev() { getAttr "$1" 'inputs.nixpkgs.rev' } - old=$(getNixpkgsRev "github:$repo/$branch") + + if [[ -n "$pr_num" ]]; then + old_branch=$pr_branch + else + old_branch=$base_branch + fi + old=$(getNixpkgsRev "github:$repo/$old_branch") new=$(getNixpkgsRev "$PWD") + if [[ "$old" = "$new" ]]; then ( echo "nixpkgs rev has not changed ($new). Stopping..." @@ -123,8 +131,13 @@ jobs: ( echo '## Update cancelled' echo - echo -n 'The `nixpkgs` input has not changed compared to the already open PR: ' - echo -n "[#$pr_num]($pr_url) (\`nixpkgs.rev: $new\`)." + if [[ -n "$pr_num" ]]; then + echo -n 'The `nixpkgs` input has not changed compared to the already open PR: ' + echo "[#$pr_num]($pr_url) (\`nixpkgs.rev: $new\`)." + else + echo -n 'The `nixpkgs` input has not changed compared to the base branch: ' + echo "\`$base_branch\`" + fi echo echo 'The following changes would have been made:' echo '```' @@ -165,7 +178,7 @@ jobs: uses: peter-evans/create-pull-request@v6 with: add-paths: "!**" - branch: update/${{ github.ref_name }} + pr_branch: update/${{ github.ref_name }} delete-branch: true title: | [${{ github.ref_name }}] Update flake.lock & generated files