git server side hook 试用
git 的hook 是一个很方便的功能,我们可以使用hook 做好多处理,比如client side hook 进行
提交格式校验,server side 进行ci/cd 处理
测试使用docker-compose 运行 git server 使用gogs
环境准备
- docker-compose
version: '3' services: gogs: image: gogs/gogs ports: - "10022:22" - "10080:3000" volumes: - ./data/gogs:/data depends_on: - mysql mysql: image: mysql:5.7.16 volumes: - ./gogs/mysql:/var/lib/mysql ports: - 3308:3306 command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci environment: MYSQL_ROOT_PASSWORD: dalongrong MYSQL_DATABASE: gogs MYSQL_USER: gogs MYSQL_PASSWORD: dalongrong TZ: Asia/Shanghai
- 配置gogs
http://localhost:10080 按照提示即可
配置git server side hook
server side hook 在custom_hooks 目录下
- 创建项目
- 配置hook
- server 端效果
测试
- clone 代码
git clone http://localhost:10080/dalong/demo.git
- 修改提交
修改index.html 即可
- 效果
heroku 应用部署类似的方式
说明
heroku 的应该部署模型也是使用类似的方式,当我们进行提交之后,触发应用的构建(nodejs npm install 容器构建,应用启动。。。)
同时我们使用hook 可以做好多比较灵活的ci/cd 开发
参考资料
https://github.com/gogs/gogs
https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks#Server-Side-Hooks
https://devcenter.heroku.com/articles/getting-started-with-nodejs#deploy-the-app