Hero Image
Hero Image
Jenkinsfile 範例

Some Jenkinsfile examples 並行 #!/usr/bin/env groovy pipeline { agent any stages { stage("Build") { steps { sh 'mvn -v' } } stage("Testing") { parallel { stage("Unit Tests") { agent { docker 'openjdk:7-jdk-alpine' } steps { sh 'java -version' } } stage("Functional Tests") { agent { docker 'openjdk:8-jdk-alpine' } steps { sh 'java -version' } } stage("Integration Tests") { steps { sh 'java -version' } } } } stage("Deploy") { steps { echo "Deploy!" } } } } When #!/usr/bin/env groovy pipeline { agent any environment { VALUE_ONE = '1' VALUE_TWO = '2' VALUE_THREE = '3' } stages { // skip a stage while creating the pipeline stage("A stage to be skipped") { when { expression { false } //skip this stage } steps { echo 'This step will never be run' } } // Execute when branch = 'master' stage("BASIC WHEN - Branch") { when { branch 'master' } steps { echo 'BASIC WHEN - Master Branch!' } } // Expression based when example with AND stage('WHEN EXPRESSION with AND') { when { expression { VALUE_ONE == '1' && VALUE_THREE == '3' } } steps { echo 'WHEN with AND expression works!' } } // Expression based when example stage('WHEN EXPRESSION with OR') { when { expression { VALUE_ONE == '1' || VALUE_THREE == '2' } } steps { echo 'WHEN with OR expression works!' } } // When - AllOf Example stage("AllOf") { when { allOf { environment name:'VALUE_ONE', value: '1' environment name:'VALUE_TWO', value: '2' } } steps { echo "AllOf Works!!" } } // When - Not AnyOf Example stage("Not AnyOf") { when { not { anyOf { branch "development" environment name:'VALUE_TWO', value: '4' } } } steps { echo "Not AnyOf - Works!" } } } }

Hero Image
Shell 腳本學習筆記

Shell 腳本學習筆記 執行算術運算 val=`expr $a + $b` 運算符 符號 說明 示例 ! 非運算 [ ! false ] -o 或運算 [ $a -lt 20 -o $b -gt 20 ] -a 與運算 [ $a -lt 20 -a $b -gt 20 ] = 相等檢測 [ $a = $b ] != 不相等檢測 [ $a != $b ] -z 字串長度是否為 0,為 0 則回傳 true [ -z $a ] -n 字串長度不為 0,不為 0 回傳 true [ -n $a ] str 檢測字串是否為空,不為空回傳 true [ $a ] -b 檢測檔案是否是區塊裝置檔 [ -b $file ] -c 檢測檔案是否是字元裝置 .. -d 檢測檔案是否為目錄 [ -d $file ] -f 檢測檔案是否為一般檔案 [ -f $file ] -r 檢測檔案是否可讀 .. -w 檢測檔案是否可寫 .. -x 檢測檔案是否可執行 .. -s 檢測檔案是否為空 .. -e 檢測檔案是否存在 .. 特殊變數 變數 含義 $0 目前腳本的檔名 $n 傳遞給腳本或函式的參數,n 表示第幾個參數 $# 傳遞給腳本或函式的參數個數 $* 傳遞給腳本或函式的所有參數,所有參數視為一個詞,例如 “1 2 3” $@ 傳遞給腳本或函式的所有參數,每個參數視為一個詞,用雙引號包含,例如 “1” “2” “3” $? 上個命令的退出狀態,或函式的回傳值 $$ 目前 Shell 行程 ID;對 Shell 腳本而言,就是該腳本所在的行程 ID POSIX 程式退出狀態 狀態碼 含義 0 命令成功退出 > 0 在重導向或單詞展開期間(~、變數、命令、算術展開以及單詞切割)失敗 1 - 125 命令不成功退出,各命令自行定義特定退出值含義 126 命令找到但檔案無法執行 127 命令未找到 > 128 命令因收到信號而終止 輸入輸出重導向 命令 說明 command > file 將輸出重導向到 file command > file 將輸出以追加的方式重導向到 file n > file 將檔案描述符為 n 的檔案重導向到 file n » file 將檔案描述符為 n 的檔案以追加的方式重導向到 file n >& m 將輸出檔案 m 和 n 合併 n <& m 將輸入檔案 m 和 n 合併 « tag 將開始標記 tag 和結束標記 tag 之間的內容作為輸入 檔案包含 使用 . 或 source 包含檔案