Continuous Integration: Developer

From Gcube Wiki
Revision as of 16:50, 11 November 2019 by Manuele.simi (Talk | contribs) (Tagging Master)

Jump to: navigation, search

POM version on master

Technically, the master branch must be releasable at any time.

When a gCube release is declared open by the Release Manager and until it is declared close, the artifact version in the POM on master MUST NOT have the -SNAPSHOT suffix.

Dependencies' version

At release time, the dependencies listed on the pom must be in one of the following formats:

1) a fixed version (without the -SNAPSHOT qualifier). E.g.:

  • 1.0
  • 1.1
  • ...

OR

2) a range with the lower limit without the SNAPSHOT qualifier. E.g.:

  • [1.0, 1.3]
  • [1.0, 1.3-SNAPSHOT)
  • [1.0, 2.0]
  • [1.0, 2.0-SNAPSHOT)
  • ...

The reason behind this type of range is to make sure snapshots are not required at release time. The build of the project would otherwise fail since the gcube-snasphots maven repository is obviously not visible during the release build.

A developer can use the dependencies' versions that best fit the development activity (even if it's suggested to always keep these formats to avoid a continuous switching) but must then comply to the formats on the master branch at release time.

Tagging Master

When the gCube release is declared close by the Release Manager and if the release includes a new version of a component, the developer must tag the master branch at the commit ID reported in the build report.

The commit is tagged twice:

  • v<component version>
  • r<Gcube Release number>

For example:

Git-release-tags.png

Creating a Release from the Tag

See Released Tags.

Back to the CI guide.