jenkins自动化pipline的ci/cd流水线

pipeline {
    agent any
   tools {
        //工具必须预先在jenkins中预配置
        maven ‘mvn‘
        jdk  ‘jdk‘
    }
    stages {
        stage(‘Env‘) {

            steps {
                sh ‘printenv‘
            }
        }
        stage(‘git‘)     {
         steps{
           checkout([$class: ‘GitSCM‘, branches: [[name: ‘*/develop‘]], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: ‘18980d0a-1ae4-443b17dc687b1‘, url: ‘https://CFAI_the_best/codeflag-basis.git‘]]])
         }
   }
        stage(‘mvn install‘)     { 

           steps {

              sh ‘cd /var/lib/jenkins/workspace/k8s-test-basis/src/main/resources && mv application.test.properties application.properties‘

              sh ‘mvn clean install‘

           }

       }
        stage(‘docker‘)     { 

           steps {

               sh ‘cd /var/lib/jenkins/workspace/k8s-test-basis/target ‘
              sh ‘‘‘
      REPOSITORY=172.18.0.218/codeflagtest/codeflag-basis:${BUILD_ID}
        pwd
        echo ‘
        FROM 172.18.0.218/codeflagtest/tomcat
      RUN rm -rf  /usr/local/tomcat/webapps/ROOT
        RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime   && echo ‘Asia/Shanghai‘ >/etc/timezone
          ADD target/basic-0.0.1-SNAPSHOT.war   /usr/local/tomcat/webapps/ROOT.war
        ‘ > Dockerfile
        docker build -t $REPOSITORY .
        docker login 172.18.0.218 -u admin -p  Harbor123456
        docker push $REPOSITORY

        ‘‘‘
           }

        }
                stage(‘deploy‘)     { 

           steps {
               sh ‘ REPOSITORY=172.18.0.218/codeflagtest/codeflag-basis:${BUILD_ID}‘
              sh ‘kubectl  get pod‘
              sh ‘‘‘
 cat << EOF > basis.yaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: basis
spec:
  replicas: 2
  selector:
    matchLabels:
      app: basis
  template:
    metadata:
      labels:
        app: basis
    spec:
      containers:
      - name: basis
        image: 172.18.0.218/codeflagtest/codeflag-basis:${BUILD_ID}

        imagePullPolicy: Always
        ports:
        - containerPort: 8080
        volumeMounts:
          - name: pvc-nas
            mountPath: "/home/www/test"
      volumes:
        - name: pvc-nas
          persistentVolumeClaim:
            claimName: pvc-nas
      imagePullSecrets:
        - name: registry-secret

---
apiVersion: v1
kind: Service
metadata:
  name: basis
spec:
  ports:
  - port: 80
    targetPort: 8080
    name: basis
  selector:
    app: basis
  type: LoadBalancer
EOF

kubectl apply -f basis.yaml

              ‘‘‘

           }

       }
    }

}

官方推荐样例:

官方推荐的语法:

官方例子:
Jenkinsfile (Declarative Pipeline)
pipeline {
    agent any
    options {
        skipStagesAfterUnstable()
    }
    stages {
        stage(‘Build‘) {
            steps {
                sh ‘make‘
            }
        }
        stage(‘Test‘){
            steps {
                sh ‘make check‘
                junit ‘reports/**/*.xml‘
            }
        }
        stage(‘Deploy‘) {
            steps {
                sh ‘make publish‘
            }
        }
    }
}

原文地址:https://www.cnblogs.com/tigergaonotes/p/11316840.html

时间: 2024-11-09 09:49:19

jenkins自动化pipline的ci/cd流水线的相关文章

Jenkins与Docker的自动化CI/CD流水线实战

Jenkins与Docker的自动化CI/CD流水线实战 标签(空格分隔): docker的部分 一:什么是CI/CD 二: 发布流程设计 三:部署Git仓库并上传测试代码 一:什么是CI/CD 持续集成(Continuous Integration,CI):代码合并.构建.部署.测试都在一起,不断地执行这个过程,并对结果反馈. 持续部署(Continuous Deployment,CD):部署到测试环境.预生产环境.生产环境. 持续交付(Continuous Delivery,CD):将最终产

docker与jenkins的自动化CI/CD流水线实战

docker与jenkins的自动化CI/CD流水线实战 在互联网时代,对于每一家公司,软件开发和发布的重要性不言而喻,目前已经形成一套标准的流程,最重要的组成部分就是持续集成(CI)及持续部署.交付(CD).本文基于Jenkins+Docker+Git实现一套CI自动化发布流程. 高效的CI/CD环境可以获得: ? 及时发现问题 ? 大幅度减少故障率 ? 加快迭代速度 ? 减少时间成本 一.发布流程设计 总结:开发===>提交代码到Git/Svn===>推送到Jenkins====>通

容器平台自动化CI/CD流水线实操

CI/CD----(实操说明) CI/CD 持续集成(Continuous Integration, CI):  代码合并,构建,部署,测试都在一起,不断地执行这个过程,并对结果反馈. 持续部署(Continuous Deployment, CD): 部署到测试环境.预生产环境.生成环境. 持续部署(Continuous Delivery, CD):  将最终产品发布到生成环境.给用户使用. Jenkins与容器技术CI/CD实战 说明:这张图稍微更形象一点,上线之前先把代码git到版本仓库,然

5步实现规模化的Kubernetes CI/CD 流水线

一.背景在近几年,Kubernetes迅速成为了容器编排的事实上的开源标准.与虚拟机不同,Kubernetes在抽象化基础架构的同时可靠地大规模编排容器,这可以帮助开发人员将工作负载与基础架构的复杂性质分开.Kubernetes是CI/CD自动化的理想选择,因为它提供了许多内置功能,这些功能使应用程序部署实现标准化和可重用,提高了开发人员的生产力,并加快了云原生应用程序的采用.Platform9是成立于2013年的云服务提供商,能够提供业界唯一由SaaS管理的混合云解决方案,使用户能够快速采用云

如何使用GitLab和Rancher构建CI/CD流水线 – Part 2

这是我们使用GitLab和Rancher构建CI/CD流水线系列教程的第二部分.第一部分的内容介绍了如何部署.配置和确保GitLab在Rancher的运行.这一部分中,我们将介绍如何使用GitLab CI Multi-Runner构建容器,以及如何使用GitLab容器registry配置项目.除此之外,我们还将涉及如何用GitLab CI建立容器并部署到Rancher上. 使用GitLab CI Multi-Runner构建容器 GitLab CI是用于持续集成和持续交付的强大工具.它需要和Ra

rancher+gitlab+appveyor 实现 CI/CD 流水线(汇总)

rancher+gitlab+appveyor 实现 CI/CD 流水线 本文主要是做一些汇总,将近期接触并弄好的一些工具整合起来,弄一套流水线,减轻一定工作压力 工具介绍 所有的组件都是使用 docker 跑的,所以一款好用的 docker 的 ui 管理工具很重要,那就是rancher.这里只是用来管理一些工具,有点屈才了 项目代码托管使用 gitlab,其内置了 CI/CD,成套使用,非常方便 appveyor 也是一个 CI/CD 解决方案,基于asp.net core开发.其内置 nu

Jenkins与Docker/Kubernetes的自动化CI/CD流水线实践--免费直播课等你来约

直播老师简介: 李振良·奇虎360-高级运维工程师,主要负责360浏览器业务运维.7年互联网运维工作经验,具备丰富的运维实战经验,曾主导容器云平台建设并将业务容器化部署 老师博客专栏地址:基于Kubernetes企业级容器云平台落地与实践 直播课内容大纲: 1.什么是CI/CD?2.Jenkins Pipeline2.Jenkins与Docker发布JAVA项目3.Jenkins与Kubernetes发布JAVA项目 直播时间: 2018年7月26日(本周四)晚8点30分--9点30分 QQ群直

通过Jenkins与Docker构建CI/CD基础架构

###前言 提到容器平台,最早接触的便是LXC(Linux Container),是2010年刚刚接触虚拟化平台的时候,当时开源解决方案是xen的天下(后来KVM才后来者居上),且性能各方面都不弱,价值当时还不是移动互联网时代,业务量远远没有那么大,大部分公司都是物理机部署应用,用虚拟化平台的公司也是寥寥无几,可想而知,没有业务,没有场景,那就没有技术的用武之地了,所以,LXC生而伟大而用不逢时,Docker之所以能够青出于蓝而胜于蓝,取得如此大的成功的原因还是归咎于移动互联网带来的流量大爆炸,

Jenkins + k8s 实现企业 CI/CD 落地

一.概述 1.1.环境介绍 我们使用的是 AWS 的 EC2 来搭建我们的集群,安装方式使用 kubeadm 来进行安装,如果使用二进制安装,可以参考我相关文档. 系统版本:ubuntu 16.04 k8s 版本:1.17.1 docker 版本:18.06-ce 1.2.流程图 1.3.集群配置 名称 配置 内网IP 外网IP k8s-master 2核4GB 172.31.20.184 54.226.118.74 k8s-node1 2核4GB 172.31.27.69 52.90.221.