Jenkins 脚本分解

2022年6月29日 1906点热度 2人点赞 0条评论
内容目录

整体格式

大体格式定义

pipeline {

    // 全局环境变量
    // environment {
    //     IMAGENAME     = 'webdemo'       // 镜像名称
    // }

    // Jenkins 上可以看到的参数
    // parameters{
        // string(name: 'REPO_NAME' ,defaultValue:'',description:'仓库名称',trim:true)
    // }

    agent {
        // 如何启动构建环境,Linux、Windows 节点,或启动 容器
        docker {
            // label 'linux'   选择一个节点机器执行脚本
            image 'mcr.microsoft.com/dotnet/sdk:5.0' 
            // 映射主机的一些文件到容器中
            args '-u root -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker  -v /root/.ssh:/root/.ssh'
            reuseNode  true
        }
    }
    stages {

        // 步骤
        stage('Check1'){
        // 脚本代码
        }

        stage('Check2'){
        // 脚本代码
        }
    }
}

模板变量替换脚本

定义模板:

kind: Deployment
apiVersion: apps/v1
metadata:
  name: ${APPNAME}
  namespace: ${NAMESPACE}
  labels:
    app: ${APPNAME}
spec:
  replicas: 1
  selector:
  ... ...

将里面的 ${} 变量替换:

eval "cat <<EOF
$(< deploy.yaml)
"  > newdeploy.yaml

文件转环境变量:

# 命名空间
NAMESPACE=dev
# 应用名称
APPNAME=yzf-web1
# dapr 下的应用ID
DAPR_APPID=yzf-web1
# Web 应用的端口
APPPORT=5000
                    # 获取自定义变量配置放到系统环境中
                    source ./deploy_env.conf

痴者工良

高级程序员劝退师

文章评论