ome / devspace

Continuous integration tool for OME projects
18 stars 18 forks source link
continuous-integration devs docker jenkins omero

Actions Status

Getting started

Devspace is a Continuous Integration tool managed by Jenkins CI providing an automation framework that runs repeated jobs. The default deployment initializes a Jenkins CI master with a predefined set of jobs.

Running and maintaining Devspace requires brief understanding of:

Running Devspace requires access to SSH and Git configuration files used for fetching and pushing the Git repositories.

Devspace code depends on the following repositories:

Installation

The following instructions explain how to deploy a devspace on a Docker host.

Start and configure:

GitHub OAuth

You can optionally enable GitHub OAuth:

Note: if you are modifying an existing devspace you are advised to backup home/config.xml. If there are errors in the GitHub setup you can restore home/config.xml to return to the default authentication.

After the script has completed you can either leave it in place so it will override any manual changes on restart, or delete it and make changes through the Jenkins UI.

Job configurations

Job workflow

The default deployment initializes a Jenkins server with a predefined set of jobs.

The table below lists the job names, the Jenkins node labels and the associated docker they are associated with and a short description of the jobs.

Job name Name Description docker name
Trigger Runs all the following jobs in order
BIOFORMATS-push testintegration Merges all Bio-Formats PRs devspace-testintegration-1
BIOFORMATS-build testintegration Builds Bio-Formats components devspace-testintegration-1
BIOFORMATS-image testintegration Builds a Docker image of Bio-Formats devspace-docker-1
OMERO-push testintegration Merges all OMERO PRs devspace-testintegration-1
OMERO-build testintegration Builds OMERO artifacts (server, clients) devspace-testintegration-1
OMERO-server omero Deploys an OMERO.server devspace-omero-1
OMERO-web web Deploys an OMERO.web client devspace-web-1
OMERO-test-integration testintegration Runs the OMERO integration tests devspace-testintegration-1
OMERO-robot testintegration Runs the Robot tests devspace-testintegration-1
nginx nginx Reloads the nginx server devspace-nginx-1
OMERO-docs testintegration Builds the OMERO documentation devspace-testintegration-1

This means that by default the following repositories need to be forked to your GitHub account:

If you do not have some of the repositories forked, you will need to remove the jobs from the list of jobs to run either from the Trigger job configuration or directly from the Jenkins UI i.e. Trigger > Configure.

New jobs

It is recommended that new jobs should be defined using Jenkinsfile pipelines in the target repository as this makes it easier to maintain jobs. Most Jenkins Pipeline jobs can share the same configuration apart from the repository URL. If you do not require any special configuration use the TEMPLATE-pipeline-job-config.xml template by adding the job and parameters to pipeline-configs.yaml. Supported parameters are documented in that file.

The rename.py script will create the required job configurations from pipeline-configs.yaml as well as performing the renaming steps. If for some reason you want to create the new job without running rename.py you can just run createpipelinejobs.py.

Alternatively create a new job in the Jenkins web-interface in the usual way.

Default packages used

Name Version
Java openJDK 11-devel
Python 3.9
Ice 3.6
PostgreSQL 16
Nginx 1.24

Troubleshooting

See Troubleshooting

Upgrade

See Changelog

Run BioFormats jobs

To run the BioFormats testing the various readers on sample data, you will need to activate the a private job