虛擬機中 Jenkins 搭CI

Jenkins Doc

Install Java8

$ sudo add-apt-repository ppa:webupd8team/java
$ sudo apt-get update
$ sudo apt-get install oracle-java8-installer
...
$ java -version
...
$ sudo apt-get install oracle-java8-set-default
$ vim ~/.bashrc

...
JAVA_HOME=/usr/lib/jvm/java-8-oracle
JRE_HOME=/usr/lib/jvm/java-8-oracle/jre
...

$ source ~/.bashrc
$ echo $JAVA_HOME

Install Git

$ sudo apt-get install git
$ git config --global user.name *******
$ git config --global user.email *****@thoughtworks.com

Add SSH Key

  • $ ssh-keygen
  • $ cat ~/.ssh/id_rsa.pub
  • add SSH Key to GitHub

Jenkins

> mkdir jenkins
> cd jenkins
> wget http://mirrors.jenkins.io/war-stable/latest/jenkins.war

Update Vagrantfile

config.vm.network "forwarded_port", guest: 8080, host: 8080, host_ip: "127.0.0.1"

Get Password

java -jar jenkins.war --httpPort=8080
...
cat /home/vagrant/.jenkins/secrets/initialAdminPassword

Visit Here

Install Plugins

  • suggested
  • customized

Upload Jenkinsfile to GitHub

pipeline {
    agent { docker 'maven:3.3.3' }
    stages {
        stage('build') {
            steps {
                sh 'mvn --version'
            }
        }
    }
}

Jenkins

  • New Item
  • Multibranch Pipeline
  • Add Source: GitHub
  • Save

Build

pipeline {
    agent any
    stages {
        stage('Build') {
            steps {
                sh 'echo "Hello World"'
                sh '''
                    echo "Multiline shell steps works too"
                    ls -lah
                '''
            }
        }
    }
}
pipeline {
    agent any
    stages {
        stage('Deploy') {
            steps {
                retry(3) {
                    sh './flakey-deploy.sh'
                }

                timeout(time: 3, unit: 'MINUTES') {
                    sh './health-check.sh'
                }
            }
        }
    }
}

need chmod 777 ./flakey-deploy.sh or chmod +x ./flakey-deploy.sh.

pipeline {
    agent any
    stages {
        stage('Deploy') {
            steps {
                timeout(time: 3, unit: 'MINUTES') {
                    retry(5) {
                        sh './flakey-deploy.sh'
                    }
                }
            }
        }
    }
}
pipeline {
    agent any
    stages {
        stage('Test') {
            steps {
                sh 'echo "Fail!"; exit 1'
            }
        }
    }
    post {
        always {
            echo 'This will always run'
        }
        success {
            echo 'This will run only if successful'
        }
        failure {
            echo 'This will run only if failed'
        }
        unstable {
            echo 'This will run only if the run was marked as unstable'
        }
        changed {
            echo 'This will run only if the state of the Pipeline has changed'
            echo 'For example, if the Pipeline was previously failing but is now successful'
        }
    }
}

Environment Variables

before stages or in stage

environment {
    DISABLE_AUTH = 'true'
    ...
    
    TEST_CREDENTIAL_PWD = credentials('TEST_CREDENTIAL_ID')
    TEST_CREDENTIAL_TEXT_ID = credentials('TEST_CREDENTIAL_TEXT_ID')
}

Jenkins -> Credentials -> Add Credential

Gradle

$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

$ brew update && brew install gradle
$ gradle -v

build.gradle

apply plugin: 'idea'
//and standard one
apply plugin: 'java'

repositories {
    jcenter()
    mavenCentral()
}

task wrapper(type: Wrapper) {
    gradleVersion = '4.2'
}

dependencies {
    testCompile 'junit:junit:4.12'  // for unit test
}

Gradle Wrapper

$ gradle wrapper

$ ./gradlew task
$ ./gradlew cleanIdea
$ ./gradlew idea
$ ./gradlew build 

Change Jenkinsfile

build stage: ./gradlew build
test stage: ./gradlew check

Project Demo

感謝我的pair: 亞鑫

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末盗飒,一起剝皮案震驚了整個濱河市士袄,隨后出現(xiàn)的幾起案子责循,更是在濱河造成了極大的恐慌充活,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,817評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件豺谈,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機抑进,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來睡陪,“玉大人寺渗,你說我怎么就攤上這事±计龋” “怎么了信殊?”我有些...
    開封第一講書人閱讀 157,354評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長汁果。 經(jīng)常有香客問我涡拘,道長,這世上最難降的妖魔是什么据德? 我笑而不...
    開封第一講書人閱讀 56,498評論 1 284
  • 正文 為了忘掉前任鳄乏,我火速辦了婚禮,結(jié)果婚禮上棘利,老公的妹妹穿的比我還像新娘橱野。我一直安慰自己,他們只是感情好善玫,可當我...
    茶點故事閱讀 65,600評論 6 386
  • 文/花漫 我一把揭開白布水援。 她就那樣靜靜地躺著,像睡著了一般蝌焚。 火紅的嫁衣襯著肌膚如雪裹唆。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,829評論 1 290
  • 那天只洒,我揣著相機與錄音许帐,去河邊找鬼。 笑死毕谴,一個胖子當著我的面吹牛成畦,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播涝开,決...
    沈念sama閱讀 38,979評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼循帐,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了舀武?” 一聲冷哼從身側(cè)響起拄养,我...
    開封第一講書人閱讀 37,722評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎银舱,沒想到半個月后瘪匿,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體跛梗,經(jīng)...
    沈念sama閱讀 44,189評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,519評論 2 327
  • 正文 我和宋清朗相戀三年棋弥,在試婚紗的時候發(fā)現(xiàn)自己被綠了核偿。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,654評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡顽染,死狀恐怖漾岳,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情粉寞,我是刑警寧澤尼荆,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站仁锯,受9級特大地震影響耀找,放射性物質(zhì)發(fā)生泄漏翔悠。R本人自食惡果不足惜业崖,卻給世界環(huán)境...
    茶點故事閱讀 39,940評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蓄愁。 院中可真熱鬧双炕,春花似錦、人聲如沸撮抓。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,762評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽丹拯。三九已至站超,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間乖酬,已是汗流浹背死相。 一陣腳步聲響...
    開封第一講書人閱讀 31,993評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留咬像,地道東北人算撮。 一個月前我還...
    沈念sama閱讀 46,382評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像县昂,于是被迫代替她去往敵國和親肮柜。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,543評論 2 349

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理倒彰,服務(wù)發(fā)現(xiàn)审洞,斷路器,智...
    卡卡羅2017閱讀 134,633評論 18 139
  • 使用SpringBoot+SpringCloud寫了一套APP后臺服務(wù)待讳,也引入了當下比較流行的微服務(wù)的理念芒澜,模塊也...
    CptHiro閱讀 34,431評論 4 124
  • 本文接上篇缩赛,在VirtualBox+Vagrant搭建虛擬機成功后,一步步從零開始基于Jenkins平臺搭建CI撰糠,...
    sunnyaxin閱讀 1,045評論 5 3
  • 我看不清 看不清柳條的婆娑枝葉 看不清花瓣上的跳躍露珠 我看不清 看不清湖面的微波蕩漾 看不清柱石上的小篆楷體 我...
    翱藍閱讀 412評論 0 1
  • 說起來,一個月前就想著為你慶祝生日术辐,我的好閨蜜砚尽。也許我是把你看得比較重要,也許是我感性辉词,也許我還想要讓你覺得很溫暖...
    lvyei723閱讀 567評論 0 6