From 1453c44f7f6a9dd73650f871b3c05b375d0eddfe Mon Sep 17 00:00:00 2001 From: Matthew Sevey Date: Mon, 1 Apr 2024 09:17:33 -0400 Subject: [PATCH 1/2] feat(ci): add workflow for creating an EPIC issue for release tracking --- .../reusable_release_tracking_epic.yml | 117 ++++++++++++++++++ 1 file changed, 117 insertions(+) create mode 100644 .github/workflows/reusable_release_tracking_epic.yml diff --git a/.github/workflows/reusable_release_tracking_epic.yml b/.github/workflows/reusable_release_tracking_epic.yml new file mode 100644 index 0000000..8045de3 --- /dev/null +++ b/.github/workflows/reusable_release_tracking_epic.yml @@ -0,0 +1,117 @@ +name: Create Release Tracking Epic Issue + +# This workflow creates an EPIC issue for tracking the deployment of a release +# to testnets and mainnet. +# +# Example workflow to be used in repository calling this workflow. +# This would trigger on published releases +# +# name: Release Trigger Issue +# on: +# release: +# types: [published] +# jobs: +# trigger_issue: +# uses: celestiaorg/.github/.github/workflows/reusable_release_tracking_epic.yml +# secrets: inherit +# with: +# release-repo: ${{ github.repository }} +# release-version: ${{ github.event.release.tag_name }} +# + +on: + # workflow_dispatch is used to manually test this workflow + workflow_dispatch: + inputs: + release-repo: + required: true + type: string + description: "Which repo is triggering this release?" + release-version: + required: true + type: string + description: "What is the version triggering this release?" + # workflow_call is the primary trigger to be used for this workflow + workflow_call: + inputs: + release-repo: + required: true + type: string + description: "Which repo is triggering this release?" + release-version: + required: true + type: string + description: "What is the version triggering this release?" + +jobs: + create_issue: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - uses: dacbd/create-issue-action@v2 + id: create-issue + with: + # This is an org level secret. No changes needed at the repo level + token: ${{ secrets.CREATE_RELEASE_EPIC }} + owner: celestiaorg + # Creating the tracking issue in devops as devops is responsible for + # updating the networks + repo: devops + # Currently unable to assign a group to an issue, so assigning MSevey + # as issue owner. + assignees: MSevey + # Title and body and free to change based on the team's needs + title: ${{inputs.release-repo}} ${{inputs.release-version}} Release Deployment Tracking + body: | + ## Release Checklist + ```[tasklist] + ### Pre-work + - [ ] Confirm release tested on Robusta + - [ ] App and Node compatibility confirmed + - [ ] Release notes reviewed + ``` + ```[tasklist] + ### Stage 1: Arabica + - [ ] Prepare deployment to Arabica + - [ ] Prepare announcement for Arabica + - [ ] Announce release for Arabica + - [ ] Deploy to Arabica + - [ ] Verify release on Arabica + - [ ] Docs updated for release for Arabica + ``` + ```[tasklist] + ### Stage 2: Mocha + - [ ] Prepare deployment to Mocha + - [ ] Prepare announcement for Mocha + - [ ] Announce release for Mocha + - [ ] Deploy to Mocha + - [ ] Verify release on Mocha + - [ ] Docs updated for release for Mocha + ``` + ```[tasklist] + ### Stage 3: Mainnet + - [ ] Prepare deployment for mainnet + - [ ] Prepare announcement for mainnet + - [ ] Announce release for mainnet + - [ ] Deploy to mainnet + - [ ] Verify release on mainnet + - [ ] Docs updated for release for mainnet + ``` + cc @celestiaorg/devops + + - uses: ravsamhq/notify-slack-action@v2 + with: + status: ${{ job.status }} + token: ${{ secrets.GITHUB_TOKEN }} + notification_title: "New Release for Deployment" + message_format: "{emoji} *{workflow}* {status_message} in <{repo_url}|{repo}>" + footer: "Linked Issue <${{steps.create-issue.outputs.html_url}}>" + # This is the devops user group + mention_groups: "S04MZ965WQZ" + env: + # This is an org level secret and is currently set to #releases in + # slack + SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} From 27fd977e0b1f3d66fc334650b217dbca8e3dfe39 Mon Sep 17 00:00:00 2001 From: Matthew Sevey Date: Tue, 2 Apr 2024 10:20:13 -0400 Subject: [PATCH 2/2] chore: address pr comments --- ...l => reusable_create_release_tracking_epic.yml} | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) rename .github/workflows/{reusable_release_tracking_epic.yml => reusable_create_release_tracking_epic.yml} (94%) diff --git a/.github/workflows/reusable_release_tracking_epic.yml b/.github/workflows/reusable_create_release_tracking_epic.yml similarity index 94% rename from .github/workflows/reusable_release_tracking_epic.yml rename to .github/workflows/reusable_create_release_tracking_epic.yml index 8045de3..5f926ed 100644 --- a/.github/workflows/reusable_release_tracking_epic.yml +++ b/.github/workflows/reusable_create_release_tracking_epic.yml @@ -1,7 +1,7 @@ -name: Create Release Tracking Epic Issue +name: Create Release Tracking Epic -# This workflow creates an EPIC issue for tracking the deployment of a release -# to testnets and mainnet. +# This workflow creates an EPIC for tracking the deployment of a release to +# testnets and mainnet. # # Example workflow to be used in repository calling this workflow. # This would trigger on published releases @@ -57,7 +57,7 @@ jobs: # This is an org level secret. No changes needed at the repo level token: ${{ secrets.CREATE_RELEASE_EPIC }} owner: celestiaorg - # Creating the tracking issue in devops as devops is responsible for + # Create the tracking issue in devops as devops is responsible for # updating the networks repo: devops # Currently unable to assign a group to an issue, so assigning MSevey @@ -77,28 +77,28 @@ jobs: ### Stage 1: Arabica - [ ] Prepare deployment to Arabica - [ ] Prepare announcement for Arabica - - [ ] Announce release for Arabica - [ ] Deploy to Arabica - [ ] Verify release on Arabica - [ ] Docs updated for release for Arabica + - [ ] Announce release for Arabica ``` ```[tasklist] ### Stage 2: Mocha - [ ] Prepare deployment to Mocha - [ ] Prepare announcement for Mocha - - [ ] Announce release for Mocha - [ ] Deploy to Mocha - [ ] Verify release on Mocha - [ ] Docs updated for release for Mocha + - [ ] Announce release for Mocha ``` ```[tasklist] ### Stage 3: Mainnet - [ ] Prepare deployment for mainnet - [ ] Prepare announcement for mainnet - - [ ] Announce release for mainnet - [ ] Deploy to mainnet - [ ] Verify release on mainnet - [ ] Docs updated for release for mainnet + - [ ] Announce release for mainnet ``` cc @celestiaorg/devops