1. 程式人生 > >jenkins-2、pipeline指令碼切換角色,執行指令碼等要點

jenkins-2、pipeline指令碼切換角色,執行指令碼等要點

demo pipeline指令碼

#!/usr/bin/env groovy
pipeline{
    agent any
  environment {
    REVISION = "0.0.${env.BUILD_ID}"
  }
    options{
        disableConcurrentBuilds()
        skipDefaultCheckout()
        timeout(time: 1, unit: 'HOURS')
        timestamps()
    }
    parameters{
        choice(name: 'build_env'
, choices: 'dev\ntest\nproduct\n', description: '請選擇構建的環境') } stages{ stage ('Initialize') { steps { script { currentBuild.displayName = "${REVISION}" } sh ''' echo "任務初始化..." echo "構建版本revision:${REVISION}" '''
sh ''' echo "專案檢出...." ''' checkout([$class: 'SubversionSCM', additionalCredentials: [], excludedCommitMessages: '', excludedRegions: '', excludedRevprop: '', excludedUsers: '', filterChangelog: false, ignoreDirPropChanges: false, includedRegions: ''
, locations: [[credentialsId: 'e522721e-4a9a-467c-b154-acb803d8afb0', depthOption: 'infinity', ignoreExternalsOption: true, remote: 'svn://127.0.0.1:3690/MicroBaseModule']], workspaceUpdater: [$class: 'UpdateUpdater']]) } } stage ('Build') { steps { echo "您選擇了:${params.build_env}" echo '構建階段....' echo '構建部署 MicroBaseApi子專案...' sh "mvn clean deploy -e -f MicroBaseModule/MicroBaseApi/pom.xml -P ${params.build_env}" echo '構建打包MicroBaseApp子專案...' sh "mvn clean package -e -f MicroBaseModule/MicroBaseApp/pom.xml -P ${params.build_env}" } } stage ('Deploy') { steps { echo '釋出階段....' script { if (params.build_env == 'test') { echo '=====》》》測試環境進行遠端釋出。' sh ''' sudo su -s /bin/bash jenkins scp /var/lib/jenkins/workspace/MicroBase/MicroBaseModule/MicroBaseApp/target/MicroBaseApp-Build.zip [email protected](你的遠端機器地址):/data/packages/test/MicroBaseApp/MicroBaseApp-Build-${REVISION}.zip ''' } if(params.build_env=='product'){ echo '=====》》》生產環境進行遠端釋出。' sh ''' sudo su -s /bin/bash jenkins scp /var/lib/jenkins/workspace/MicroBase/MicroBaseModule/MicroBaseApp/target/MicroBaseApp-Build.zip [email protected](你的遠端機器地址):/data/packages/product/MicroBaseApp/MicroBaseApp-Build-${REVISION}.zip ''' } else { echo '=====》》》 預設(開發)環境進行遠端釋出。' sh ''' sudo su -s /bin/bash jenkins scp /var/lib/jenkins/workspace/MicroBase/MicroBaseModule/MicroBaseApp/target/MicroBaseApp-Build.zip [email protected](你的遠端機器地址):/data/packages/dev/MicroBaseApp/MicroBaseApp-Build-${REVISION}.zip ''' } } } } } post { always { echo '構建結束...' } success { echo '恭喜您,構建成功!!!' } failure { echo '抱歉,構建失敗!!!' } unstable { echo '該任務已經被標記為不穩定任務....' } changed { echo '' } } }

在stage下面用script標籤然後用sh執行指令碼,
ps:
在執行時候請切換一下角色,sudo su -s /bin/bash jenkins 譬如這個。

假如你要遠端到目標機器執行shell,那麼下面這個命令幫到你:

ssh -t  -p 22 [email protected]x.x.x.x "ls /"

相關推薦

jenkins-2pipeline指令碼切換角色執行指令碼要點

demo pipeline指令碼 #!/usr/bin/env groovy pipeline{ agent any environment { REVISION = "0.0.${env.BUILD_ID}" } opti

Jenkins 2.x(Pipeline)SonarQube 和 Artifactory 搭建持續交付流水線

持續交付和 DevOps 是眾所周知的,並在當今廣泛傳播的做法。人們普遍認為,組建優秀的團隊,首先確定共同的目標,然後選擇和整合最適合的工具是至關重要的。通常,這是一個輕量級工具的集合,整合在一起構建了持續交付流水線,並支援 DevOps。在本文中,我們放大了整個流程的一

2編譯原理字母表符號表

【1】 字母表 & 符號 符號串 【2】文法及其分類 文法的分類 0型文法 總結: 文法 G(Vn,Vt,P,S) Vn: 非空有限的非終結符號集 Vt:終結符號集 P: 產生式集 S(屬於Vn)文法的識別符號

Redis: 2Redis高可用原理搭建與驗證

Redis高可用原理,搭建與驗證   一、redis-ha原理 1 原理 redis高可用採用的是哨兵(sentinel),多個redis-slave配備了多個哨兵程序,哨兵監控redis-master,一旦出現故障,將一臺slave提升為master。客戶端通過連線哨

Jenkins 2.156 每週更新版釋出可擴充套件的持續整合引擎

   Jenkins 2.156 釋出了,這個系列不是 LTS 版本,它每週都會發佈一個新版本,為使用者和外掛開發者提供錯誤修復和新功能。 本次更新內容如下  User account creation by administrators did not sho

SpringBoot微信點餐系統—2開發環境的搭建3新建專案

2.1匯入已裝好的虛擬機器,需要安裝virtual box(報記憶體不能writen錯誤,後面使用VMware) 2.2虛擬機器說明文件 2.3網路配置 橋接網路→全部允許 保證虛擬機器與本機ping的通 2.4試試虛擬機器中的應用 2.4.1

SSH框架學習之Spring ---- 2認識AOP ! 警告前方增強怪!

一、AOP底層分析 需求:根據客戶需要,當前的Dao.class中的add()方法,在呼叫之前需要列印一條"開始列印"語句。 以往的做法: 動add的程式碼,該怎麼改就怎麼改。這其實是不符合設計模式的,對於業務的拓展不修改原來的程式碼,這就是AOP思想。 概念 AOP啥意

使用python編寫opencv程式(2檢視圖片各種屬性寫入圖片)

主要語句: img.shape img.copy() cv2.imwrite(fileDir2,img,[int(cv2.IMWRITE_JPEG_QUALITY), 5]) 1、讀取屬性 可以使用img.shape屬性讀取到圖片的長度及寬度,讀出的結果為一個三元陣列,其

Eureka--2第一個Eureka程式Eureka Client的自啟動原理和簡要過程

在之前的Spring Cloud Config的基礎上,搭建簡單的Eureka Server 沒有程式碼,很多試驗做不起來,我們先建立個Eureka Server再說。 本篇主要講如何建立Eureka Server和Eureka Client,還有個重點是通過原始碼分析E

1Apache啟動失敗請檢查相關配置。2MySQL5.1啟動失敗請檢查相關配置。

純屬個人遇到的問題,在實驗室的win7系統執行APMServ5.2.6沒什麼問題,在自己的電腦win10系統上,已經安裝在根目錄(指直接整個APM資料夾丟CDE任意一個盤)啦,可是還是出現上述錯誤,百度了各種辦法都不行,最後,退出,然後去工作管理員關掉了apm的所有服務。接著

思科項目1實戰(vlan靜態單臂浮動路由vrrp/standbynat端口映射遠程)

vlan vrrp 單臂路由 nat pc配地址:C1192.168.10.10192.168.10.1C2192.168.20.10192.168.20.1C3192.168.10.20192.168.10.1C4192.168.20.20192.168.20.1需求1:SW1(config

Oracle 用戶角色權限

connect 沒有 權限 del intel cluster 登陸 select The 權限管理是 Oracle 系統的精華,不同用戶登錄到同一數據庫中,可能看到不同數量的表,擁有不同的權限。Oracle 的權限分為系統權限和數據對象權限,共一百多種,如果單獨對用戶授權

linux 系統啟動以後執行指令碼的順序

1 首先是 rcS #! /bin/sh export PATH=/bin:/sbin:/usr/bin:/usr/sbin:. # 掛載虛擬檔案系統 echo "Mounting virtual filesystems" mkdir -p /sys /proc /dev mount -t

java遠端連線linux執行指令碼命令

1.maven的POM.xml需要配置包 <dependency> <groupId>ch.ethz.ganymed</groupId> <artifactId>ganymed-ssh2</artifac

Linux crontab的使用方式sh指令碼的編寫sh指令碼自動啟動tomcat伺服器sh監控系統執行情況

1、如果想使用Linux crontab(類似java quartz),需要先啟動crontab.關於crontab的啟動、關閉、重啟、重新載入配置的方式如下: /sbin/service crond start //啟動服務 /sbin/service crond s

shell指令碼的作用shell指令碼變數的定義和三種賦值方式【shell指令碼的學習筆記一】

轉載自:http://blog.csdn.net/u010317005/article/details/50890543為什麼要用指令碼語言?以Linux系統為例,linux系統裡面有很多個命令,指令碼可以是一個或者多個命令的集合,通過執行指令碼,達到既定的功能或者效果。sh

列印一個五層金字塔(從開發速度便捷性執行效能考慮)

程式碼示例: /** * 列印一個五層金字塔(從開發速度,執行效能等考慮) * @author ck */ public class testDemo { public static void main(String[] args) { planA();

實驗目的: 1理解使用者與模式的概念掌握oracle中使用者管理的基本方法 2、理解系統許可權物件許可權的概念掌握分配許可權的方法 3理解角色的概念掌握角色的應用方法 實驗內容: 一使用者

撰寫人——軟體二班——陳喜平 一、使用者管理與應用 1、檢視使用者與模式 show USER; 2、建立使用者 sqlplus sys/[email protected] as sysdba CREATE USER t16436220 IDENTIFIED B

Jenkins+Jmeterjmeter指令碼執行執行失敗jenkins構建成功

搭建了一套介面自動化環境,一鍵構建執行介面指令碼,生成測試報告,失敗情況下,傳送郵件通知相關人員。基本思路是這樣的,但是,遇到了一個問題,瀏覽測試報告格式及檢視相關內容是否正確的過程中,發現有測試用例failure的情況,並沒有傳送郵件給相關人員。1、查詢問題檢視jmeter

jenkins-1建立pipeline及相關指令碼編寫

新建立一個pipeline專案。 然後寫第一個指令碼,例如: pipeline { agent any stages { stage('Build') { steps {