使用 Travis CI 自动更新 GitHub Pages(1),前端开发常用软件

install 字段用来指定安装脚本,如果有多个脚本,可以写成下面的形式。

install:

  • command1

  • command2

上面代码中,如果 command1 失败了,整个构建就会停下来,不再往下进行

如果不需要安装,即跳过安装阶段,就直接设为 true

install: true

script 字段


script 字段用来配置构建或者测试脚本,如果有多个脚本,可以写成下面的形式。

script:

  • command1

  • command2

注意,scriptinstall 不一样,如果 command1 失败,command2 会继续执行。但是,整个构建阶段的状态是失败。

如果 command2 只有在 command1 成功后才能执行,就要写成下面这样。

script: command1 && command2

部署时面临的问题【重点】

==========================================================================

现在脚本是由 Travis CI 来执行的,部署的时候,怎么让 Travis 有权限往 Github 提交代码呢?

Github 有提供一个 Personal access tokens,这个 Token 与 账号密码 以及 SSH Keys 同样具有 Github 写入能力。

前往 Github 帐号 Settings 页面,在左侧选择 Personal Access Token,然后在右侧面板点击 “Generate new token” 来新建一个 Token。需要注意的是,创建完的 Token 只有第一次可见,之后再访问就无法看见(只能看见他的名称),因此要保存好这个值。

在这里插入图片描述

那么,这个 Token 怎么使用呢。

方案一、


一个比较方便快捷的方式,是通过 Travis 网站,写在每个仓库的设置页面里,有一个 Environment Variables 的配置项,给我们的 Token 起一个名字 gh_token 添加进去。这样以来,脚本内部就可以使用这个环境变量了。

在这里插入图片描述

你可以在你脚本内部使用 ${gh_token} 的形式来使用这个 Token 了。【当然了,你还可以添加其他的环境变量进去。】【官方文档在这里

使用 Personal access tokens 向 GitHub 提交代码的命令格式如下:

${GH_TOKEN} 对应就是 Personal access tokens , GH_TOKEN 是环境变量名

${GH_REF} 对应的是你的 Github 仓库地址,GH_REF 是变量名

git push -f “https:// G H T O K E N @ {GH_TOKEN}@ GHTOKEN@{GH_REF}” master:gh-pages

这里需要注意的是:

1、GitHub 生成的这个 Token ,只有生成的时候可以看到明文,后面就看不到明文了,所以你使用的时候最好一次操作成功。

2、Travis CI 中添加 Token 时,记得用密文,要不然在 build log 中是可以被看到的。

方案二、


你还可以使用 Travis CI 提供的加密工具来加密我们的这个 Token。加密原理机制如下:

在这里插入图片描述

首先,安装 Ruby 的包 travis

安装 Travis CI 命令行工具

$ gem install travis

然后,就可以用 travis encrypt 命令加密信息。

在项目的根目录下,执行下面的命令。

$ travis encrypt name=secretvalue

上面命令中,gh_token 是要加密的变量名,secretvalue 是要加密的变量值。执行以后,屏幕上会输出如下信息。

secure: “… encrypted data …”

现在,就可以把这一行加入 .travis.yml

env:

global:

  • GH_REF: github.com/Neveryu/xxxxx.git

  • secure: “… entrypted data …”

然后,脚本里面就可以使用环境变量 gh_token 了,Travis 会在运行时自动对它解密。

${gh_token} 对应就是 Personal access tokens , gh_token 是环境变量名

${GH_REF} 对应的是你的 Github 仓库地址,GH_REF 是变量名

git push -f “https:// g h t o k e n @ {gh_token}@ ghtoken@{GH_REF}” master:gh-pages

travis encrypt 命令的 --add 参数会把输出自动写入 .travis.yml,省掉了修改 env 字段的步骤。

$ travis encrypt name=secretvalue --add

详细信息请看官方文档

可以参考我的 vue-cms 这个项目中的 .travis.yml 文件

常见问题

==================================================================

如何显示 Status Image

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在这里插入图片描述


跳过自动构建

如果 commit 不想让 Travis 构建,那么就在 commit message 里加上 [ci skip] 就行了。

git commit -m “[ci skip] commit message”


权限问题

如果遇到脚本权限不够的提示或者问题,你可以给你的脚本加上权限:

chmod u+x deploy.sh

或者在 .travis.yml 里加:

before_install:

  • chmod u+x deploy.sh

扩展知识

==================================================================

Travis CI 加密文件

如果要加密的是文件(比如私钥),Travis 提供了加密文件功能。

安装命令行客户端以后,使用下面的命令登入 Travis CI 。

$ travis login

然后,进入项目的根目录,使用 travis encrypt-file 命令加密那些想要加密的文件。

$ travis entrypt-file bacon.txt

encrypting bacon.txt for rkh/travis-encrypt-file-example

storing result as bacon.txt.enc

storing secure env variables for decryption

Please add the following to your build script (before_install stage in your .travis.yml, for instance):

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)

完整版面试题资料免费分享,只需你点赞支持,动动手指点击此处就可免费领取了

前端实习面试的套路


回顾项目

往往在面试时,面试官根据你简历中的项目由点及面地展开问答,所以请对你做过的最好的项目进行回顾和反思。回顾你做过的工作和项目中最复杂的部分,反思你是如何完成这个最复杂的部分的。

面试官会重点问你最复杂的部分的实现方法和如何优化。重点要思考如何优化,即使你项目中没有对那部分进行优化,你也应该预先思考有什么优化的方案。如果这部分答好了,会给面试官留下很不错的印象。

重点在于基础知识

这里指的基础知识包括:前端基础知识和学科基础知识。

前端基础知识:html/css/js 的核心知识,其中 js 的核心知识尤为重要。比如执行上下文、变量对象/活动对象(VO/AO)、作用域链、this 指向、原型链等。

学科基础知识:数据结构、计算机网络、算法等知识。你可能会想前端不需要算法,那你可能就错了,在大公司面试,面试官同样会看重学生这些学科基础知识。
你可能发现了我没有提到React/Vue这些框架的知识,这里得说一说,大公司不会过度的关注这方面框架的知识,他们往往更加考察学生的基础。
这里我的建议是,如果你至少使用或掌握其中一门框架,那是最好的,可以去刷刷相关框架的面试题,这样在面试过程中即使被问到了,也可以回答个 7788。如果你没有使用过框架,那也不需要太担心,把重点放在基础知识和学科基础知识之上,有其余精力的话可以去看看主流框架的核心思想。

这部分答好了,会给面试官留下很不错的印象。

重点在于基础知识

这里指的基础知识包括:前端基础知识和学科基础知识。

前端基础知识:html/css/js 的核心知识,其中 js 的核心知识尤为重要。比如执行上下文、变量对象/活动对象(VO/AO)、作用域链、this 指向、原型链等。

学科基础知识:数据结构、计算机网络、算法等知识。你可能会想前端不需要算法,那你可能就错了,在大公司面试,面试官同样会看重学生这些学科基础知识。
你可能发现了我没有提到React/Vue这些框架的知识,这里得说一说,大公司不会过度的关注这方面框架的知识,他们往往更加考察学生的基础。
这里我的建议是,如果你至少使用或掌握其中一门框架,那是最好的,可以去刷刷相关框架的面试题,这样在面试过程中即使被问到了,也可以回答个 7788。如果你没有使用过框架,那也不需要太担心,把重点放在基础知识和学科基础知识之上,有其余精力的话可以去看看主流框架的核心思想。

  • 21
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值