Uploaded image for project: 'IGB'
  1. IGB
  2. IGBF-1993

Customize settings.xml in igb-maven-install4j Docker image

    Details

    • Type: Improvement
    • Status: Closed (View Workflow)
    • Priority: Major
    • Resolution: Done
    • Affects Version/s: None
    • Fix Version/s: None
    • Labels:

      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

            Activity

            ann.loraine Ann Loraine created issue -
            ann.loraine Ann Loraine made changes -
            Field Original Value New Value
            Epic Link IGBF-1531 [ 17617 ]
            ann.loraine Ann Loraine made changes -
            Rank Ranked higher
            ann.loraine Ann Loraine made changes -
            Assignee Ann Loraine [ aloraine ]
            ann.loraine Ann Loraine made changes -
            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 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:

            * https://stackoverflow.com/questions/28071697/is-it-possible-to-pass-a-password-in-maven-deploy-in-the-command-line/

            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:
            * https://bitbucket.org/lorainelab/integrated-genome-browser-docker/src/master/

            Loraine Lab Docker hub image
            * https://cloud.docker.com/u/lorainelab/repository/docker/lorainelab/igb-maven-install4j

            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.

            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:

            * https://stackoverflow.com/questions/28071697/is-it-possible-to-pass-a-password-in-maven-deploy-in-the-command-line/

            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:
            * https://bitbucket.org/lorainelab/integrated-genome-browser-docker/src/master/

            Loraine Lab Docker hub image
            * https://cloud.docker.com/u/lorainelab/repository/docker/lorainelab/igb-maven-install4j

            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.

            ann.loraine Ann Loraine made changes -
            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:

            * https://stackoverflow.com/questions/28071697/is-it-possible-to-pass-a-password-in-maven-deploy-in-the-command-line/

            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:
            * https://bitbucket.org/lorainelab/integrated-genome-browser-docker/src/master/

            Loraine Lab Docker hub image
            * https://cloud.docker.com/u/lorainelab/repository/docker/lorainelab/igb-maven-install4j

            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.

            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:

            * https://stackoverflow.com/questions/28071697/is-it-possible-to-pass-a-password-in-maven-deploy-in-the-command-line/

            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:
            * https://bitbucket.org/lorainelab/integrated-genome-browser-docker/src/master/

            Loraine Lab Docker hub image
            * https://cloud.docker.com/u/lorainelab/repository/docker/lorainelab/igb-maven-install4j

            *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.

            ann.loraine Ann Loraine made changes -
            Summary Customize settings.xml in IGB build Docker image Customize settings.xml in igb-maven-install4j Docker image
            ann.loraine Ann Loraine made changes -
            Story Points 0.5 1
            Sprint Fall 2019 Sprint 4 [ 74 ] Fall 2019 Sprint 2 [ 73 ]
            ann.loraine Ann Loraine made changes -
            Rank Ranked higher
            ann.loraine Ann Loraine made changes -
            Link This issue blocks IGBF-1945 [ IGBF-1945 ]
            prutha Prutha Kulkarni (Inactive) made changes -
            Assignee Prutha Kulkarni [ prutha ]
            prutha Prutha Kulkarni (Inactive) made changes -
            Status Open [ 1 ] To-Do [ 10305 ]
            prutha Prutha Kulkarni (Inactive) made changes -
            Status To-Do [ 10305 ] In Progress [ 3 ]
            ann.loraine Ann Loraine made changes -
            Sprint Fall 2019 Sprint 2 [ 73 ] Fall 2019 Sprint 2, Fall 2019 Sprint 4 [ 73, 74 ]
            ann.loraine Ann Loraine made changes -
            Rank Ranked higher
            prutha Prutha Kulkarni (Inactive) made changes -
            Assignee Prutha Kulkarni [ prutha ]
            prutha Prutha Kulkarni (Inactive) made changes -
            Status In Progress [ 3 ] Needs 1st Level Review [ 10005 ]
            ann.loraine Ann Loraine made changes -
            Status Needs 1st Level Review [ 10005 ] First Level Review in Progress [ 10301 ]
            ann.loraine Ann Loraine made changes -
            Status First Level Review in Progress [ 10301 ] Ready for Pull Request [ 10304 ]
            ann.loraine Ann Loraine made changes -
            Assignee Prutha Kulkarni [ prutha ]
            prutha Prutha Kulkarni (Inactive) made changes -
            Status Ready for Pull Request [ 10304 ] Pull Request Submitted [ 10101 ]
            prutha Prutha Kulkarni (Inactive) made changes -
            Assignee Prutha Kulkarni [ prutha ]
            ann.loraine Ann Loraine made changes -
            Status Pull Request Submitted [ 10101 ] Reviewing Pull Request [ 10303 ]
            ann.loraine Ann Loraine made changes -
            Status Reviewing Pull Request [ 10303 ] Merged Needs Testing [ 10002 ]
            ann.loraine Ann Loraine made changes -
            Status Merged Needs Testing [ 10002 ] Post-merge Testing In Progress [ 10003 ]
            ann.loraine Ann Loraine made changes -
            Assignee Ann Loraine [ aloraine ]
            ann.loraine Ann Loraine made changes -
            Sprint Fall 2019 Sprint 2, Fall 2019 Sprint 3 [ 73, 74 ] Fall 2019 Sprint 2, Fall 2019 Sprint 3, Fall 2019 Sprint 4 [ 73, 74, 75 ]
            ann.loraine Ann Loraine made changes -
            Rank Ranked higher
            ann.loraine Ann Loraine made changes -
            Status Post-merge Testing In Progress [ 10003 ] Merged Needs Testing [ 10002 ]
            ann.loraine Ann Loraine made changes -
            Status Merged Needs Testing [ 10002 ] Post-merge Testing In Progress [ 10003 ]
            ann.loraine Ann Loraine made changes -
            Resolution Done [ 10000 ]
            Status Post-merge Testing In Progress [ 10003 ] Closed [ 6 ]
            ann.loraine Ann Loraine made changes -
            Assignee Ann Loraine [ aloraine ] Prutha Kulkarni [ prutha ]
            ann.loraine Ann Loraine made changes -
            Workflow Fall 2019 Workflow Update [ 20750 ] Revised Fall 2019 Workflow Update [ 22499 ]

              People

              • Assignee:
                prutha Prutha Kulkarni (Inactive)
                Reporter:
                ann.loraine Ann Loraine
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: