Webhook与Jenkins自动构建(上)
2019獨角獸企業重金招聘Python工程師標準>>>
webhook是個在特定情況下通過web觸發的一種api,Web 鉤子用于在項目發生相關事件時通知外部服務器,gitlab的web hooks跟git hook類似。也是當項目發生提交代碼、提交tag等動作會自動去調用url,這個url可以是更新代碼。或者其他操作。
githook
本地Hook
本地 Hook 只影響它們所在的倉庫。以下是最常用的 6 個本地 Hook:
- pre-commit
- prepare-commit-msg
- commit-msg
- post-commit
- post-checkout
- pre-rebase 前四個 Hook 介入到版本提交的生命周期,后兩個允許執行一些額外的操作,分別為 git checkout 和 git rebase 的安全檢查。所有與帶 pre- 的 Hook 代表即將發生的某個階段,帶 post- 只用于通知。
pre-commit
pre-commit 腳本在每次你運行 git commit 命令時,Git 向你詢問提交信息或者生產提交對象時被執行。你可以用這個 Hook 來價差即將被提交的代碼快照。比如說,你可以運行一些自動化測試,保證這個提交不會破壞現有的功能。
prepare-commit-msg
prepare-commit-msg這個 Hook 在 pre-commit Hook 在文本編輯器中生效提交信息之后被調用。prepare-commit-msg 的參數可以是下列三個:
包含提交信息的文件名。你可以在原地更改提交信息。 提交類型。可以是信息(-m 或 -F 選項),模板(-t選項),merge(如果是個合并提交)或squash(如果這個提交插入了其他提交)。 相關提交的SHA1哈希字串。只有當-c,-C,或--amend選項出現時才需要。
post-commit
post-commit Hook 在 commit-msg Hook 之后立即被運行。它無法改變 git commit 的結果,主要用于通知。這里我們詳細來講述一下這個 Hook ,因為我們之后要用到它。
這個腳本沒有任何參數,而且退出狀態不會影響提交。對于大多數的 post-commit 腳本來說,你只是想訪問你剛剛創建的提交。你可以用 git rev-parse HEAD來獲得最近一次提交的 SHA1 哈希字符串,或者你可以用 git log -l HEAD 來獲得完整的信息。
post-checkout
post-checkout Hook 和 post-commit Hook 很像,但它在你用 git checkout查看引用的時候被調用。
gitlab runner
docker 運行
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注冊
輸入:
gitlab-ci-multi-runner register這里主要是需要兩個信息進行注冊,一個是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 (因為我這里gitlab是放在dockder下面因此需要改成docker內網地址) 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運行
檢查runner的狀態: gitlab-ci-multi-runner verify
重啟所有runner: gitlab-ci-multi-runner run
重啟單個runner: gitlab-ci-multi-runner run-single --url https://172.17.0.2 --token runnerToken --executor shell
需要在gitlab-runner環境下按照運行所需要
轉載于:https://my.oschina.net/Kanonpy/blog/2052073
總結
以上是生活随笔為你收集整理的Webhook与Jenkins自动构建(上)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 分布式事务概览
- 下一篇: Activiti 6.x【11】Inte