Details
-
Type: Improvement
-
Status: Closed (View Workflow)
-
Priority: Major
-
Resolution: Done
-
Affects Version/s: None
-
Fix Version/s: None
-
Labels:
-
Story Points:1
-
Epic Link:
-
Sprint:Fall 2019 Sprint 2, Fall 2019 Sprint 3, Fall 4 : 30 Sep to 11 Oct
Description
To release IGB and other project artifacts to our Nexus maven repository, the release engineer (Dr. Loraine) manually runs "mvn deploy", which builds the artifacts and uploads them Nexus.
This works OK so far, but there are some problems:
- The build environment that gets used depends on whatever JRE or maven version that the release engineer has installed on their computer.
- Write credentials for the Nexus maven repository have to be stored locally in the user's mvn settings.xml file.
- The release engineer has to remember to deploy new artifacts.
- The current process is manual. Mistakes are easy to make.
Solution:
We are already building artifacts using bitbucket pipelines. Let's enhance these pipelines to include an optional "deploy" step that uploads to our nexus repository.
To do this, we need to customize the Docker image we created for building Java projects. See:
Following the suggestion of Robert Scholte (see above link), we will add variables for Nexus user name and password to the settings file.
Once that is done, we'll configure the bitbucket repository with repository environment variables and reference these in the maven build command.
As a first step, we need to update the mvn settings in the Docker image we use for building IGB (and other java projects).
Links:
repo with Docker file, which will need to be edited:
Loraine Lab Docker hub image
Requirements:
- Each Docker image requires a tag. The latest image is tagged with "jre-1.8.0_212". Tag the new Docker image with "jre-1.8.0_212-mvn-deploy". This ensures that you can deploy the new image without disrupting existing build pipelines, which are all referencing the image tagged with jre-1.8.0_212.
Questions:
- Where should the settings.xml file reside in the Docker image? This can be a user-level or system-level file. Which should this be?
- Are there any maven commands that allow modifying settings? If yes, this could simplify the customization process.
Attachments
Issue Links
- blocks
-
IGBF-1945 Enable Genoviz SDK to be deployed to nexus from bitbucket pipelines
- Closed
Note to implementer: