Skip to content

Continuous Integration

timazet edited this page Dec 22, 2020 · 3 revisions

Continuous Integration

Table of Contents

Overview

Continuous Integration (CI) is established with a help of Github Actions.

Currently, it is represented by the following workflows:

Each workflow is represented as a set of chained jobs where each job is represented as a set of chained steps.
Each step can be expressed as a predefined action with extension points from Github Marketplace or as a self-created action from the same repository (see docs for more information).

Release activities

Release preparation

In order to prepare a release you should perform the following actions:

  1. Adjust build script (pom.xml) by applying the correct final version (without -SNAPSHOT postfix);
  2. Aggregate and update release notes;
  3. Update examples and references using the new final version if it's required;
  4. Commit changes and push them to the master branch.

As a reaction to pushed changes to master branch Parso CI workflow will be executed and the following artifacts will be available in case of successful completion:

  • Staging repository with a name like comepamparso-NNNN is created and moved to a Closed state - check here
  • Github release in a Draft state is created - check here

In case if Parso CI workflow has an unsuccessful completion then the following activities should be performed:

  1. Logs of Parso CI workflow and staging repository with a name like comepamparso-NNNN should be examined and the next steps to resolve issues should be identified;
  2. Staging repository with a name like comepamparso-NNNN as a result of workflow execution should be dropped if it's present;
  3. Github release in a Draft state as a result of workflow execution should be discarded if it's present.

Release process

In order to publish artifacts with a final version to Maven Central Repository and to publish a Github release for further references you should do the following actions after the Release preparation stage is completed:

  1. Review staging repository with a name like comepamparso-NNNN and if everything is OK then click on the Release button
    ATTENTION: it isn't possible to remove artifacts published to Maven Central Repository after clicking on the Release button, therefore be careful during the validation of artifacts' consistency;
  2. Add a description to a Github release in a Draft state and then click on the Publish release button.

Post-release activities

Before merging any pull request with new functionality or bug fixes you should do the following actions after the Release process stage is completed:

  1. Increment version according to Semantic Versioning and adjust build script (pom.xml) with incremented version adding -SNAPSHOT postfix to it;
  2. Commit changes and push.

Artifacts with a non-final version (with -SNAPSHOT prefix) are published to the snapshot repository on each commit to the master branch - https://oss.sonatype.org/content/repositories/snapshots.

Clone this wiki locally