Buddy

JReleaser can be configured with Buddy.

If you’re already building with either Maven or Gradle then you might use the JReleaser Maven Plugin or the JReleaser Gradle Plugin instead.

Buddy offers two choices for configuring a pipeline:

  • a rich UI

  • YAML

You may run JReleaser as a script or as a Docker image.

You may use latest to pull the latest stable release or early-access to pull the latest snapshot.
You must configure environment variables matching the expected secrets in your pipeline.

Script

buddy.yml
- pipeline: "Build with Script"
  # manual trigger
  on: "CLICK"
  refs:
  - "refs/heads/main"
  priority: "NORMAL"
  fail_on_prepare_env_warning: true
  actions:
  - action: "Build"
    type: "BUILD"
    working_directory: "/buddy/<project-name>"
    docker_image_name: "library/maven"
    docker_image_tag: "latest"
    execute_commands:
    - "./mvnw -B verify"
    cached_dirs:
    - "/root/.m2/repository"
    volume_mappings:
    - "/:/buddy/<project-name>"
    shell: "BASH"

  - action: "JReleaser"
    type: "BUILD"
    disabled: true
    working_directory: "/buddy/<project-name>"
    docker_image_name: "library/ubuntu"
    docker_image_tag: "18.04"
    execute_commands:
    - "curl -sL https://git.io/get-jreleaser > get_jreleaser.java"
    - "java get_jreleaser.java"
    - "java -jar jreleaser-cli.jar --version"
    - "java -jar jreleaser-cli.jar full-release"
    setup_commands:
    # Install curl & Java 11
    - "apt-get update && apt-get -y install curl openjdk-11-jdk"
    volume_mappings:
    - "/:/buddy/<project-name>"
    shell: "BASH"

Docker

buddy.yml
- pipeline: "Build with Docker"
  # manual trigger
  on: "CLICK"
  refs:
  - "refs/heads/main"
  priority: "NORMAL"
  fail_on_prepare_env_warning: true
  actions:
  - action: "Build"
    type: "BUILD"
    working_directory: "/buddy/<project-name>"
    docker_image_name: "library/maven"
    docker_image_tag: "latest"
    execute_commands:
    - "./mvnw -B verify"
    cached_dirs:
    - "/root/.m2/repository"
    volume_mappings:
    - "/:/buddy/<project-name>"
    shell: "BASH"

  - action: "JReleaser"
    type: "RUN_DOCKER_CONTAINER"
    docker_image_name: "jreleaser/jreleaser-alpine"
    docker_image_tag: "latest"
    inline_commands: "release"
    volume_mappings:
    # Map sources into '/workspace'
    - "/:/workspace"
    shell: "SH"