Usando um pipeline declarativo ou com script em DevOps
Quando você usa um Jenkinsfile, as etapas são criadas, mapeadas e associadas a tarefas de orquestração automaticamente em vez de manualmente.
Jenkinsfile é um arquivo de texto que contém a definição de um Jenkins e é submetido a check-in no controle de código-fonte.
Cada fase de nível raiz configurada no Jenkinsfile é descoberta como uma tarefa de orquestração separada em DevOps mapeado para uma etapa individual.
DevOps Jenkinsfile comandos
- SnDevOpsChange(ignoreErrors:
Onde IgnoreErrors especifica a configuração para evitar falha de trabalho se houver um erro (verdadeiro/falso)
Onde ChangeRequestDetails especifica campos código de fechamento e solicitação de mudança de dentro do pipeline
Habilita o controle de mudanças para cada fase de nível raiz mapeada para um DevOps etapa.
- SnDevOpsArtefato
Registra artefatos ao configurar Artefatos e pacotes.
- SnDevOpsPackage
Cria um pacote para artefatos ao configurar Artefatos e pacotes.
- SnDevOpsGetChangeNumber
Recupera o número da solicitação de mudança em um pipeline do Jenkins com base em detalhes de mudança específicos.
- SnDevOpsUpdateChangeInfo
Atualiza os detalhes da solicitação de mudança associados a um pipeline do Jenkins.
- SnDevOpsResultSecurityResult
Configura verificações de segurança em qualquer fase do pipeline e os detalhes da verificação são recuperados da fase correspondente à Velocidade de mudança do DevOps.
Você pode especificar Jenkins configuração do servidor em qualquer uma dessas etapas aprovando ConfigurationName atributo em seu pipeline. Se o nome da configuração não for especificado em nenhuma etapa, a configuração padrão será usada nessa etapa. Passar um nome de configuração incorreto resultará na falha da etapa, a menos que Ignorar erros de DevOps da ServiceNow a opção é selecionada durante a configuração do Jenkins plug-in.
Jenkins gerador de snippet para DevOps
- SnDevOpsArtefato
- SnDevOpsChange
- SnDevOpsPackage
- SnDevOpsGetChangeNumber
- SnDevOpsUpdateChangeInfo
- SnDevOpsResultSecurityResult
snDevOpsChange changeCreationTimeOut: 3600, changeRequestDetails: '{ "attributes": { "short_description": "Test description", "priority": "1", "start_date": "2021-02-05 08:00:00", "end_date": "2022-04-05 08:00:00", "justification": "test justification", "description": "test description", "cab_required": true, "comments": "This update for work notes is from jenkins file", "work_notes": "test work notes", "assignment_group": "a715cd759f2002002920bde8132e7018" }, "setCloseCode": false, "autoCloseChange": true }', changeStepTimeOut: 18000, configurationName: 'Jenkins1', pollingInterval: 60Suporte paralelo e subfase
Quando uma fase (ou conjunto de fases paralelas) é aninhada em uma fase de pipeline, estas regras se aplicam:
- Qualquer ação da fase aninhada é processada como parte da fase de nível raiz primária
- Apenas uma solicitação de mudança é criada (no nível raiz primário), mesmo que várias fases aninhadas na fase de nível raiz primária acionem uma mudança
- As tarefas de Orquestração criadas são sempre associadas à fase de nível raiz primária (não à fase aninhada)
Subfase
Neste exemplo de subfase, se uma solicitação de mudança for criada a partir da subfase (Implantar PROD), os detalhes da fase de nível raiz primária (implantação) serão usados na solicitação de mudança e as tarefas de orquestração também serão associadas à fase de nível raiz primária (implantação).
stage("deploy") {
stages{
stage('deploy UAT') {
when{
branch 'dev'
}
stage('deploy PROD') {
when {
branch 'master'
}
steps{
snDevOpsChange()
}
}
}
Fase paralela
Neste exemplo de fase paralela, se uma solicitação de mudança for criada a partir de uma subfase (teste de código estático UAT TEST-1 e/ou UAT), somente a primeira solicitação de mudança será criada (usando os detalhes da fase de nível raiz primária, teste UAT) independentemente de ambas as subfases (teste de código estático UAT-1 e teste de código estático UAT) serem acionadas.
Não há indicação de qual fase paralela gerou a mudança, e as tarefas de orquestração estão associadas à fase de nível raiz primária (teste de UAT).
stage('UAT test') {
parallel {
stage('UAT test-1') {
steps {
snDevOpsChange()
// 'UAT test-1' tasks
}
post {
success {
// post success tasks. E.g.: junit '**/target/surefire-reports/*.xml'
}
}
}
stage('UAT static code test') {
steps {
snDevOpsChange()
// 'UAT static code test' tasks
}
}
}
}