前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >手把手教你撸自动部署 --- Travis CI

手把手教你撸自动部署 --- Travis CI

作者头像
饼干_
发布2022-09-19 15:12:36
4400
发布2022-09-19 15:12:36
举报
文章被收录于专栏:饼干的前端专栏

前段时间研究了一下自动部署的方案,先是用node写了一个简单粗暴的脚本,但发现这样并不够优雅,于是看了下Jenkins,发现搭建成本略高(实际Jenkins很香),由于我是基于自己的项目来考虑方案,最后决定使用Travis作为方案。

Travis

想要使用Travis,首先你得有一个GitHub账号,然后登录Travis官网。选择GitHub账号登录,如图:

image.png
image.png

之后导入你的仓库,让Travis监听即可。

回到你的项目里新建.travis.yml文件,被Travis监听的仓库,每当push时(默认监听master分支),会执行yml里对应的脚本。

YAML (YAML Ain't a Markup Language)YAML不是一种标记语言,通常以.yml为后缀的文件,是一种直观的能够被电脑识别的数据序列化格式,并且容易被人阅读,容易和脚本语言交互的,可以被支持YAML库的不同的编程语言程序导入,一种专门用来写配置文件的语言。可用于如: Java,C/C++, Ruby, Python, Perl, C#, PHP等。

这里给个模板:

代码语言:javascript
复制
# 规定语言 这里我们前端自然是nodejs 其他语言填对应语言即可
language: node_js
# 指定node版本 Travis会使用nvm管理node版本
node_js:
  - "14"
# 指定作用分支(一般默认master)
branchs:
  only:
    - master
# install 阶段:安装依赖 (这个阶段会按顺序执行脚本,只要有一步失败就会终止,如果有指定jobs这里可以不要,看个人)
install:
  - npm install --registry=https://registry.npm.taobao.org
  - echo "install successed"
# script 字段用来指定构建或测试脚本(这个阶段的脚本有一步失败了,后面也会继续,但整个构建阶段的状态是失败;如果有指定jobs这里可以不要,看个人)
script:
  - npm run build
# 指定操作系统
os:
  - linux
# 这里相当于自己定义工作顺序
stages:
  - test
  - name: deploy
# 指定工作
jobs:
# 包含哪些
  include:
    # 阶段名称
    - stage: test
    # 运行脚本
      script:
        - node --version
        - npm --version
        - echo "Testing Started ..."
        - npm test
        - echo "Testing Finished."
    - stage: deploy
      script:
        - echo "NPM Deploying Started ..."
        - git clone https://${GH_REF}
        - cd vue-dark-photo
        - git branch
        - git checkout travis
        - git rebase master
        - npm version patch
        - npm install --registry=https://registry.npm.taobao.org
        - npm run build
        - echo "NPM Building Finished."
      # 这里是发布npm包(举例),指定你的邮箱(会通知你),api_key(你的npm token,这个一般在.npmrc会有,前提是你在本地登录过npm)
      deploy: 
        provider: npm 
        email: "${EMIAL}"
        api_key: "$NPM_TOKEN"
        skip_cleanup: true
        on:
          all_branches: true
      # script 阶段之后执行
      after_script:
        - git config user.name "travis"
        - git config user.email "${EMIAL}"
        - git add .
        - git commit -m "Travis CI Auto Builder"
        - git status
        - git push "https://${GH_TOKEN}@${GH_REF}" travis:travis

有些地方使用了变量,可以在Travis官网进行配置,如图

image.png
image.png

完整的生命周期:

代码语言:javascript
复制
before_install
install
before_script
script
aftersuccess or afterfailure
[OPTIONAL] before_deploy
[OPTIONAL] deploy
[OPTIONAL] after_deploy
after_script

当配好脚本,在项目master分支中push,Travis会监听到对应变化,并查询.travis.yml文件执行脚本,成功或失败你的git commit 里对应的提交记录会有对应的状态如图:

image.png
image.png

你也可以在Travis官网查询到,如图:

image.png
image.png

注意事项

笔者在建立好Travis和git仓库的关联并且配置好yml文件后,发现push没生效但是隔了一天又可以了(延迟?),这里暂时还不知道什么原因,有大佬知道还请不吝赐教。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-07-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Travis
  • 注意事项
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档