Jenkins
Jenkins is an open-source automation server that can be used to automate parts of the software development process, including building, testing, and deploying applications.
Jenkins CI/CD
Jenkins is often used in conjunction with continuous integration (CI) and continuous delivery (CD) practices. CI is a process of automating the building, testing, and integration of code changes on a regular basis. CD is a process of automating the deployment of code changes to production on a regular basis.
enkins can be used to create and manage CI/CD pipelines. A pipeline is a sequence of steps that are executed in order to build, test, and deploy an application. Jenkins pipelines can be defined using a variety of tools, such as the Jenkinsfile or the Jenkins Pipeline Builder.
Jenkins is a popular choice for CI/CD because it is open-source, extensible, and easy to use. It also has a large community of users and contributors who provide support and plugins.
Installing Jenkins with Docker
Pre-Requisites!! Just Get Docker 馃悑馃憞
Important step and quite recommended for any SelfHosting Project - Get Docker Installed
It will be one command, this one, if you are in Linux:
apt-get update && sudo apt-get upgrade && curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh && docker version
And install also Docker-compose with:
apt install docker-compose -y
We need to use the following docker-compose:
version: '3'
services:
jenkins:
image: jenkins/jenkins:lts
container_name: jenkins
ports:
- 8080:8080
- 50000:50000
volumes:
- ./jenkins_home:/var/jenkins_home
restart: always
Remember to check the logs for the first time password:
docker logs <containerid>
docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword
or directly in the container’s log looking in Portainer.
Then, access Jenkins UI at: localhost:8080
FAQ
F/OSS GIT
- Gitlab
- Gitea
- One-Dev
F/OSS CI/CD Alternatives
- Gitlab CI/CD
- One-Dev
- woodpecker
Free Automation Tools
- Ansible -
- Ansible Semaphore - https://github.com/ansible-semaphore/semaphore
- Kestra - https://github.com/kestra-io/kestra
- Puppet - Server Automation framework and application
Infinitely scalable, event-driven, language-agnostic orchestration and scheduling platform to manage millions of workflows declaratively in code.