利用 Github push 驅動 Jenkins 執行 repo 指令 [Public]
更新日期:1. 安裝完 Jenkins (於 Ubuntu 上 安裝 install Jekins)
2. 建立 Github repo,測試的所以設定 public 即可,.gitignore 要小心,測試可以不先不要擺他。
3. 專案下載下來,在根目錄產生 Jenkinsfile,沒有副檔名
4. 裡面填上
執行成功會產生 /tmp/Start.txt 與 /tmp/End.txt
5 整個 push 到 repo
6. 進入 repo -> settings -> webhooks -> add webhook
Payload URL 填入 jenkins 的 url, 本地端無法被訪問,除非用跳板。
填入 http://<domain_或是_ip:port>/github-webhook/
其他如果你知道要填什麼也可以改,不然就用預設。
按下 add webhook 按鈕
這樣 repo 收到 push 就會往該 url 發送 trigger event。
7. 進入 Jenkins -> new item
填寫 item 名稱,你喜歡的即可
選 pipeline > 按下 ok
8. 打勾 GitHub hook trigger for GITScm polling
9. Pipeline 選
Repository URL 填 clone 的那個 url
例如:https://github.com/<your_name>/<your_project_name>.git
Branch Specifier (blank for 'any') 填 branch
如果你是自己 git 產生的專案預設是 master
如果你是 github 產生的專案預設是 main
(master 這個字眼 github 認為政治不正確。)
10. 按下 save
11. 進到該 item 裡面,我們的設定不會自動 build,所以左邊按一下 build now 做第一次的執行。
成功的話 /tmp/Start.txt 和 /tmp/End.txt 會產生出來
12. 回到 Jenkinsfile,改成
13. commit 後 push,就會驅動 github 的 webhook,然後驅動 Jenkins
14. 成功的話,會多一個 /tmp/Running.txt