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

automated release process #297

Merged
merged 17 commits into from
Nov 6, 2024
Merged

automated release process #297

merged 17 commits into from
Nov 6, 2024

Conversation

gasparnagy
Copy link
Contributor

@gasparnagy gasparnagy commented Oct 16, 2024

🤔 What's changed?

The GitHub workflows are modified to allow automated releases for people having permission for it.

The protection is performed though the environment production_environment that requires manual approval and can be used only from main branch. This environment contains the nuget.org publish key as well.

In addition to publishing the packages to nuget.org, it also creates a GitHub release as well for each production (non-preview) release that is deployed.

Also the PR performs an automatic "version bump" and adds a new section to the CHANGELOG.md after publishing a production release. This is committed / pushed back to the repository.

The Git push is secured with a special deployment key that is registered to the project at https://github.com/reqnroll/Reqnroll/settings/keys. The private key (that is required to initiate the push) is stored as a secret in the environment production_environment.

⚡️ What's your motivation?

  • reduce release errors
  • reduce "bus factor"

🏷️ What kind of change is this?

  • 🏦 Refactoring/debt/DX (improvement to code design, tooling, etc. without changing behaviour)

♻️ Anything particular you want feedback on?

📋 Checklist:

  • I've changed the behaviour of the code
  • My change requires a change to the documentation.
    • I have updated the documentation accordingly.

This text was originally taken from the template of the Cucumber project, then edited by hand. You can modify the template here.

@gasparnagy gasparnagy self-assigned this Nov 5, 2024
@gasparnagy gasparnagy force-pushed the automated_release_process branch from 1c02d5c to 94e823b Compare November 6, 2024 09:35
@gasparnagy gasparnagy had a problem deploying to production_environment November 6, 2024 11:01 — with GitHub Actions Failure
@gasparnagy gasparnagy temporarily deployed to production_environment November 6, 2024 12:01 — with GitHub Actions Inactive
@gasparnagy gasparnagy had a problem deploying to production_environment November 6, 2024 12:47 — with GitHub Actions Failure
@gasparnagy gasparnagy temporarily deployed to production_environment November 6, 2024 13:07 — with GitHub Actions Inactive
@gasparnagy gasparnagy temporarily deployed to production_environment November 6, 2024 16:25 — with GitHub Actions Inactive
Revert "disable condition on release job for testing"

This reverts commit 2db30a5.

Revert "disable condition on release job steps for testing"

This reverts commit 9299289.

Revert "disable actual publishing for testing"

This reverts commit 2990d53.

# Conflicts:
#	.github/workflows/ci.yml
@gasparnagy gasparnagy marked this pull request as ready for review November 6, 2024 16:36
@gasparnagy gasparnagy requested a review from ajeckmans November 6, 2024 16:37
Copy link
Contributor

@ajeckmans ajeckmans left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I read through the pipeline and although it is a bit long with all of the scripts inside it is doable.
The documentation part makes sense, so it looks good to me :)

@gasparnagy gasparnagy merged commit 76c0315 into main Nov 6, 2024
5 checks passed
@gasparnagy gasparnagy deleted the automated_release_process branch November 6, 2024 16:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants