[Linux] 在 Ubuntu 上安裝 Jenkins CI Server 來 Bulid NetCore 2.0

近期都在研究 NetCore 但如果要上 Linux 的話就變成每次都要下指令重建專案 ,剛好有看到 Jenkins 支援 NetCore 且可以省去我在 SSH 上自己下指令的動作,於是乎就跑去研究了一下這塊,這邊留個筆記方便日後查閱。

Jenkins 安裝

  1. 下載套件清單 (否則搜尋不到)
1
2
3
4

wget -q -O - https://pkg.jenkins.io/debian/jenkins-ci.org.key | sudo apt-key add -
sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
sudo apt-get update
  1. 安裝 Jenkins
1
2

sudo apt-get install jenkins
  1. 接著輸入 http://localhost:8080 並在 /var/lib/jenkins/secrets/initialAdminPassword 找到的你管理員密碼
  2. 這邊可以選擇要安裝社群建議的套件還是自訂套件,因為我是第一次安裝所以先選擇左邊

  3. 安裝完後會要求你設定管理員帳號密碼,設定完後就安裝完畢囉 !!

  4. 接著從左邊選單點選 管理 Jenkins -> 設定全域安全性
  5. 確認 Allow anonymous read access 是沒有打勾的,否則大家都可以亂搞囉

安裝NetCore 2.0 + Node.js + npm

  1. 下載 Node.js 套件清單 (若無額外下載清單則會安裝到很舊的版本,且會有各種奇奇怪怪的錯誤跑出來)
1
2
3

curl -sL https://deb.nodesource.com/setup_8.x -o nodesource_setup.sh sudo bash nodesource_setup.sh
sudo bash nodesource_setup.sh
  1. 安裝 Node.js + npm
1
2

sudo apt-get install nodejs
  1. 下載 NetCore 套件清單
1
2
3
4

curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
sudo mv microsoft.gpg /etc/apt/trusted.gpg.d/microsoft.gpg
sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-ubuntu-xenial-prod xenial main" > /etc/apt/sources.list.d/dotnetdev.list'
  1. 開始安裝 NetCore 2.0
1
2
3

sudo apt-get update
sudo apt-get install dotnet-sdk-2.0.2
  1. 等他跑完就可以囉

設定 Jenkins 建置 .NetCore

  1. 首先要先設定環境變數,否則 Jenkins 找不到 dotnet
    管理 Jenkins -> 設定系統 -> 全域屬性 -> 環境變數 這邊打勾 Key 輸入 PATH
    其值可以在 Linux 主機上下 echo $PATH 得到
  2. 接著選擇左邊選單的 新增作業
  3. 選擇第一個 建置 Free-Style 軟體專案
  4. 因為我要從git上面抓取檔案下來,所以要在 原始碼管理 設定 git 位置
  5. 建置 -> 執行 Shell -> 指令 輸入下方指令,就可以順利建置囉 !!
1
2
3
4
5
6
7
8
9
10
11
#!/bin/sh
dotnet --info
dotnet --version

cd ./src/NetCoreWebApp
dotnet restore

rm -rf $WORKSPACE/jenkins_publish
mkdir $WORKSPACE/jenkins_publish

dotnet publish ./NetCoreWebApp.csproj -c:Release -o $WORKSPACE/jenkins_publish

 
 

參考:

  1. [Linux] 架設 Jenkins 筆記,以 Git plugin 與 PHP CodeIgniter - command-line interface (CLI) 定期任務為例 @ Ubuntu 14.04
  2. .Net Core Linux centos7行—jenkins linux 构建.net core web app
  3. [ubuntu] 安裝 nodejs 與 npm