Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

前端代码发布 #3

Open
jschyz opened this issue Jan 5, 2017 · 0 comments
Open

前端代码发布 #3

jschyz opened this issue Jan 5, 2017 · 0 comments

Comments

@jschyz
Copy link
Owner

jschyz commented Jan 5, 2017

来记录最近做的一件事 -- 关于代码发布问题

借助工具: git / svn

  1. 创建两个仓库:

    • source 源代码仓库(git),用于开发
    • release 包发布仓库(svn),用于管理包和回滚

    注: svn 用于存储 release 包,原因在于 git 会存储历史记录代码,clone 代码耗时。相对于 svn 而言只需要一个地址,拉取最新代码包简单而快速。

你的 source 仓库代码,大致的内容是:

source
  ├─ dist/
  ├─ dist.tar
  ├─ src/
  └─ webpack.config.js

你的 release 仓库代码,大致的内容是:

release
  └─dist.tar
  1. 开发人员要进行部署的时候,执行 npm run build 生成对于的 dist.tar 文件。这时进行 git 提交时,gitlab触发webhook,推送信息到 jenkins

    注: 对于提交频繁的团队,可以在 jenkins 上设置一定时间间隔自动拉取最新 commit 记录,从而节省jenkins 资源(jenkins执行对应的job任务需要耗时,频繁提交,就会堆积任务)

  2. jenkins 根据推送的消息执行对应的 job,将 dist.tar 文件从 git 仓库拉取到 svn 仓库,并生成最新 update 记录,此记录用语上线/回滚等运维操作

  3. 拉取完毕后,使用运维脚本从 svn 地址拉取 dist.tar 文件,然后将解压结果推送到测试/生产服务器

实现完这一套,无意间发现跟 @fouber issues  里提到的 关于代码发布 实现方式类似,故此纪录下最近的工作细节。但实现也是有差别的:
我没有用 jenkins 里做代码构建操作。

  • 其一,每次npm install耗时是个问题
  • 其二,如果package.json里依赖项,如果引用未知第三方不安全包,npm install 隐患比较大。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant