赞
踩
项目使用Webhook触发,
需要勾选上Push Events
设置Webhook Token
填写上Jenkins上配置的Webhook url和Token
选择标签推送事件,这样打完标签后,就可以触发Jenkins打包构建过程。
Pipeline模式下。可以方便获取Tag信息。
如何获取Git,GitLab等项目触发到Jenkins的信息呢。如果不想查阅对应的插件文档和源码。
可以使用打印环境变量的方式获取。
如下,打印了所有环境变量。很清楚知道我们想要的是gitlabBranch这个环境变量
Pipeline 脚本
- pipeline {
- agent any
-
- environment {
- GIT_URL = "https://xx.x.xx.demo.git"
- GIT_CREDENTIALS_ID = "xx-xx-xxx-xxxxx-xxxxx"
-
- // 触发构建的gitlab tag 获取到的值样例: refs/tags/v0.0.1-test
- GITLAB_TAG_NAME=""
- // docker镜像标签
- DOCKER_IMAGE_TAG=""
- }
-
- stages {
- // 打印所有环境变量,便于查看触发的Tag是哪个环境变量
- stage('Print All Environment') {
- steps {
- script {
- sh 'printenv'
- }
- }
- }
-
- stage('Prepare Gitlab Tag Name') {
- steps {
- script {
- // 获取触发构建的tag
- GITLAB_TAG_NAME=env.gitlabBranch
- def tagName = GITLAB_TAG_NAME.replace("refs/tags/", "")
- DOCKER_IMAGE_TAG=tagName
- echo "Triggered by GitLab tag: ${GITLAB_TAG_NAME}"
- echo "Setting DOCKER IMAGE TAG to ${DOCKER_IMAGE_TAG}"
- }
- }
-
- }
- stage('git checkout') {
- steps {
- checkout([$class: 'GitSCM', branches: [[name: "${GITLAB_TAG_NAME}"]],
- userRemoteConfigs: [[credentialsId: "${GIT_CREDENTIALS_ID}", url: "${GIT_URL}"]]
- ])
-
- }
- }
- stage('maven build') {
- steps {
- script{
- sh "mvn clean package"
- }
- }
- }
-
- stage('docker build') {
- steps {
- script{
- sh "docker build --no-cache -t harbor.registry.com/demo/xxx:${DOCKER_IMAGE_TAG} ."
- }
- }
- }
- }
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。