【请收藏】自动化构建部署之Circle CI使用(GitHub/CircleCI/Vue)
CI/CD 工具介绍
从上图对比可以看到 各自有优缺点,Jenkins
有点是免费且跨平台,而Travis CI
和Circle CI
是收费的,且不支持windows
,但会为开源的项目免费提供一些服务,私有的就需要收费了。
Circle CI使用
官网:https://circleci.com/
1. 注册
点击右上角Sign Up
按钮,点击Sign up with Github
:
进入授权界面:
点击Authorize circleci
按钮,然后需要输入密码:
输入密码成功后,点选一下自己的组织即可:
进入界面我们可以看到我们仓库里的项目:
2. 创建Github仓库
注意这里要选择
Public
,私有项目在CI/CD
需要花钱的哦
3. 创建.yml配置文件
首先把github的项目clone到本地,然后在根目录创建.circleci
文件夹,在文件夹里创建config.yml
文件,文件内容:
version: 2
jobs:build:docker:- image: circleci/node:10steps:- run: echo "A first hello"- run: npm -v
然后提交到github远程仓库:
git add .
git commit -m "add circle config"
git push origin master
查看下这里已经推送成功了:
4. 设置Circle CI
在circle ci
后台Projects
里已经多出了一个circle-demo
项目:
点击Set Up Project
来设置,第一次会询问是否有config.yml
配置文件,而且给出了一个模板,因为我们已经在根目录配置了,所以直接Build
就行,以下是成功编译的结果:
点击workflow
可以看到详细信息:
可以看到构建仅花了4s钟的时间,速度还是很快的,点击下面的build
可以看到每一步输出的结果:
是不是很兴奋呢?
5. 配置生产项目(Vue项目)
先创建一个vue
项目,然后合并到之前创建的circle-demo
目录:
因涉及到checkout
代码,所以先要设置ssh
密钥,点击Project Settings
:
点击左侧 SSH Keys
,点击Authorize with GitHub
:
然后授权:
再回来点击Add User Key
:
点击后创建了新的SSH Key
(后面会用到
)
创建这个key的作用是可以直接访问Github私有仓库,防止没有权限读写
添加完成后,我们来编辑config.yml
文件:
version: 2
jobs:build:docker:- image: circleci/node:10branches:only:- mastersteps:- add_ssh_keys:fingerprints:- "0c:27:f4:42:c6:ab:3e:cf:3c:09:f3:d1:2c:62:92:6b"- checkout- run: echo "A first hello"- run: npm -v- run:name: Installcommand: yarn install- run:name: Buildcommand: yarn build
文件里的
fingerprints
就是上一步设置的User SSH Key
。
然后把所有代码提交到远程仓库,可以看到此时已经自动触发了Circle CI
的构建工作:
整个过程花了44s的时间,看下最后一步Build
过程:
嗯~ 是不是有内味了~
6. 缓存依赖
Circle CI
提供了缓存功能,因为每次构建都会安装一些插件,node_modules
文件夹里文件非常多,每次安装时间很长,如果缓存下来构建就非常快了。
- restore_cache:keys:- dependencies_circle_demo
- run:name: Installcommand: yarn install
- save_cache:paths:- node_moduleskey: dependencies_circle_demo
7. 发布到Github pages
在项目根目录新建一个文件夹scripts
,新建deploy.sh
:
#!/bin/shset -e# 打印当前的工作路径
pwd
remote=$(git config remote.origin.url)echo 'remote is: '$remote# 新建一个发布的目录
mkdir gh-pages-branch
cd gh-pages-branch
# 创建的一个新的仓库
# 设置发布的用户名与邮箱
git config --global user.email "$GH_EMAIL" >/dev/null 2>&1
git config --global user.name "$GH_NAME" >/dev/null 2>&1
git init
git remote add --fetch origin "$remote"echo 'email is: '$GH_EMAIL
echo 'name is: '$GH_NAME
echo 'sitesource is: '$siteSource# 切换gh-pages分支
if git rev-parse --verify origin/gh-pages >/dev/null 2>&1; thengit checkout gh-pages# 删掉旧的内容git rm -rf .
else git checkout --orphan gh-pages
fi# 把构建好的文件目录给拷贝进来
cp -a "../${siteSource}/." .ls -la# 把所有的文件添加到git
git add -A
git commit --allow-empty -m "Deploy to GitHub pages [ci skip]"
git push --force --quiet origin gh-pages# 资源回收,删除临时分支与目录
cd ..
rm -rf gh-pages-branchecho "Finished Deployment!"
修改config.yml
配置文件:
version: 2
jobs:build:docker:- image: circleci/node:10branches:only:- mastersteps:- add_ssh_keys:fingerprints:- "0c:27:f4:42:c6:ab:3e:cf:3c:09:f3:d1:2c:62:92:6b"- checkout- restore_cache:keys:- dependencies_circle_demo- run:name: Installcommand: yarn install- save_cache:paths:- node_moduleskey: dependencies_circle_demo- run:name: Buildcommand: yarn build- run:name: Prepare shell commandscommand: chmod +x scripts/deploy.sh- run:name: Run Deploy to Github pagescommand: ./scripts/deploy.sh
添加circle ci
环境变量,同样在项目设置里:
- GH_EMAIL 就是你的邮箱
- GH_NAME 就是你的用户名
- siteSource 是 dist (打包的目录)
然后提交push到GitHub,自动触发构建任务:
我们来看下结果:
好,发布完成后,我们来找一下发布的地址在哪,首先去GitHub
项目中,点击Settings
:
往下滚可以看到GitHub Pages
里面会有部署的地址:
点开这个链接,额。。。貌似是空白的,原来控制台报错了404
:
有经验的老手一猜就知道是vue打包构建需要配置下,就是publicPath
这个选项,可以参考下面介绍:
vue cli官网介绍:https://cli.vuejs.org/zh/config/#vue-config-js
也可以看这篇:vue.config.js 配置参考
在项目根目录新建vue.config.js
配置文件:
module.exports = {publicPath: process.env.NODE_ENV === 'production' ? '/circle-demo': '/'
}
因为GitHub项目名为circle-demo
,GitHub page
生成的路径里带有circle-demo
,所以这里需要修改publicPath
在生产环境为circle-demo
,最终提交代码,push到GitHub再重新构建,刷新页面,就OK啦:
Circle CI总结
GitHub
账号注册,授权- 新建项目添加
.circleci/config.yml
文件 - 配置脚本任务,流程:环境->构建->(缓存)->发布
【请收藏】自动化构建部署之Circle CI使用(GitHub/CircleCI/Vue)相关推荐
- 【请收藏】自动化构建部署之Travis CI使用(GitHub/Travis CI/Vue)
文章目录 CI/CD 工具 Travis CI 使用 1. 注册 2. 新建Github仓库 3. 创建vue项目 4. 配置Travis CI 5. 发布到GitHub pages Travis C ...
- 自动化构建部署(CICD)
项目管理之自动化构建部署(CICD) 理解敏捷项目管理 掌握ones使用 掌握GitLab使用 掌握Jenkins自动化项目构建与部署 1. 研发管理概述 1.1.概念 研发管理就是在研发体系结构设 ...
- 项目管理之自动化构建部署(CICD)
项目管理之自动化构建部署(CICD) 1. 研发管理概述 [目标] 理解敏捷项目管理 [路径] 1:了解研发管理概念 2:了解敏捷开发 3:了解DevOps [讲解] 1.1. 研发管理概念 研发 ...
- GitHub+Vue自动化构建部署
GitHub+Vue自动化构建部署 GitHub+Vue自动化构建 懒是第一生产力,写Vue都知道,写完了想在服务器上跑,就得npm run build,然后将生成的dist目录下的文件放到web目录 ...
- 云效搭建流水线实现自动化构建部署
前言 云效,是阿里云提供的一款服务类产品,能够多人协作开发集成.多种编程语言构建打包和分布式集群部署发布等服务.轻松搭建从代码提交.集成.构建到测试环境.预发环境.线上环境部署发布验证的持续交付流水线 ...
- Docker安装Jenkins实现自动化构建部署到Tomcat
安装Docker 直接装一个docker-toolbox就好了,下载最下面的最新版 http://mirrors.aliyun.com/docker-toolbox/windows/docker-to ...
- 自动化构建部署之Jenkins安装【Docker容器】
文章目录 1. 在Docker中安装Jenkins 2. 配置清华加速源 3. 离线安装 4. 权限管理 前面几篇文章分别介绍了Travis CI.Circle CI,这次开始整Jenkins,它是开 ...
- jenkins和docker实现自动化构建部署
应用场景 程序员开发应用,开发后需要提交gitlub,然后从gitlab拉取代码,进行构建,发布到tomcat中然后发布看呈现效果,这样的工作是频繁反复的在进行的,浪费了程序员的大量时间,那么能不能把 ...
- vue自动化部署linux,GitHub+Vue自动化构建部署
GitHub+Vue自动化构建 懒是第一生产力,写Vue都知道,写完了想在服务器上跑,就得npm run build,然后将生成的dist目录下的文件放到web目录下,但是每次都这样搞好像很麻烦,然后 ...
最新文章
- 用yum查询想安装的软件
- hibernate 三种查询方式源码跟踪及总结
- java工程mvn引用jar_maven 项目加载本地JAR
- wireshark网卡权限_网络分析系列之六_Wireshark安装
- 使用Xerte创建简单的在线学习资料的指南
- 大家不要催!雷军的螺丝刀已经准备好了...
- python是什么类型的语言-python到底是什么类型的语言
- 读取nacos_使用nacos配置多环境切换
- 卡方分箱(chi-square)1
- 地理探测器的学习与研究初探
- 一次简单的软件系统培训计划安排
- Word控件Spire.Doc 转换教程(十六):在 C# 中将 Word 转换为 PDF/A
- 网络爬虫中Json数据的解析[以时光网为例]
- 易企秀手机html5场景源码,仿易企秀V15.1手机网页DIY制作工具完整版开源版源码修复采......
- Python3入门教程::Excel 基础操作(下)
- lisp 练习取得对象属性
- MMGSDI启动流程
- JAVA渣渣感悟——三目运算符(三元运算符)的注意事项
- JBuilderX使用Ant读书笔记
- [学习笔记]快速沃尔什变换 (FWT)
热门文章
- 阿里面试_技术问题和经验总结
- 今天maven install时碰到的两个问题(堆溢出和编译错误)
- DEV全选多选小技巧
- RDIFramework.NET ━ .NET快速信息化系统开发框架 V2.8 版本━新增企业通(内部简易聊天工具)...
- 价值100大洋的简体中文汉化补丁下载
- 海奥华预言--第一章 神秘邀请
- 只靠可视化大屏,做不了数字化,数据总监总结3点,你做到了几个
- 掌握这7点,不懂代码也能做出酷炫可视化大屏!
- 有了报表FineReport,为什么还要上FineBI?
- zhajinhua2012邮件等网络服务的广泛应用