在Travis CI构建中获取GitHub仓库文件URL的实用技巧

本文详细介绍了如何在Travis CI构建过程中获取GitHub仓库中文件的URL地址,包括环境变量的使用方法和具体配置示例,适用于需要动态引用仓库文件的持续集成场景。

在Travis CI构建中获取GitHub仓库文件URL

我是Travis CI的忠实用户,在我几乎所有的GitHub开源项目中都使用它来进行持续集成。有时,我需要在构建过程中获取仓库中某个文件的URL,例如为了指向特定工具,同时要兼顾分支以及来自fork的拉取请求。

以下是我的做法:

1
2
env:
  - FILE_URL=https://raw.githubusercontent.com/${TRAVIS_PULL_REQUEST_SLUG:-$TRAVIS_REPO_SLUG}/${TRAVIS_PULL_REQUEST_BRANCH:-$TRAVIS_BRANCH}/{FILE_PATH}

解释说明:

  • env 标记了构建文件(.travis.yml)中用于定义环境变量的部分
  • https://raw.githubusercontent.com/ 是GitHub上原始文件URL的前缀
  • TRAVIS_PULL_REQUEST_SLUG 是一个环境变量,如果当前作业是拉取请求,Travis会在此变量中放入owner_name/repo_name格式的字符串。对于推送构建,此变量为空
  • TRAVIS_REPO_SLUG 是一个环境变量,包含正在构建的仓库的owner_name/repo_name格式字符串
  • TRAVIS_PULL_REQUEST_BRANCH 是一个环境变量,包含拉取请求来源分支的名称。对于推送构建,此变量为空
  • TRAVIS_BRANCH 是一个环境变量,包含分支名称(对于推送构建)、拉取请求目标分支的名称(对于拉取请求构建)或标签名称(对于标签构建)
  • {FILE_PATH} 是您想要链接的文件相对于仓库根目录路径的占位符
  • ${A:-$B} 结构:如果环境变量A不为空,则返回A的值;否则返回环境变量B的值

要查看实际应用,请查看我贡献的其中一个项目的构建文件。我们构建了一个OpenAPI规范的URL,通过Swagger验证徽章进行验证。有关Travis中默认环境变量的更多信息,请参阅此页面。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计