swisstopo / swissgeol-assets-suite

1 stars 0 forks source link

Feature 77: Improve Development Actions #84

Closed daniel-va closed 3 months ago

daniel-va commented 3 months ago

This feature has not been fully tested and should not be merged yet!

PR for #77.

The new build workflow defines the following automatic release process:

  1. When pushing to any branch, the code is tested, linted and type checked.
  2. If all these actions passed, when pushing to develop, the edge Docker images are built and pushed.
  3. If all these actions passed, when pushing to main, the edge Docker images are tagged as release-candidate.

The rewritten release workflow defines the following manual release process:

  1. The release-candidate Docker images are tagged as latest.

These workflows contain the following notable changes to their predecessors:

daniel-va commented 3 months ago

One point that I'm not yet decided on is how to handle/generate version numbers. The current live workflows use a three-part versioning system (i.e. X.X.X), generated using the following method:

The issue with different versions by release would be fixed in this PR, by only building the images once and then just adding new tags per release. However, since the PR replaces the existing workflows, it effectively "resets" the version's last number to 1.

Personally, I would move to a two-part versioning system (i.e. X.X), where the first number is always 1, which should only change if the application is ever fully rewritten or replaced. The second number should be an incrementing number starting at 1. If possible, I would only increment the second number on a prod release, instead of on each dev build, as it happens with the current system. This has the following advantages: