Jenkins
Last updated
Was this helpful?
Last updated
Was this helpful?
Jenkins has multiple modes of operation, and each of them require some consideration when installing Earthly. These modes include:
Standalone, dedicated runners
Ephemeral cloud runners
Earthly has been tested with Jenkins in a standalone runner configuration, and using the Docker Cloud provider.
This should not differ in any meaningful way from the steps outlined in the .
Ensure that the Docker Cloud provider is installed and has a Docker daemon available. The Cloud provider does not provide a daemon.
VERSION
is the version of the Jenkins runner to install.
Set DOCKER_HOST
to point at a Docker daemon. This can easily be passed through by checking "Expose Docker Host" in the runner template configuration.
earthly
misinterprets the Jenkins environment as a terminal. To hide the ANSI color codes, set NO_COLOR
to 1
.
Note
This will start a local Jenkins server, minimally configured to spawn earthly
builds using the Docker cloud plugin.
Click "New Item", on the left
Choose "Pipeline", give it a name (we chose "test"), and click "OK".
Scroll down to the "Pipeline" section.
Make the following changes:
Choose "Pipeline script from SCM" for the Definition
Choose "Git" as the SCM, once the option appears
Set the branch specifier to */main
Once those changes are made, click "Save". Jenkins will navigate to the Pipelines' main page. Once there, click "Build Now"
Find the build in your build history, and watch it go!
If you broke the example environment, you can run earthly ./jenkins+cleanup
to clean up before trying to run again from scratch.
To allow the docker
client to access a daemon protected with TLS, you will need to add Jenkins credentials. Add the client key, certificate, and the server CA certificate as a credential. In our example, using the Docker Cloud provider, you can add them by choosing "Manage Jenkins", then "Manage Nodes and Clouds", and finally "Configure Clouds". Then, choose the cloud to configure for TLS, and click the "Add" button here:
Also, ensure that you are using the correct port for TLS. In this image of our example cloud, we are using port 2375
, which is traditionally the insecure port for a docker
daemon. In a TLS environment, docker
expects port 2376
.
Assuming you are following the steps outlined in the , here are the additional things you need to configure:
You'll need to . Heres an example of what this might look like, when basing your runner off our earthly/earthly
image:
This example is not production ready, and is intended to showcase configuration needed to get Earthly off the ground. If you run into any issues, or need help, !
You can find our .
To run it yourself, clone the , and then run (from the root of the repository):
To run a build in this demo, you will need to configure a build pipeline. To do that, we have an . To configure the build pipeline for the example project:
Open the Jenkins demo by going to
Set the repository URL to
The example purposely runs a Docker-In-Docker (DIND) container without TLS for simplicity. This is not a recommended configuration.
If you are using an external earthly-buildkitd
with Jenkins, . You will need to add the keys and certificates used there as credentials too.