Category Archives: CI/CD

Continuous integration in software engineering is the practice of merging all developer working copies to a shared mainline several times a day.

Continuous delivery is a software engineering approach in which teams produce software in short cycles, ensuring that the software can be reliably released at any time and, when releasing the software, doing so manually. It aims at building, testing, and releasing software with greater speed and frequency.

SonarQube: running tests from Jenkins Pipeline in Docker

18 June 2019
 

 The task is to run our backend PHP tests using SonarQube from a jenkins Pipeline job. Jenkins running in Docker and all its builds also uses Docker. The main issue I faced during this setup was the fact that SonarQube’s container inside spawns another process with Elastisearch (while Docker concept says “1 service per one… Read More »

Jenkins: running PHPUnit from Codeception by a Pull Request in Github and Allure-reports

6 June 2019
 

 The task is to create a Jenkins Scripted Pipeline job to run PHPUnit with our PHP-based backend unit-tests. To run PHPUnit Codeception will be used. This Jenkins job must be triggered from a Github repository after creating Pull Request so will use Github Pull-Request Builder plugin here. To view generated reports – Allure Jenkins plugin… Read More »

AWS: IAM users keys rotation, EC2 IAM Roles and Jenkins

30 May 2019
 

 Today I checked our IAM-users and “suddenly” recalled that it’s good to update their credentials sometimes: Well, that’s good to do but here is a question: it’s simple enough to set an expire for keys in IAM, but what to do with all scripts which are used in our Jenkins and which are using those… Read More »

Jenkins: a job to check a Github organization’s public repositories list

16 April 2019
 

 Proceeding with a Github repositories checker. To recall: the idea is to have such a check in case if somebody from developers accidentally will share our project’s private repository as public, or will create a public repository instead of making it as a private one – we will get a Slack alarm about such a… Read More »

Jenkins: your Jenkins data directory is almost full and automated disk cleanup

27 March 2019
 

 We have a Jenkins instance with a bunch of jobs. After a while – a new warning appeared: Jenkins: your Jenkins data directory /var/lib/jenkins (aka JENKINS_HOME) is almost full Checked disk usage with the ncdu and found few jobs which used really lot of space: [simterm] root@jenkins-production:/data/jenkins# du -h –max-depth 1 jobs/ .. 25G jobs/APITests …… Read More »

Jenkins: Scripted Pipeline – Production environment job confirmation step

19 March 2019
 

 We have jobs which have to be executed on a Dev and Production environments via a Scripted Pipeline. In such jobs, there are tasks to execute CloudFormation upgrades on an infrastructure or Ansible playbooks to update servers configuration. To avoid an accidental execution of a Production job I want to have some confirmation step before… Read More »

Jenkins: import a job to another server

13 March 2019
 

 We have an old Jenkins with a bunch of iOS jobs which needs to be copied to a new Jenkins instance. Documentation suggests to: Move a job from one installation of Jenkins to another by simply copying the corresponding job directory. I.e. the first solution is just to copy a whole jobs directory or copy… Read More »