From 6ded0fa7d82a42511ee7ccd727b29decfc0edfb9 Mon Sep 17 00:00:00 2001 From: Julio Estrada Date: Mon, 11 Nov 2024 14:55:03 -0500 Subject: [PATCH] gha: enhance workflow with permissions, Python setup, and PR automation --- .github/workflows/update-website-v2.yml | 51 ++++++++++++++++++------- .pre-commit-config.yaml | 9 +++++ 2 files changed, 46 insertions(+), 14 deletions(-) create mode 100644 .pre-commit-config.yaml diff --git a/.github/workflows/update-website-v2.yml b/.github/workflows/update-website-v2.yml index 6a28768..35cd14b 100644 --- a/.github/workflows/update-website-v2.yml +++ b/.github/workflows/update-website-v2.yml @@ -6,42 +6,65 @@ on: paths: - 'boostlook.css' +permissions: + pull-requests: write + jobs: update-css: runs-on: ubuntu-latest steps: - name: Checkout boostlook repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 + with: + repository: boostorg/boostlook - name: Checkout website-v2 repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: repository: boostorg/website-v2 ref: develop path: website-v2 token: ${{ secrets.WEBSITE_V2_PAT }} + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: '3.11' + - name: Copy boostlook.css to website-v2 run: | cp boostlook.css website-v2/static/css/boostlook.css - - name: Commit and push changes to a new branch + - name: Install pre-commit + if: success() + run: | + pip install pre-commit + + - name: Run pre-commit hooks on boostlook.css + if: success() working-directory: website-v2 + run: | + pre-commit run --files static/css/boostlook.css + continue-on-error: false + + - name: Commit and push changes to a new branch + if: success() + working-directory: website-v2 + env: + GH_TOKEN: ${{ secrets.WEBSITE_V2_PAT }} run: | git config user.name "${{ github.actor }}" git config user.email "${{ github.actor }}@users.noreply.github.com" git add static/css/boostlook.css if ! git diff-index --quiet HEAD; then git commit -m "Update boostlook.css from boostlook repository" - branch_name="update-boostlook-css-$(date +%Y%m%d%H%M%S)" - git checkout -b $branch_name - git push origin $branch_name + branch_name="update-boostlook-css-$(date +'%Y%m%d%H%M%S')" + git checkout -b "$branch_name" + git push origin "$branch_name" + gh pr create --title "Update boostlook.css from boostlook repository" \ + --body "Automated PR to update boostlook.css" \ + --base develop \ + --head "$branch_name" + else + echo "No changes to commit. Skipping PR creation." fi - - - name: Create a pull request - working-directory: website-v2 - run: | - gh pr create --title "Update boostlook.css from boostlook repository" \ - --body "Automated PR to update boostlook.css" \ - --base develop \ - --head $branch_name \ No newline at end of file diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 0000000..0618f1d --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,9 @@ +repos: +- repo: https://github.com/pre-commit/pre-commit-hooks + rev: v2.3.0 + hooks: + - id: check-case-conflict + - id: check-merge-conflict + - id: check-yaml + - id: end-of-file-fixer + - id: trailing-whitespace