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

[ENH] - Automated Release Checklist Process via GitHub Actions #2747

Open
viniciusdc opened this issue Sep 27, 2024 · 1 comment
Open

[ENH] - Automated Release Checklist Process via GitHub Actions #2747

viniciusdc opened this issue Sep 27, 2024 · 1 comment

Comments

@viniciusdc
Copy link
Contributor

viniciusdc commented Sep 27, 2024

Feature description

The idea would be to introduce an automated release checklist workflow on Github actions to streamline our release process and minimize manual errors. The main goal is for a maintainer responsible for the release to open the release checklist issue (template), which would then trigger a custom action (whose trigger only runs on such issues) that would:

  • Run a local nebari deployment initially to execute all the steps in the list sequentially and also would keep track of these updates on a GitHub comment as part of the original issue (similar to how Netfly does or conda-forge's bot)
  • Once all local testing is completed, it could also perform the cloud testing for us, though a maintainer would need to finalize that;
  • We can also test the nebari upgrade command as part of the pipeline

If any step fails, maintainers will receive prompt notifications within the issue thread for further investigation. We can utilize the existing nebari-sensei account for this purpose, enhancing our confidence in each release and reducing friction when creating release candidates (RCs).

Here is a sample workflow configuration:

name: Automatic Release Checklist

on:
  issues:
    types: [opened]

jobs:
  release-checklist:
    runs-on: ubuntu-latest
    if: |
      github.event_name == 'issues' && 
      contains(github.event.issue.labels.*.name, 'release-checklist')

    steps:
      - name: Checkout Repository
        uses: actions/checkout@v4

      - name: Nebar setup commands (env, init, etc)

      - name: Run Deployment
        run: |
        continue-on-error: true

      - name: Run Upgrade Tests
        run: |
          # Command to test upgrades
        continue-on-error: true

      - name: Update Issue with Results
        uses: actions/github-script@v6
        with:
          script: |
            const issue_number = context.issue.number;
            // Fetch and parse the results of each step
            // Update the issue checklist items based on results
            // Post comments for any failures

This workflow can extend the proposed changes in issues #2701 and #1883 by creating a more comprehensive upgrade testing path as part of our release process and automating these steps.

Value and/or benefit

This workflow ensures consistency, enhances reliability and reduces friction when cutting release candidates (RCs).,

Anything else?

No response

@viniciusdc
Copy link
Contributor Author

I am not entirely sure on the conditional for the action itself, but the main idea would be to control the action execution using issue labels.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: New 🚦
Development

No branches or pull requests

1 participant