在Travis CI构建中获取GitHub仓库文件URL
我是Travis CI的忠实用户,在我几乎所有的GitHub开源项目中都使用它来进行持续集成。有时,我需要在构建过程中获取仓库中某个文件的URL,例如为了指向特定工具,同时要兼顾分支以及来自fork的拉取请求。
以下是我的做法:
|
|
解释说明:
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中默认环境变量的更多信息,请参阅此页面。