From bbd21bc801cfd8b9afded2f073a8eb1492ea50bb Mon Sep 17 00:00:00 2001 From: Rachael Sewell Date: Fri, 30 Apr 2021 09:46:37 -0700 Subject: [PATCH] add workflow to run script/update-enterprise-dates.js weekly (#19075) --- .github/workflows/enterprise-dates.yml | 72 ++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 .github/workflows/enterprise-dates.yml diff --git a/.github/workflows/enterprise-dates.yml b/.github/workflows/enterprise-dates.yml new file mode 100644 index 0000000000..e1c6f44e0e --- /dev/null +++ b/.github/workflows/enterprise-dates.yml @@ -0,0 +1,72 @@ +name: Enterprise date updater + +# **What it does**: Runs on a schedule to update lib/enterprise-dates.json. +# **Why we have it**: The lib/enterprise-dates.json file needs to be up-to-date +# for the .github/workflows/open-enterprise-issue.yml workflow and the +# tests/content/algolia-search.js test. +# **Who does it impact**: Docs engineering, docs content. + +on: + workflow_dispatch: + schedule: + - cron: '39 2 * * 2' # At 02:39 on Tuesday + +# **IMPORTANT:** Do not change the FREEZE environment variable set here! +# This workflow runs on a recurring basis. To temporarily disable it (e.g., +# during a docs deployment freeze), add an Actions Secret to the repo settings +# called `FREEZE` with a value of `true`. To re-enable updates, simply +# delete that Secret from the repo settings. The environment variable here +# will duplicate that Secret's value for later evaluation. +env: + FREEZE: ${{ secrets.FREEZE }} + +jobs: + open_enterprise_issue: + name: Enterprise date updater + if: github.repository == 'github/docs-internal' + runs-on: ubuntu-latest + steps: + - if: ${{ env.FREEZE == 'true' }} + run: | + echo 'The repo is currently frozen! Exiting this workflow.' + exit 1 # prevents further steps from running + - name: Run script/update-enterprise-dates.js + run: | + script/update-enterprise-dates.js + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: Create pull request + id: create-pull-request + uses: peter-evans/create-pull-request@8c603dbb04b917a9fc2dd991dc54fef54b640b43 + with: + # need to use a token with repo and workflow scopes for this step + token: ${{ secrets.GITHUB_TOKEN }} + commit-message: '๐Ÿค– ran script/update-enterprise-dates.js' + title: ๐Ÿค– lib/enterprise-dates.json update + body: + "Hello! The GitHub Enterprise Server release dates have changed.\n\n + If CI passes, this PR will be auto-merged. :green_heart:\n\n + If CI does not pass or other problems arise, contact #docs-engineering on slack.\n\nThis PR was ๐Ÿค–-crafted by `.github/workflows/enterprise-dates.yml`. ๐Ÿงถ" + labels: automerge,autoupdate + branch: enterprise-server-dates-update + delete-branch: true + - if: ${{ failure() }} + name: Delete remote branch (if previous steps failed) + uses: dawidd6/action-delete-branch@47743101a121ad657031e6704086271ca81b1911 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + branches: enterprise-server-dates-update + - if: ${{ steps.create-pull-request.outputs.pull-request-number }} + name: Approve + uses: juliangruber/approve-pull-request-action@c530832d4d346c597332e20e03605aa94fa150a8 + with: + github-token: ${{ secrets.DOCUBOT_REPO_PAT }} + number: ${{ steps.create-pull-request.outputs.pull-request-number }} + - name: Send Slack notification if workflow fails + uses: someimportantcompany/github-actions-slack-message@0b470c14b39da4260ed9e3f9a4f1298a74ccdefd + if: failure() + with: + channel: ${{ secrets.DOCS_ALERTS_SLACK_CHANNEL_ID }} + bot-token: ${{ secrets.SLACK_DOCS_BOT_TOKEN }} + color: failure + text: The last enterprise-dates run for ${{github.repository}} failed. See https://github.com/github/${{github.repository}}/actions/workflows/enterprise-dates.yml