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-2、pipeline指令碼切換角色,執行指令碼等要點
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: 2、Redis高可用原理,搭建與驗證
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
1、Apache啟動失敗,請檢查相關配置。2、MySQL5.1啟動失敗,請檢查相關配置。
純屬個人遇到的問題,在實驗室的win7系統執行APMServ5.2.6沒什麼問題,在自己的電腦win10系統上,已經安裝在根目錄(指直接整個APM資料夾丟CDE任意一個盤)啦,可是還是出現上述錯誤,百度了各種辦法都不行,最後,退出,然後去工作管理員關掉了apm的所有服務。接著
思科項目1實戰(vlan、靜態,單臂,浮動路由、vrrp/standby、nat、端口映射,遠程等)
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+Jmeter、jmeter指令碼執行執行失敗,jenkins構建成功
搭建了一套介面自動化環境,一鍵構建執行介面指令碼,生成測試報告,失敗情況下,傳送郵件通知相關人員。基本思路是這樣的,但是,遇到了一個問題,瀏覽測試報告格式及檢視相關內容是否正確的過程中,發現有測試用例failure的情況,並沒有傳送郵件給相關人員。1、查詢問題檢視jmeter
jenkins-1、建立pipeline及相關指令碼編寫
新建立一個pipeline專案。 然後寫第一個指令碼,例如: pipeline { agent any stages { stage('Build') { steps {