Skip to content

Repository files navigation

Bootique Release Automation

Bootique release automation tools prototype.

Prerequisites

  1. Create file release-manager.yml with config. Template of this file is release-manager-sample.yml.

  2. Generate your personal access token on GitHub. Set gitHubToken variable in config file.

  3. Install GPG Suite

    • Generate your GPG key.
    • Add key to keychain to prevent password request for every module.
  4. Create folder to have local copy of releasing project. Set basePath variable in config file.

  5. Setup an SSH key to access repositories on the GitHub. It is used both for cloning and for the commits and tags release:prepare pushes — the released modules declare scm:git:ssh://git@github.com/..., so there is no HTTPS path through a release. Verify with:

    ssh -T git@github.com

    If the key has a passphrase, make sure an ssh-agent holds it, since the tool runs git non-interactively.

    Repositories cloned by an older version of this tool have an HTTPS origin and keep using it. To convert them, run once in your basePath:

    for d in */; do
      git -C "$d" remote set-url origin "git@github.com:bootique/${d%/}.git"
    done
  6. Create .m2/settings.xml and add the Central repo (sonatype-central) credentials. You could get your Sonatype API key at the Central website:

    <?xml version="1.0" encoding="UTF-8"?>
    <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
     <servers>
         <server>
             <id>sonatype-central</id>
             <username>API_key_name</username>
             <password>API_key_password</password>
         </server>
     </servers>
    </settings>
  7. On the newer MacOS versions you may need ssh-askpass:

    brew tap theseal/ssh-askpass
    brew install ssh-askpass
    sudo ln -s /usr/local/bin/ssh-askpass /usr/X11R6/bin/ssh-askpass
  8. You may need to tweak release.sh and maven.sh scripts on MacOS to set proper JDK version

Usage

$ mvn clean install
$ java --add-opens java.base/sun.net.www.protocol.https=ALL-UNNAMED --add-opens java.base/java.net=ALL-UNNAMED -jar target/release-1.0-SNAPSHOT.jar

NOTE: --add-opens required for the Jersey Client to be able to send PATCH request

Then just go to http://127.0.0.1:9999/ui/

About

Bootique release tools

Resources

Stars

2 stars

Watchers

4 watching

Forks

Releases

Packages

Used by

Contributors

Languages