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

Release Automation Process #9555

Merged
merged 21 commits into from
Mar 4, 2024

Conversation

offtherailz
Copy link
Member

@offtherailz offtherailz commented Oct 4, 2023

Description

This PR introduces release procedure automations for:

  • Create release branch
  • Prepare release
  • Create release
  • Post release

At the moment, we still rely on jenkins for :

  • Deploy on stable
  • Update docker

While we rely on github actions to build and publish artifacts (If we want to use the artifacts from jenkins, we can still re-upload them)

We can later automate docker stuff and updates to MapStoreExtension repository accordingly to finalize the automation

(the following examples are on my fork, of course the final operations have to be applied to the real repository)

Cut release branch

Lunching the Cut release branch workflow from github

screencast-github.com-2023.10.04-11_41_42.webm

At the end the branch will be created with the version fixed accordingly, and a PR will be sent to the master branch with the versions updates.

screencast-github.com-2023.10.04-12_23_55.webm

Prepare Release

The release process will

  • fix the versions of java packages
  • add changelog
  • commit and tag the release package with the proper version
  • create a PR for master for the changelog update.

This process have to be executed on the release branch (a check protect it to accidentally exceute on master).

Create release

This action creates effectively the relase. This has been separated from prepare-release in order to be able to lunch them separately (e.g. if something went wrong, we can fix and generate only the release).

After execution succeed, the release will be ready. You can run manually in draft with the binaries attached (only docker part missing).

You can in the meanwhile:

  • run the jenkins jobs to release production and do the release (including docker) and upate the link in the document.
  • do things for publishing MapStoreExtension (commit already tagged, so it is easy to refer it)
  • Link readthedocs

Post release

After the release, you can trigger the post release process to restore snapshots and increase package.json versions on the release branch.

Please check if the PR fulfills these requirements

What kind of change does this PR introduce? (check one with "x", remove the others)

  • Bugfix
  • Feature
  • Code style update (formatting, local variables)
  • Refactoring (no functional changes, no api changes)
  • Build related changes
  • CI related changes
  • Other... Please describe:

Issue

What is the current behavior?

#9001

What is the new behavior?

Breaking change

Does this PR introduce a breaking change? (check one with "x", remove the other)

  • Yes, and I documented them in migration notes
  • No

Other useful information

@offtherailz offtherailz added this to the 2024.01.00 milestone Oct 4, 2023
@offtherailz offtherailz self-assigned this Oct 4, 2023
@offtherailz offtherailz mentioned this pull request Oct 4, 2023
13 tasks
@offtherailz offtherailz marked this pull request as ready for review October 5, 2023 12:22
@offtherailz offtherailz marked this pull request as draft October 5, 2023 12:41
@tdipisa tdipisa linked an issue Oct 6, 2023 that may be closed by this pull request
11 tasks
@offtherailz offtherailz marked this pull request as ready for review October 31, 2023 15:51
@offtherailz offtherailz requested a review from tdipisa February 5, 2024 12:59
@tdipisa tdipisa requested a review from MV88 February 7, 2024 17:28
Copy link
Member

@tdipisa tdipisa left a comment

Choose a reason for hiding this comment

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

@MV88 this PR is ready for the final review the only missing part is the one generating the docker image for which we can continue using the jenkins for the moment. That part for the docker image will be included later with a dedicated PR.

We need someone familiar with the release process like you are for reviewing this and finally merge.

Copy link
Contributor

@MV88 MV88 left a comment

Choose a reason for hiding this comment

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

some comments here and there. maybe we can talk a bit @offtherailz ?

there is a wrong link inside release_steps.md which is the mapfish print link check if here

  • for mapfish-print check if here is present the version specified. Release procedure is specified in the Readme.md file of the project.

it points to http_proxy (line 18)

.github/ISSUE_TEMPLATE/release_steps.md Outdated Show resolved Hide resolved
.github/ISSUE_TEMPLATE/release_steps.md Outdated Show resolved Hide resolved
.github/ISSUE_TEMPLATE/release_steps.md Outdated Show resolved Hide resolved
.github/ISSUE_TEMPLATE/release_steps.md Outdated Show resolved Hide resolved
Here a flow chart that describes the process:

```mermaid
flowchart TD
Copy link
Contributor

Choose a reason for hiding this comment

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

image
does not seem to work

docs/developer-guide/release.md Outdated Show resolved Hide resolved
@tdipisa tdipisa merged commit 39e9019 into geosolutions-it:master Mar 4, 2024
6 checks passed
@ElenaGallo
Copy link
Contributor

@offtherailz please backport to stable branch. Thanks

@ElenaGallo ElenaGallo added the BackportNeeded Commits provided for an issue need to be backported to the milestone's stable branch label Mar 12, 2024
@offtherailz
Copy link
Member Author

the commit 39e9019 looks to be present in 2024.01.xx commits list

image

For some reason

@offtherailz offtherailz removed the BackportNeeded Commits provided for an issue need to be backported to the milestone's stable branch label Mar 12, 2024
offtherailz added a commit to offtherailz/MapStore2 that referenced this pull request Apr 10, 2024
* Add actions

* Updated workflows for deprecations and security

* Fixed changelog stuff

* renamed release workflow file

* Fixed concurrency

* Separated release steps

* Update for uniformity the scripts. Fixed wrong java modules set

* Fixed wrong version system in binary

* Fixed version update script

* Updated documentation. Last fixes

* Removed file committed in error

* Improved docs

* Improved docs

* Improved docs

* Minor fixes to doc

* Fixed release procedure missing paragraph

* Update procedure for linking latest stable doc

* Update release_steps.md

* Update .github/ISSUE_TEMPLATE/release_steps.md

* Apply suggestions from code review

Co-authored-by: Matteo V. <[email protected]>

---------

Co-authored-by: Matteo V. <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Automate release process
4 participants