From 9ae020834736dab32fc12d3a9e5b2e09352ca12f Mon Sep 17 00:00:00 2001 From: Mike McQuaid Date: Wed, 26 Aug 2020 14:24:58 +0100 Subject: [PATCH] workflows: improve scheduled behaviour. --- .github/workflows/spdx.yml | 22 +++++++++++++++++----- .github/workflows/tapioca.yml | 22 +++++++++++++++++----- 2 files changed, 34 insertions(+), 10 deletions(-) diff --git a/.github/workflows/spdx.yml b/.github/workflows/spdx.yml index 10b27c24f3..e26da352db 100644 --- a/.github/workflows/spdx.yml +++ b/.github/workflows/spdx.yml @@ -27,14 +27,26 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} HOMEBREW_GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | - git fetch origin master - git reset origin/master - git checkout -B spdx-update + git fetch origin + + BRANCH="spdx-update" + echo "::set-output name=branch::${BRANCH}" + + if git ls-remote --exit-code --heads origin "$BRANCH"; then + git checkout "$BRANCH" + git reset origin/master + else + git checkout -B "$BRANCH" origin/master + BRANCH_EXISTS="1" + fi if brew update-license-data --fail-if-not-changed; then git add "$GITHUB_WORKSPACE/Library/Homebrew/data/spdx" git commit -m "spdx: update license data." -m "Autogenerated by [a scheduled GitHub Action](https://github.com/Homebrew/brew/blob/master/.github/workflows/spdx.yml)." echo "::set-output name=committed::true" + if [ -n "$BRANCH_EXISTS" ]; then + echo "::set-output name=pull_request::true" + fi fi - name: Push commits @@ -42,11 +54,11 @@ jobs: uses: Homebrew/actions/git-try-push@master with: token: ${{ secrets.HOMEBREW_GITHUB_API_TOKEN }} - branch: spdx-update + branch: ${{ steps.update.outputs.branch }} force: true - name: Open a pull request - if: steps.update.outputs.committed == 'true' + if: steps.update.outputs.pull_request == 'true' run: hub pull-request --no-edit env: GITHUB_TOKEN: ${{ secrets.HOMEBREW_GITHUB_API_TOKEN }} diff --git a/.github/workflows/tapioca.yml b/.github/workflows/tapioca.yml index 0343566d56..a2561d18d7 100644 --- a/.github/workflows/tapioca.yml +++ b/.github/workflows/tapioca.yml @@ -35,9 +35,18 @@ jobs: - name: Update Tapioca definitions id: update run: | - git fetch origin master - git reset origin/master - git checkout -B tapioca-update + git fetch origin + + BRANCH="tapioca-update" + echo "::set-output name=branch::${BRANCH}" + + if git ls-remote --exit-code --heads origin "$BRANCH"; then + git checkout "$BRANCH" + git reset origin/master + else + git checkout -B "$BRANCH" origin/master + BRANCH_EXISTS="1" + fi # TODO: replace with `brew typecheck` cd "$GITHUB_WORKSPACE/Library/Homebrew" @@ -49,6 +58,9 @@ jobs: git add "$GITHUB_WORKSPACE/Library/Homebrew/sorbet" git commit -m "sorbet: update RBI files using Tapioca." -m "Autogenerated by [a scheduled GitHub Action](https://github.com/Homebrew/brew/blob/master/.github/workflows/tapioca.yml)." echo "::set-output name=committed::true" + if [ -n "$BRANCH_EXISTS" ]; then + echo "::set-output name=pull_request::true" + fi fi - name: Push commits @@ -56,11 +68,11 @@ jobs: uses: Homebrew/actions/git-try-push@master with: token: ${{ secrets.HOMEBREW_GITHUB_API_TOKEN }} - branch: tapioca-update + branch: ${{ steps.update.outputs.branch }} force: true - name: Open a pull request - if: steps.update.outputs.committed == 'true' + if: steps.update.outputs.pull_request == 'true' run: hub pull-request --no-edit env: GITHUB_TOKEN: ${{ secrets.HOMEBREW_GITHUB_API_TOKEN }}