Sobes.tech
Senior

Tell us about your experience with CI/CD. What tools have you used — Jenkins, ArgoCD, and others?

sobes.tech AI

Answer from AI

In my experience with CI/CD, the main tools were Jenkins and ArgoCD, as well as GitLab CI. I used Jenkins for building complex pipelines with multiple stages, including build, test, and deploy. Thanks to its plugins, it was possible to integrate almost any tools and systems.

I used ArgoCD for managing deployments in Kubernetes, especially when a declarative approach and automatic synchronization of the cluster state with the Git repository were needed. This allowed implementing a GitOps approach, where changes in the code are automatically reflected in the infrastructure.

An example of a simple Jenkinsfile for a Go project:

pipeline {
    agent any
    stages {
        stage('Build') {
            steps {
                sh 'go build -v ./...'
            }
        }
        stage('Test') {
            steps {
                sh 'go test -v ./...'
            }
        }
        stage('Deploy') {
            steps {
                // deployment commands, e.g., kubectl apply
            }
        }
    }
}

I also used Docker for containerization and Helm for managing releases in Kubernetes.