From 5993fb1e6de6ca22ba9d40f888655eac7ab87b56 Mon Sep 17 00:00:00 2001 From: Althea Denlinger Date: Tue, 14 Jan 2025 10:39:54 -0800 Subject: [PATCH] Add pre-commit autoupdate workflow --- .../workflows/pre_commit_update_workflow.yml | 66 +++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 .github/workflows/pre_commit_update_workflow.yml diff --git a/.github/workflows/pre_commit_update_workflow.yml b/.github/workflows/pre_commit_update_workflow.yml new file mode 100644 index 000000000..560565ba4 --- /dev/null +++ b/.github/workflows/pre_commit_update_workflow.yml @@ -0,0 +1,66 @@ +name: Pre-commit auto-update + +on: + schedule: + # Cron syntax: + # 1. Entry: Minute when the process will be started [0-60] + # 2. Entry: Hour when the process will be started [0-23] + # 3. Entry: Day of the month when the process will be started [1-28/29/30/31] + # 4. Entry: Month of the year when the process will be started [1-12] + # 5. Entry: Weekday when the process will be started [0-6] [0 is Sunday] + - cron: '0 8 * * 3' + +env: + UP_TO_DATE: false + +jobs: + auto-update: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: "3.10" + + - name: Install pre-commit + run: pip install pre-commit + + - name: Apply and commit updates + run: | + git clone https://github.com/E3SM-Project/polaris.git update-pre-commit-deps + cd update-pre-commit-deps + # Configure git using GitHub Actions credentials. + git config --local user.email "41898282+github-actions[bot]@users.noreply.github.com" + git config --local user.name "github-actions[bot]" + git checkout -b update-pre-commit-deps + pre-commit autoupdate + git add . + # The second command will fail if no changes were present, so we ignore it + git commit -m "Update pre-commit dependencies" || ( echo "UP_TO_DATE=true" >> "$GITHUB_ENV") + + - name: Push Changes + if: ${{ env.UP_TO_DATE == 'false' }} + uses: ad-m/github-push-action@master + with: + branch: update-pre-commit-deps + directory: update-pre-commit-deps + github_token: ${{ secrets.GITHUB_TOKEN }} + force: true + env: + GH_TOKEN: ${{ github.token }} + + - name: Make PR and add reviewers and labels + if: ${{ env.UP_TO_DATE == 'false' }} + run: | + cd update-pre-commit-deps + gh pr create \ + --title "Update pre-commit and its dependencies" \ + --body "This PR was auto-generated to update pre-commit and its dependencies." \ + --head update-pre-commit-deps \ + --reviewer altheaden,xylar \ + --label ci + env: + GH_TOKEN: ${{ github.token }} +