Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(ci): add workflow for creating an EPIC issue for release tracking #101

Merged
merged 2 commits into from
Apr 3, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
117 changes: 117 additions & 0 deletions .github/workflows/reusable_create_release_tracking_epic.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,117 @@
name: Create Release Tracking Epic

# 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
#
# 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
# 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
# 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
- [ ] 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
- [ ] 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
- [ ] Deploy to mainnet
- [ ] Verify release on mainnet
- [ ] Docs updated for release for mainnet
- [ ] Announce 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 }}
Loading