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