GitHub + circleCI 自动构建/自动部署 应用
GitHub + circleCI 自动构建/自动部署, 这里略过了单元测试,以部署 laravel 应用为例子
比起 gitlab + ansible + genkins 操作起来节省了很多硬件资源,感谢 微软 免费了 GitHub 私有仓库
1、GitHub 相关
a、创建 github 仓库(现在可以免费创建私有仓库了,个人项目能满足了)
b、配置 SSH 公钥,可以走 SSH 渠道免密 拉取代码
2、circleCI 相关
a、github 登陆 https://circleci.com ,创建一个任务,直接关联 github 的某个仓库
b、配置此任务构建时 从 GitHub checkout 代码时 的 SSH 凭证,从github 配置的ssh key中选一个即可
c、配置此任务部署时需要部署的 一对SSH的密钥(随便在哪里生成都行)中的 SSH rsa 私钥,******* 注意 : 将远程服务器需要在 ~/.ssh/authorized_keys 把在circleCI上部署的死要对应的公钥(id_rsa.pub)另起一行追加进去
3、整合代码
代码中加入.circleci文件夹,并添加配置信息,就简单的实现自动构建和自动部署了
部署后的站点
创建一个仓库并配置部署key
circlrCI 任务后台配置 代码检出需要用到的 github ssh key,直接选一个即可
circleCI 配置能用SSH 私钥登陆远程服务器的 key
circlrCI 配置任务信息
circlrCI 配置任务执行过程中可以执行的脚本
circlrCI 后台能看见任务列表
具体的 构建/部署任务 详情
对于个人站点来说,节省了不少手动操作时间
最后,附上 .circleci 的配置和相关脚本
config.yml
- version: 2
- jobs:
- build:
- docker:
- - image: circleci/php:7.1-browsers
- working_directory: /tmp/workspace
- steps:
- - run: echo "====================构建开始=============================="
- - checkout
- - restore_cache:
- keys:
- - v1-dependencies-{{ checksum "composer.json" }}
- # 如果没有匹配的缓存则使用最新的缓存
- - v1-dependencies-
- - run: composer install -n --prefer-dist
- # 运行单元测试
- # - run: phpunit
- - persist_to_workspace:
- root: .
- paths:
- - ./*
- - run: echo "====================构建完毕=============================="
- deploy:
- machine:
- timezone:
- Asia/Shanghai # 设置上海时区
- enabled: true
- working_directory: /tmp/workspace
- steps:
- - run: echo "====================部署开始=============================="
- - attach_workspace:
- at: /tmp/workspace
- - run: pwd && ls -al
- - run:
- name: Deploy Over SSH
- command: ./.circleci/deploy-master.sh
- - run: echo "====================部署完毕=============================="
- workflows:
- version: 2
- build-and-deploy:
- jobs:
- - build
- - deploy:
- requires:
- - build
- filters:
- branches:
- only: master
deploy-master.sh
- #!/usr/bin/env bash
- user=root
- host=xxx.xxx.xxx.xxx
- src=`pwd`"/"
- des=/data/www/api.www.zjj7.com/
- now=`date +"%Y-%m-%d %H:%M:%S"`
- rsync -vzrc --delete --exclude ".git" --exclude ".env" --exclude ".circleci" $src $user@$host:$des
- ssh $user@$host "sudo chown -R www:www $des"
- ssh $user@$host "chmod -R 775 $des/bootstrap/cache && chmod -R 775 $des/storage && cd $des && pwd && ls -al"
- echo "$now update $host $des code"
GitHub + circleCI 自动构建/自动部署 应用的更多相关文章
- 用Ant实现Java项目的自动构建和部署
原文地址:http://tech.it168.com/j/2007-11-09/200711091344781.shtml 本文请勿转载! Ant是一个Apache基金会下的跨平台的构 ...
- 用Ant实现Java项目的自动构建和部署(转)
Ant是一个Apache基金会下的跨平台的构件工具,它可以实现项目的自动构建和部署等功能.在本文中,主要让读者熟悉怎样将Ant应用到Java项目中,让它简化构建和部署操作. 一. ...
- 用Ant实现Java项目的自动构建和部署(转)
Ant是一个Apache基金会下的跨平台的构件工具,它可以实现项目的自动构建和部署等功能.在本文中,主要让读者熟悉怎样将Ant应用到Java项目中,让它简化构建和部署操作. 一. ...
- 利用jenkins实现自动构建、部署,提升团队开发效率
一大早就被群里的同学刷银川下雪的消息,看着我都发冷,突觉一阵凉风裹身,是不是该考虑秋裤了. 偏离主题,正文走起...... 使用jenkins目标:利用其结合maven完成自动构建,并部署到tomca ...
- 用Ant实现Java项目的自动构建和部署(转载以作收藏)
原文地址:http://tech.it168.com/j/2007-11-09/200711091344781.shtml 本文请勿转载! Ant是一个Apache基金会下的跨平台的构件 ...
- CentOS6.8下Jenkins+maven+tomcat+git+shell自动构建、部署web应用环境的搭建
参考资料:http://www.cnblogs.com/cheng95/p/6542036.html http://www.cnblogs.com/software-test/p/7068278.ht ...
- Window系统下用Ant实现Java项目的自动构建和部署
https://blog.csdn.net/xinxin19881112/article/details/7297021 Step 1: 从官网下载Ant包,官网地址http://ant.apache ...
- jenkins#自动构建并部署springboot的jar包
1.GitLab 8.0.0(版本比较低,配置比较简单) 配置 点击项目 --> settings --> web Hooks 2.jenkins配置
- Linux下Jenkins与GitHub自动构建Node项目(Vue)
根据上篇文章<Linux下Jenkins与GitHub自动构建NetCore与部署>,我们知道了Jenkins的强大功能,自动构建,部署了一个NetCore的Web,让开发人员专注于开发, ...
随机推荐
- 解密微信sqlite数据库
最近在研究解密微信APP的数据库, 1.通过Android手机内置备份功能,可以获取到微信的数据库文件,再通过adb传到电脑上. 2.获取微信EnMicroMsg.db库的密码(通过IMEI和uin值 ...
- learning uboot how to set ddr parameter in qca4531 cpu
DDR工作频率 在600MHZ. include/configs/board953x.h #define CFG_PLL_FREQ CFG_PLL_650_600_200 #d ...
- Integer封装类的相关知识
java中,在一些情况下会有自动装箱与自动拆箱. 自动拆箱/装箱是在编译期,依据代码的语法,决定是否进行拆箱和装箱动作.装箱过程:把基本类型用它们对应的包装类型进行包装,使基本类型具有对象特征.拆箱过 ...
- 使用 ADOX 将 Table 添加到 Catalog 时报“类型无效”的原因和解决方法
http://blog.csdn.net/kfhzy/article/details/6020283 http://blog.csdn.net/kfhzy/article/details/602054 ...
- 网页不能显示PNG验证码的解决办法
解决方法: 开始->运行,在运行输入框中输入 “regsvr32 c:\windows\system32\pngfilt.dll”(然后点击确定)如果在注册时出现 “已加载c:\windows\ ...
- 如何完全卸载 mysql 数据库
有时候MySQL不能完全卸载,这时候必须通过一些途径删除掉注册表和一些残余的文件,然后才能重新安装才可以成功! 1.控制面板——>所有控制面板项——>程序和功能,卸载mysql serve ...
- React Native笔记整理
判断一个APP页面时原生还是H5:http://www.cnblogs.com/sonice-cinsy/p/5671324.html 写给移动开发者的React Native指南:http://bl ...
- oracle function用法(本文来自百度文库)
函数调用限制 1.SQL语句中只能调用存储函数(服务器端),而不能调用客户端的函数 2.SQL只能调用带有输入参数,不能带有输出,输入输出函数 3.SQL不能使用PL/SQL的特有数据类型(boole ...
- Emacs矩形操作
原始矩形块模式 emacs以C-x r开头的命令来进行矩形操作.先用C-space或者C-@设一个mark,移动光标到另一点,用以下命令进行列操作: C-x r r 复制一个矩形区域到寄存器 C-x ...
- IDEA创建的Web项目配置Tomcat并启动Maven项目
点击如图所示的地方,进行添加Tomcat配置页面 弹出页面后,按照如图顺序找到,点击+号 tomcat Service -> Local 注意,这里不要选错了哦,还有一个TomE ...