- Why
- Set Up With Maven
- Set Up With Gradle
- Running With Docker
- Providers:
- Handlers:
Sometimes we want to do some work with multiple repositories - add step with SonarQube to all pipelines, add JaCoCo to all projects, up library version everywhere, add helm charts, etc. There is where Enki can help you.
Enki takes all the problems with handling of cloning and iterating over multiple repositories, commiting and pushing them. All you need to do is write or reuse some handler which takes metadata and local cloned copy of repository and just does required job.
Add to pom.xml
<repositories>
<repository>
<id>jcenter</id>
<url>https://jcenter.bintray.com/</url>
</repository>
</repositories>
<dependency>
<groupId>com.github.stcarolas.enki</groupId>
<artifactId>enki-core</artifactId>
<version>0.1.49</version>
<type>pom</type>
</dependency>
Add to build.gradle
repositories {
jcenter()
}
implementation 'com.github.stcarolas.enki:enki-core:0.1.49'
Docker image includes a launcher and all RepoProviders but no handlers. RepoHandlers must be provided via volume like -v $(pwd):/tmp
as in examples below or packaged in custom image.
Cli mode:
docker run -v $(pwd):/tmp stcarolas/enki \
--github --github-username=stCarolas --github-password=252f939e823c441fc7a2f5914e93a9fe30725b3c \
/tmp/enki-logging-handlers-0.1.5.jar
Server mode:
docker run -v $(pwd):/tmp -p 8080:8080 stcarolas/enki \
--server \
--github --github-username=stCarolas --github-password=252f939e823c441fc7a2f5914e93a9fe30725b3c \
/tmp/enki-logging-handlers-0.1.5.jar