Webhook与Jenkins自动构建(上)
2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
webhook是個(gè)在特定情況下通過web觸發(fā)的一種api,Web 鉤子用于在項(xiàng)目發(fā)生相關(guān)事件時(shí)通知外部服務(wù)器,gitlab的web hooks跟git hook類似。也是當(dāng)項(xiàng)目發(fā)生提交代碼、提交tag等動(dòng)作會(huì)自動(dòng)去調(diào)用url,這個(gè)url可以是更新代碼?;蛘咂渌僮?。
githook
本地Hook
本地 Hook 只影響它們所在的倉庫。以下是最常用的 6 個(gè)本地 Hook:
- pre-commit
- prepare-commit-msg
- commit-msg
- post-commit
- post-checkout
- pre-rebase 前四個(gè) Hook 介入到版本提交的生命周期,后兩個(gè)允許執(zhí)行一些額外的操作,分別為 git checkout 和 git rebase 的安全檢查。所有與帶 pre- 的 Hook 代表即將發(fā)生的某個(gè)階段,帶 post- 只用于通知。
pre-commit
pre-commit 腳本在每次你運(yùn)行 git commit 命令時(shí),Git 向你詢問提交信息或者生產(chǎn)提交對(duì)象時(shí)被執(zhí)行。你可以用這個(gè) Hook 來價(jià)差即將被提交的代碼快照。比如說,你可以運(yùn)行一些自動(dòng)化測(cè)試,保證這個(gè)提交不會(huì)破壞現(xiàn)有的功能。
prepare-commit-msg
prepare-commit-msg這個(gè) Hook 在 pre-commit Hook 在文本編輯器中生效提交信息之后被調(diào)用。prepare-commit-msg 的參數(shù)可以是下列三個(gè):
包含提交信息的文件名。你可以在原地更改提交信息。 提交類型??梢允切畔?#xff08;-m 或 -F 選項(xiàng)),模板(-t選項(xiàng)),merge(如果是個(gè)合并提交)或squash(如果這個(gè)提交插入了其他提交)。 相關(guān)提交的SHA1哈希字串。只有當(dāng)-c,-C,或--amend選項(xiàng)出現(xiàn)時(shí)才需要。
post-commit
post-commit Hook 在 commit-msg Hook 之后立即被運(yùn)行。它無法改變 git commit 的結(jié)果,主要用于通知。這里我們?cè)敿?xì)來講述一下這個(gè) Hook ,因?yàn)槲覀冎笠玫剿?/p>
這個(gè)腳本沒有任何參數(shù),而且退出狀態(tài)不會(huì)影響提交。對(duì)于大多數(shù)的 post-commit 腳本來說,你只是想訪問你剛剛創(chuàng)建的提交。你可以用 git rev-parse HEAD來獲得最近一次提交的 SHA1 哈希字符串,或者你可以用 git log -l HEAD 來獲得完整的信息。
post-checkout
post-checkout Hook 和 post-commit Hook 很像,但它在你用 git checkout查看引用的時(shí)候被調(diào)用。
gitlab runner
docker 運(yùn)行
docker run -d --name gitlab-runner \-v /srv/gitlab-runner/config:/home/gitlab-runner \-v /var/run/docker.sock:/var/run/docker.sock \gitlab/gitlab-runnergitlab-runner注冊(cè)
輸入:
gitlab-ci-multi-runner register這里主要是需要兩個(gè)信息進(jìn)行注冊(cè),一個(gè)是gitlab的url,和runner token。 可以在gitlab CI/CD 的Runners settings中Specific Runners找到,如下所示:
Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com ) https://172.17.0.2 (因?yàn)槲疫@里gitlab是放在dockder下面因此需要改成docker內(nèi)網(wǎng)地址) Please enter the gitlab-ci token for this runner kpSL7ViitQLYbSs3zS1x Please enter the gitlab-ci description for this runner my-runner INFO[0034] fcf5c619 Registering runner... succeeded Please enter the executor: shell, docker, docker-ssh, ssh? shellgitlab-runner運(yùn)行
檢查runner的狀態(tài): gitlab-ci-multi-runner verify
重啟所有runner: gitlab-ci-multi-runner run
重啟單個(gè)runner: gitlab-ci-multi-runner run-single --url https://172.17.0.2 --token runnerToken --executor shell
需要在gitlab-runner環(huán)境下按照運(yùn)行所需要
轉(zhuǎn)載于:https://my.oschina.net/Kanonpy/blog/2052073
總結(jié)
以上是生活随笔為你收集整理的Webhook与Jenkins自动构建(上)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 分布式事务概览
- 下一篇: Activiti 6.x【11】Inte