From 83255527f3852bda723e658c4eb77cdebec50b70 Mon Sep 17 00:00:00 2001 From: nandahkrishna Date: Thu, 18 Feb 2021 12:38:57 +0530 Subject: [PATCH] Add workflow to automate manpage updates --- .github/workflows/update-manpage.yml | 75 ++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 .github/workflows/update-manpage.yml diff --git a/.github/workflows/update-manpage.yml b/.github/workflows/update-manpage.yml new file mode 100644 index 0000000000000..566d53146135d --- /dev/null +++ b/.github/workflows/update-manpage.yml @@ -0,0 +1,75 @@ +name: Update manpage and completions + +on: + push: + paths: + - .github/workflows/update-manpage.yml + - README.md + - Library/Homebrew/cmd/** + - Library/Homebrew/dev-cmd/** + - Library/Homebrew/completions/** + - Library/Homebrew/manpages/** + - Library/Homebrew/cli/parser.rb + - Library/Homebrew/env_config.rb + branches: + - master + schedule: + - cron: "0 0 * * *" + workflow_dispatch: + +jobs: + update-manpage: + runs-on: ubuntu-latest + if: github.repository == 'Homebrew/brew' + steps: + - name: Setup Homebrew + uses: Homebrew/actions/setup-homebrew@master + + - name: Configure Git user + uses: Homebrew/actions/git-user-config@master + with: + username: BrewTestBot + + - name: Update manpage and completions + id: update + run: | + git fetch origin + + BRANCH=update-manpage + 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 + + brew man + + if [ -n "$(git status --porcelain=v1 2>/dev/null)" ]; then + git add "$GITHUB_WORKSPACE/docs/Manpage.md" \ + "$GITHUB_WORKSPACE/manpages/brew.1" \ + "$GITHUB_WORKSPACE/completions" + git commit -m "Update manpage and completions." \ + -m "Autogenerated by the [update-manpage](https://github.com/Homebrew/brew/blob/HEAD/.github/workflows/update-manpage.yml) workflow." + echo "::set-output name=committed::true" + if [ -n "$BRANCH_EXISTS" ]; then + echo "::set-output name=pull_request::true" + fi + fi + + - name: Push commits + if: steps.update.outputs.committed == 'true' + uses: Homebrew/actions/git-try-push@master + with: + token: ${{ secrets.HOMEBREW_GITHUB_API_TOKEN }} + branch: ${{ steps.update.outputs.branch }} + force: true + + - name: Open a pull request + if: steps.update.outputs.pull_request == 'true' + run: hub pull-request --no-edit + env: + GITHUB_TOKEN: ${{ secrets.HOMEBREW_GITHUB_API_TOKEN }}