Jenkins: pipeline

复制代码
pipeline {
    agent {
        label 'translation'
    }

    environment {
        param1 = 'value1'
    }

    triggers {
        GenericTrigger(
            genericVariables: [
                [defaultValue: '', key: 'src_full_name', regexpFilter: '', value: '$.pull_request.head.repo.full_name'],
                [defaultValue: '', key: 'user', regexpFilter: '', value: '$.pull_request.user.login'],
                [defaultValue: '', key: 'src_branch', regexpFilter: '', value: '$.pull_request.head.ref'],
                [defaultValue: '', key: 'src_repo_name', regexpFilter: '', value: '$.pull_request.head.repo.name'],
                [defaultValue: '', key: 'label', regexpFilter: '', value: '$.pull_request.head.label'],
                [defaultValue: '', key: 'webhook', regexpFilter: '', value: '$'],
                [defaultValue: '', key: 'src', regexpFilter: '[^0-9]', value: '$.pull_request.head.repo.full_name']
            ],
            overrideQuietPeriod: true, printContributedVariables: true, printPostContent: true, causeString: '$user $src_full_name $src_branch',
            regexpFilterExpression: '^SFSF-LX-LAB/.*$', regexpFilterText: '$src_full_name', token: '', tokenCredentialId: 'translation-pr-token'
        )
    }

    options {
        retry 1
        timestamps()
        quietPeriod 2
        skipDefaultCheckout true
        disableConcurrentBuilds()
        timeout(time: 5, unit: 'MINUTES')
        buildDiscarder logRotator(artifactDaysToKeepStr: '', artifactNumToKeepStr: '', daysToKeepStr: '100', numToKeepStr: '10')

    }

    stages {
        stage('Clean Workspace') {
            steps {
                script {
                    cleanWs notFailBuild: true
                    def webhook = readJSON(text: "${webhook}")
                }
            }
        }
        stage('Checkout') {
            steps {
                script {
                    checkout([$class: 'GitSCM', branches: [[name: ':^(?!(origin/prefix)).*']], extensions: [], userRemoteConfigs: [[credentialsId: 'jambot-key', url: 'git@github.wdf.sap.corp:sap-jam/translation-integration.git']]])
                }
            }
        }
        stage('Operate') {
            steps {
                script {
                    sh 'printenv'
                    sh 'ruby -rlogger -rfileutils -e "puts 555555555555555555555"'
                    sh 'pwd;ls -al'
                    withCredentials([usernamePassword(credentialsId: 'translation_token', passwordVariable: 'translation_git_token', usernameVariable: 'translation_git_username')]) {
                        sh '''
                        git clone --quiet --progress --jobs 5 https://$translation_git_username:$translation_git_token@github.corp/vail/ct
                        git switch --quiet --progress $src_branch
                        ls -al
                        ruby PostProcess.rb
                        ls -al ct
                        cd ct
                        git commit -am 'post processing with jenkins pipeline'
                        git push --quiet --all --progress --atomic
                        '''
                    }
                }

            }
        }
    }
}
复制代码

 

posted @   ascertain  阅读(32)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
历史上的今天:
2020-08-03 SQL server 查询库中每表记录数,字节数和总数
2020-08-03 rds删除SQL server数据库
2020-08-03 SQL server 统计库中记录数
2020-08-03 SQL server查询每个库的数据文件大小和日志文件大小
点击右上角即可分享
微信分享提示