zl程序教程

您现在的位置是:首页 >  工具

当前栏目

Jenkins: pipeline

Jenkins Pipeline
2023-09-11 14:16:16 时间
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
                        '''
                    }
                }

            }
        }
    }
}