GitHub 的 CI/CD与 Travis 配置小记

简介: GitHub 的 CI/CD与 Travis 配置小记

问题

在GitHub上协作开发,写测试用例那是必须的,至于执行测试用例,
GitHub 的 MarketPlace 上有很多工具可以配合使用;使用 Travis 等工具我们可以很轻松的实现CI/CD(持续集成、持续部署);我们的问题是该怎么做呢?

了解Travis

Travis CI 提供的是持续集成服务(Continuous Integration,简称 CI)。它绑定 GitHub 上面的项目,只要有新的代码,就会自动抓取。然后,提供一个运行环境,执行测试,完成构建,还能部署到服务器。

持续集成指的是只要代码有变更,就自动运行构建和测试,反馈运行结果。确保符合预期以后,再将新代码"集成"到主干。

持续集成的好处在于,每次代码的小幅变更,就能看到运行结果,从而不断累积小的变更,而不是在开发周期结束时,一下子合并一大块代码。

Travis 作为 GitHub MarketPalce 上的一个产品,目前只支持 GitHub 仓库,私有和共有库都可以使用, 只是用私有库的时候需要在环境遍历中配置一个 Token, 这个Token 设置可以和下面设置 GitHub Token 、GIT_NAME 等一样。

作为要 CI/CD 的库,库里面需要包含用于 CI/CD 的命令

Travis 可以执行多种语言的测试及构建。详情请点击这里

生命周期

  1. OPTIONAL Install apt addons
  2. OPTIONAL Install cache components
  3. before_install
  4. install
  5. before_script
  6. script
    7.OPTIONAL before_cache (for cleaning up cache)
  7. after_success or after_failure
  8. OPTIONAL before_deploy
  9. OPTIONAL deploy
  10. OPTIONAL after_deploy
  11. after_script

在构建时,生命周期可以组合使用。

配置.travis.yml

在项目根目录简历 .travis.yml 文件。配置如下

该文件名前有一英文点


language: node_js

node_js:
  - "10"

branches:
  only:
    - dev

install:
  - npm install -g yarn
  - npm install -g codecov
  - yarn

script:
  - yarn testCoverage

after_success:
  - codecov
  - yarn build

env:
 global:
   - GH_REF: github.com/beef-noodles/PlatformWeb.git

after_script:
  - cd ./build
  - git init
  - git config user.name "${GIT_NAME}"
  - git config user.email "${GIT_EMAIL}"
  - git add .
  - git commit -m "Update docs"
  - git push --force --quiet "https://${GITHUB_TOkEN}@${GH_REF}" master:master

将你的项目添加进Travis

进入Travis官网并用 GitHub 登录,在左侧选择加入仓库,

image

打开要CI/CD的库的选项按钮,点击settings, 进入设置,导航到环境变量中,输入要用到的环境变量,即可添加到环境变量列表

image

注意,一般情况下,环境变量都不显示,即 Display value in build log 这一项默认。

效果

在上面一切完成之后,在本地进行代码修改并提交,GitHub 会自动通知 Travis 进行自动化构建。如上完成代码自动化测试(CI),和自动化部署(CD)

构建日志太长,截一部分重要的吧。

注意里面的环境变量已经变成了[secure]

image

今天没总结

目录
相关文章
|
1月前
|
Linux 网络安全 开发工具
IDEA如何配置git和github
【11月更文挑战第14天】本指南详细介绍了如何在 IntelliJ IDEA 中配置 Git 和 GitHub,包括检查和设置 Git 路径、测试配置,以及通过 SSH 或 HTTPS 方式配置 GitHub 仓库的具体步骤。完成配置后,用户可在 IDEA 中轻松进行版本控制操作。
|
2月前
|
JavaScript Linux Windows
Typora图床配置(用自带的 PicGo-Core(command line) 插件GitHub
Typora图床配置(用自带的 PicGo-Core(command line) 插件GitHub
|
6月前
|
Ubuntu Linux Shell
github用存在的私钥在Linux上配置免密登录
在Linux上配置GitHub免密登录,使用已有的私钥。系统环境为Ubuntu 22.04.3 LTS。步骤包括:1) 将名为`github`的私钥文件上传至`~/.ssh/github`;2) 设置正确权限`chmod 600 ~/.ssh/github`和`chmod 700 ~/.ssh`;3) 启动SSH代理并添加私钥`ssh-agent -s`和`ssh-add ~/.ssh/github`。完成上述步骤后,可以无缝使用GitHub。
81 0
|
6月前
|
Shell 网络安全 开发工具
github多用户ssh配置
在Windows 10环境下,当需使用多个GitHub账号进行开发操作时,可通过生成多个SSH密钥对并配置SSH `config` 文件实现。步骤包括:1) 使用`ssh-keygen`命令为每个账号生成密钥对,保存在`C:\Users\<USERNAME>\.ssh`目录;2) 编辑`config`文件,设定每个Host对应的身份文件和用户信息,如果需要,配置代理;3) 验证通过`git clone`不同仓库来确保配置正确。
96 0
|
4月前
|
安全 网络协议 Shell
Github代码仓库SSH配置流程
这篇文章是关于如何配置SSH以安全地连接到GitHub代码仓库的详细指南,包括使用一键脚本简化配置过程、生成SSH密钥对、添加密钥到SSH代理、将公钥添加到GitHub账户以及测试SSH连接的步骤。
91 0
Github代码仓库SSH配置流程
|
4月前
|
安全 Shell 网络安全
告别繁琐密码,一键解锁GitHub高效秘籍!SSH配置大揭秘,让你的代码托管之旅飞起来!
【8月更文挑战第4天】在使用GitHub时,频繁输入账号密码颇为不便。采用SSH协议可提升安全性并简化流程。本文以问答形式指导你快速配置GitHub SSH:了解SSH优势、学会生成与添加SSH密钥及测试连接。通过简单的步骤,即可实现无缝代码推送与拉取,享受高效、安全的开发体验。记得保护好私钥并根据需要设置多个密钥对。
74 7
|
4月前
|
Java Spring 传感器
AI 浪潮席卷,Spring 框架配置文件管理与环境感知,为软件稳定护航,你还在等什么?
【8月更文挑战第31天】在软件开发中,配置文件管理至关重要。Spring框架提供强大支持,便于应对不同环境需求,如电商项目的开发、测试与生产环境。它支持多种格式的配置文件(如properties和YAML),并能根据环境加载不同配置,如数据库连接信息。通过`@Profile`注解可指定特定环境下的配置生效,同时支持通过命令行参数或环境变量覆盖配置值,确保应用稳定性和可靠性。
68 0
|
4月前
|
Devops 持续交付 开发者
.NET自动化之旅:是Azure DevOps还是GitHub Actions能够打造完美的CI/CD流水线?
【8月更文挑战第28天】在现代软件开发中,持续集成(CI)与持续部署(CD)是提升代码质量和加速交付的关键实践。对于 .NET 应用,Azure DevOps 和 GitHub Actions 等工具可高效构建 CI/CD 流水线,提升开发效率并确保软件稳定可靠。Azure DevOps 提供一站式全流程管理,支持 YAML 定义的自动化构建、测试和部署;GitHub Actions 则以简洁灵活著称,适用于 .NET 项目的自动化流程。选择合适的工具可显著提高开发效率并确保高质量标准。
29 0
|
4月前
|
Linux C++ Docker
【Azure Developer】在Github Action中使用Azure/functions-container-action@v1配置Function App并成功部署Function Image
【Azure Developer】在Github Action中使用Azure/functions-container-action@v1配置Function App并成功部署Function Image
|
6月前
|
jenkins 物联网 测试技术
干货分享!基于 Github Action 的 taosX CI 搭建
去年随着 3.1.1.0 版本的发布,TDengine 数据接入工具 taosX 正式推出。该工具具备强大的数据抓取、清洗、转换及加载(ETL)功能。它不仅能无缝对接物联网中的 MQTT 协议,更重要的是能够连接到工业数据源如 OPC-UA、OPC-DA、PI System 等。借助这一模块,工业场景中常用的 SCADA、DCS 等系统无需编写任何代码,仅需通过简单配置即可实现数据的实时、持续导入至 TDengine。
70 1