[Jenkins] 安裝 Jenkins 與Laravel在jenkins上執行測試
安裝
我這邊使用 docker 作為快速建置的方式可以使用 https://hub.docker.com/repository/docker/neilwangtw/jenkins-php72
此為環境 PHP7.2 且 最新的 jenkins
詳細的 Dockerfile 與 docker-compose.yml 在這
使用方式就是先建立個目錄 /data/jenkins
接著進去裡面將 docker-compose.yml 啟起來
docker-compose up -d
jenkins 預設是使用 8080 port
接下來就是去 web 介面設定
一開始在 /data/jenkins/secrets/initialAdminPassword 會有一組 hash
是拿來解鎖 Jenkins 的
輸入完之後
一開始可以先安裝 jenkins 推薦的 plugin
有額外需要的之後可以再裝!
到這邊就設定完了
從 bitbucket 上取得 repo
1. 先透過 docker 產生一組 ssh 的金鑰# docker exec -it {jenkins docker id} bash
# su jenkins
$ cd ~
$ ssh-keygen
這時候就金鑰就會在實體主機的 /data/jenkins/.ssh
公鑰: /data/jenkins/.ssh/id_rsa.pub
私鑰: /data/jenkins/.ssh/id_rsa
私鑰: /data/jenkins/.ssh/id_rsa
註: 如果遇到權限問題,可以先把 /data/jenkins 的權限設定到 777
或是先在 docker 內部產生一個檔案,看一下對應實體主機,
或是先在 docker 內部產生一個檔案,看一下對應實體主機,
所產生的 user 與 group 為何,我自己這邊產生的是 tss:kvm
2. 先設定用來可以存取 bitbucket 的密鑰
在 Repository Settings 內有 Access keys
或是直接到 https://bitbucket.org/組織/專案名稱/admin/access-keys/
或是直接到 https://bitbucket.org/組織/專案名稱/admin/access-keys/
去新增 jenkins 的 ssh 公鑰
這個設定完就代表 jenkins 這個用戶可以去 bitbucket 上 pull repository 了!
3. 將 ssh 私鑰設定在 jenkins 內部
在 jenkins 中,要先去設定一下私鑰
首頁左上角的 新增作業 > 建置 Free-Style 軟體專案
註:要記得前往 管理 Jenkins > Script 主控台輸入底下的語法,讓單元測試的網頁可以正常呈現
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "default-src 'self'; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline';");
System.setProperty('user.timezone', 'Asia/Taipei');
System.setProperty('org.apache.commons.jelly.tags.fmt.timeZone', 'Asia/Taipei');
留言
張貼留言