Continuous integration environment

Travis is our current CI/CD system.

PlanetaryImager build page is here: https://travis-ci.org/GuLinux/PlanetaryImager.

CI Settings file and docker images

The CI settings file .travis.yml should not be edited manually.

There's a python script that manages both building the docker images for the build system and also generates .travis.yml using whatever images are available.

See the Creating Binary Packages section for more information.

Development Workflow

Planetary Imager master branch is protected, which means development is done into feature branches, and commits into master are only done only via Pull Requests on github.

Reviews are not enforced, which means anyone can merge his/her own PR at any given time, with the only condition that builds on Travis must be passing.

Build and deployment conditions

Commits on feature branches are not built by default.

Builds are triggered only for commits on master (meaning when a PR is merged) or when a PR is requested.

Deployments are triggered only for commits on master. Each deployment will automatically create a new release in Github Releases page, with the name having the following format:

${release_number}_${current_date}_ci${travis_build_number}

The build artifacts will follow the same pattern:

PlanetaryImager-${release_version}-${os_name_and_version}

For instance:

PlanetaryImager-0.7.70_20190604_ci103-ubuntu-16.04-x86_64.deb
PlanetaryImager-0.7.70_20190604_ci103-MacOSX-x86_64.dmg
PlanetaryImager-0.7.70_20190604_ci103-fedora-29-x86_64.rpm
PlanetaryImager-0.7.70_20190604_ci103-Windows-x86_64-x86_64.zip

Commit message triggers