Índice
- 12. Operação de CD de estilo livre
- 13. Helloworld das tarefas do pipeline
- 14. Olájenkins de gerenciamento de pipeline
12. Operação de CD de estilo livre
Agora, após modificar o código do projeto atual no GitLab, 主干分支 origin/master 上的代码打上一个 Tag,例如 v1.0.0。
envie-o para o branch principal origin/master do GitLab. 此时再给项目打上一个 Tag, 例如 v2.0.0。
Desta forma, duas Tags são marcadas no branch principal origin/master do projeto hellojenkins.
E Jenkins pode construir projetos separadamente de acordo com diferentes tags do código no branch principal origin/master. Implementar entrega contínua e implantação contínua de projetos.
Versão V1.0.0 de lançamento
Modifique o código e envie-o
Marcar projetos no GitLab
Versão V2.0.0 de lançamento
As etapas são as mesmas acima, mas não serão demonstradas aqui.
Parâmetros da tag de configuração do Jenkins
Como o projeto no GitLab possui tag 标签
, Jenkins precisa permitir que o usuário escolha qual tag de projeto construir ao construir o projeto. Portanto, é necessário configurar no Jenkins Git 参数 tag
como opção do usuário.
Adicionar parâmetros Git
Adicionar comando de checkout
Em seguida, continue a abrir a página atual para encontrar as etapas de construção.
Em seguida, clique nas três barras no canto superior esquerdo, arraste para o topo, git checkout $hjtag
o que significa mudar para o rótulo especificado, e você poderá ver o efeito mais tarde
Modificar configuração do comando de compilação
Em seguida, continue a rolar para baixo na página atual para encontrar Build Steps
o comando de construção adicionado originalmente. $hjtag
Adicione referências de variáveis a todos os comandos que envolvem imagens . Em seguida, aplique salvar.
Modificar configuração SSH
Send build artifacts over SSH
Em seguida, continue a puxar para baixo a página atual, encontre aquela na "operação pós-construção" Exec command
e escreva a versão original codificada latest 修改为$hjtag
.
Implantar v1.0.0
reconstruir projeto
Clique em Build Project novamente na página inicial da tarefa Build with Parameters
e descubra que hjtag
as opções foram adicionadas. V1.0.0
Escolha construir aqui
resultado da compilação
Uma nova imagem v1.0.0 foi adicionada ao Harbor.
A imagem v1.0.0 é adicionada ao servidor de destino e o contêiner está em execução.
acesso ao navegador
Implantar v2.0.0
reconstruir projeto
Clique em Build Project novamente na página inicial da tarefa Build with Parameters
e descubra que ela foi adicionada hjtag 选项
. V2.0.0
Escolha construir aqui e modifique o número da porta.
acesso
Implantar v3.0.0
13. Helloworld das tarefas do pipeline
Pipelining é uma forma de Jenkins gerenciar o processo de construção do projeto. 其将项目的构建过程按照构建阶段进行非常清晰的划分显示
. Os usuários podem 可视化操作方式
visualizar e gerenciar facilmente várias etapas do processo de construção.
Olá Mundo
Criar uma nova tarefa de pipeline
Depois de clicar em Construir agora, você verá a Visualização do palco.
Modificar script do projeto
Para entender melhor o script, o script do projeto hello workd é modificado aqui.
Script de manutenção do modo SCM
SCM (Software Configuration Management) refere-se 软件配置管理
ao gerenciamento e coordenação de código, documentos e outros elementos relacionados no processo de desenvolvimento de software.
Anexe Jenkinsfile ao código
Cada projeto a ser construído piple 方式进行构建管理
deve ter um 构建脚本
. Ao usar o método de manutenção de script SCM, o nome do arquivo de script padrão é Jenkinsfile
.
Anexe um arquivo chamado Jenkinsfile ao diretório raiz do projeto no Idea. Em seguida, copie o conteúdo original do script para o arquivo. Para mostrar a diferença, o conteúdo do script é simplesmente modificado aqui.
pipeline {
agent any
stages {
stage('阶段one') {
steps {
echo '阶段one构建成功 ---> SUCCESS'
}
}
stage('阶段two') {
steps {
echo '阶段two构建成功 ---> SUCCESS'
}
}
stage('阶段three') {
steps {
echo '阶段three构建成功 ---> SUCCESS'
}
}
}
}
Enviar alterações para o GitLab
Então você pode ver um arquivo Jenkinsfile adicional na página inicial do projeto GitLab. Em seguida, copie o endereço http do projeto.
Configuração do Jenkins
Na "Configuração" da tarefa do pipeline no Jenkins, 流水线选择 SCM 方式
, SCM 选择 Git
e cole o que você acabou de copiar GitLab 仓库地址
aqui.
reconstruir
Após a reconstrução, você descobrirá que além dos nomes atualizados desses estágios, um novo estágio também foi adicionado Checkout SCM,即从 SCM 中检出脚本
.
14. Olájenkins de gerenciamento de pipeline
Agora precisamos construir e gerenciar o projeto hellojks anterior por meio do pipeline. Então, 首先需要修改 Idea 中 的 Jenkinsfile 文件内容,然后再提交到 GitLab
.
pipeline {
agent any
stages {
stage('从Gitlab拉取代码') {
steps {
echo '从Gitlab拉取代码 ---> SUCCESS'
}
}
stage('将项目打为jar包') {
steps {
echo '将项目打为jar包 ---> SUCCESS'
}
}
stage('代码质量检测') {
steps {
echo '代码质量检测 ---> SUCCESS'
}
}
stage('构建并推送镜像到Harbor') {
steps {
echo '构建并推送镜像到Harbor ---> SUCCESS'
}
}
stage('通知目标服务器') {
steps {
echo '通知目标服务器 ---> SUCCESS'
}
}
}
}
reconstruir
Reconstrua a tarefa hello_pipeline no Jenkins.
Extrair código do GitLab
Definição Git参数
, defina um parâmetro Git na tarefa de pipeline no Jenkins, que ainda está publicada tag
.
Sintaxe do pipeline
Como definir instruções de comando específicas no arquivo de script do pipeline para realizar “从 GitLab 位取代码”“将项目 打为 jar 包”
tarefas como esta?
Os arquivos de script de pipeline têm sua própria sintaxe especial. No entanto, por meio da sintaxe do pipeline na tarefa de pipeline atual, as instruções de script que estão em conformidade com a sintaxe do script do pipeline podem ser geradas automaticamente.
Gerar comando de script
A seguir, usaremos a sintaxe do pipeline para gerar a instrução "Puxar código do GitLab".
Primeiro copie o endereço do projeto do projeto GitLab.
Em seguida, selecione a sintaxe do pipeline no Jenkins “checkout:Check out from version control”
e cole o endereço do projeto GitLab copiado nele Repository URL
.
Clique em "Gerar script de pipeline" para gerar automaticamente a instrução de script correspondente na caixa de texto abaixo.
Atualizar arquivo Jenkins
Copie o script do pipeline gerado, grave-o Idea 中的 Jenkinsfile 的相应 stage{}中
e envie-o ao GitLab.
reconstruir
Recrie a tarefa e descubra que você pode selecionar a versão construída.
Clique em Logs na fase "Pull Code" para ver os logs extraídos.
Transforme o projeto em um pacote jar
Gerar comando de script
Gere a instrução de script de "transformar o projeto em um pacote jar" por meio da sintaxe de script de pipeline no Jenkins
Atualizar arquivo Jenkins
Copie o script do pipeline gerado e grave-o para Idea 的 Jenkinsfile 的相应 stage{}中
enviar.
reconstruir
Reconstrua a tarefa e clique “将项目打为 jar 包”阶段
na camada superior Logs
para vê-la maven 构建的日志
.
Inspeção de qualidade do código
Gerar comando de script
Gere instruções de script de "inspeção de qualidade de código" por meio da sintaxe de script de pipeline no Jenkins.
Atualizar arquivo Jenkins
Copie o script do pipeline gerado e grave-o para Idea 的 Jenkinsfile 的相应 stage{}中
enviar.
reconstruir
Recrie a tarefa e você “通过 SonarQube 进行代码检测”阶段中 点击 Logs
poderá vê- la no nível superior SonarQube 代码检测的日志
.
Então você pode ver um projeto recém-adicionado na página de gerenciamento do SonarQube hello_pipeline
.
Construa a imagem e envie-a para o Harbor
Definir variáveis de ambiente no Jenkinsfile
Adicionadas ao Jenkinsfile no Idea 环境变量
, essas variáveis serão utilizadas nos comandos de script gerados posteriormente.
environment {
harbor_user='admin'
harbor_password='Harbor12345'
harbor_host='192.168.40.138:8888'
harbor_repo='jks'
}
Gerar comando de script
Gerado no Jenkins por meio da sintaxe do script do pipeline “推送镜像到 Harbor”的脚本语句
. usado em instruções de script Jenkinsfile 中定义的环境变量
.
[Falha na transferência da imagem do link externo. O site de origem pode ter um mecanismo anti-leeching. Recomenda-se salvar a imagem e carregá-la diretamente (img-DzTj8Hmi-1691236468832)
Nota: Este é o pacote jar no diretório de destino, não há nova captura de tela.
mv target/*.jar docker/
cd docker
docker build -t ${JOB_NAME}:${ptag} .
docker login -u ${harbor_user} -p ${harbor_password} ${harbor_host}
docker tag ${JOB_NAME}:${ptag} ${harbor_host}/${harbor_repo}/${JOB_NAME}:${ptag}
docker image prune -f
docker push ${harbor_host}/${harbor_repo}/${JOB_NAME}:${ptag}
Atualizar arquivo Jenkins
Copie o script do pipeline gerado e grave-o para Idea 的 Jenkinsfile 的相应 stage{}中
enviar.
reconstruir
Reconstrua a tarefa e então você “构建镜像并推送到 Harbor”阶段中点 击 Logs
poderá ver o registro do envio da imagem para o Harbor no nível superior.
Neste momento, Jenkins主机
você pode ver hello_pipeline
a imagem que aparece.
Neste momento, verifique a página de gerenciamento do porto e você poderá vê-la jks 项目中新增加了 hello_pipeline 的仓库, 且仓库中具有 v1.0.0 的镜像
.
Notificar o servidor de destino
Adicionar parâmetro de número de porta
Para habilitar os usuários 随时指定容器对外暴露的参数
, isso está em "Configuração" na tarefa atual no Jenkins “参数化构建过程”中添加一个字符参数
.
Gerar comando de script
Gerado no Jenkins por meio da sintaxe do script do pipeline “通知目标服务器执行 deploy 脚本”的脚本语句
. escolha sshPublisher:Send build artifacts over SSH,并从中找到目标服务器
.
Exec command
Em seguida , digite o comando a ser executado na caixa a seguir para gerar um script de pipeline.
deploy.sh $harbor_host $harbor_repo $JOB_NAME $ptag 8080 $export_port
Atualizar arquivo Jenkins
Copie o script do pipeline gerado e Idea 的 Jenkinsfile 的相应 stage{}中
grave-o no GitLab.
reconstruir
Reconstrua a tarefa e então você “通知目标服务器”阶段中点击 Logs
poderá ver o registro do envio da imagem para o Harbor no nível superior.
Verifique a imagem no servidor de destino e descubra que a imagem correspondente não foi retirada do porto.
Na verdade, é causado por variáveis com aspas duplas
Reconstrua novamente e extraia com sucesso
Acesso bem-sucedido ao navegador