Как организовывал версионирование с помощью Jenkins

«Как организовывал версионирование с помощью Jenkins» — вопрос из категории CI/CD, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Для версионирования в Jenkins можно использовать:

  1. Параметризованные сборки - передача версии через BUILD_VERSION
  2. Version Number Plugin - автоматическая генерация версий по шаблону (1.0.${BUILD_NUMBER})
  3. Git Tags - создание тегов после успешной сборки:
pipeline {
    stages {
        stage('Build') {
            steps {
                sh 'mvn package'
            }
        }
        stage('Tag') {
            steps {
                withCredentials([usernamePassword(credentialsId: 'git-creds', usernameVariable: 'GIT_USER', passwordVariable: 'GIT_PASS')]) {
                    sh '''
                        git tag -a v${BUILD_VERSION} -m "Jenkins build ${BUILD_NUMBER}"
                        git push origin v${BUILD_VERSION}
                    '''
                }
            }
        }
    }
}

Лучшие практики:

  • Хранить версию в отдельном файле (VERSION, package.json)
  • Использовать семантическое версионирование (MAJOR.MINOR.PATCH)
  • Автоматически увеличивать версию при мердже в main