By default, the repository will publish:

  • The api jar to the GitHub Packages’ Gradle Registry, to make it available to other aggregates. No other jars will be published, as these should be considered internal to the aggregate.
  • Each service’s Docker image to GitHub Packages’ Container Registry, to make it available for deployment.

    Note: Deployment of the Docker images to an environment is outside the scope of this tutorial.

Publishing jars

Jars are published by running the publish Gradle task:

./gradlew publish

This is executed as part of the CI GitHub workflow when code is pushed into the main branch.

Customising jar publishing

Publishing is configured in the Creek publishing build convention, which can be customised as needed. For example, if you wanted to publish jars to a different location.

Publishing Docker images

Docker images are published by running the pushAppImage Grade task, built using the com.bmuschko.docker-remote-api Gradle plugin:

./gradlew pushAppImage

Note: You must be authenticated with the GitHub Container Registry to push images. This is best left to the CI GitHub workflow.

Customising Docker image push

Takes for building and pushing Docker images are in each service’s build.gradle.kts file, which can be customised as needed.

In addition, the Docker image name for each service is also defined in the service’s descriptor.

Note: The Docker image name in a service’s build.gradle.kts and descriptor must be kept in sync.