- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想使用Travis CI对于我的开源项目。 Travis 没有提供任何方法来发布生成的工件的问题(尽管他们在未来的计划中有此)。
在某处发布/上传工件的解决方法是什么?我可以在 CI 机器上执行任何脚本。
简单的上传就可以了,但存在安全问题:任何人都可以以相同的方式上传某些内容,因为所有来源都是公开的。
最佳答案
GitHub 逐步发布
该方法在 https://stackoverflow.com/a/24100779/895245 中提到过,并且记录很少:https://docs.travis-ci.com/user/deployment/releases/ ,所以这里有更详细的步骤。
它将工件上传到 GitHub 版本 https://github.com/<username>/<repo>/releases
对于您推送的每个 Git 标签都存在。
在 https://github.com/settings/tokens 下获取个人访问 token
仅对公共(public)存储库启用“public_repo”访问权限,对私有(private)存储库启用“repo”访问权限。
将 token 保存在某处,因为您只能看到它一次。
安装travis
gem :
gem install travis
# See: https://stackoverflow.com/a/33119804/895245
gem update --system
然后cd
进入您的存储库并:
travis encrypt <api-token>
但最近人们报告说 travis encrypt -r githubusername/repositoryname --org
需要改为,请参阅:https://github.com/travis-ci/travis-ci/issues/8128
这将产生如下输出:
secure: "<encrypted-token>"
记下大的加密 token 。
使用.travis.yml
如下:
script:
# This command generates a release.zip file.
- make dist
deploy:
provider: releases
api_key:
secure: "<encrypted-token>"
file: 'release.zip'
skip_cleanup: true
on:
tags
发生的情况是 Travis 替换了每个 something: secure: <encrypted-string>
只需 something: <decrypted-string>
如解释:http://docs.travis-ci.com/user/encryption-keys/
这是安全的,因为只有您授权的推送才能解密该字符串,因此如果恶意用户尝试发出拉取请求来获取您的字符串,它应该只显示加密的字符串。
现在,每当您使用标签推送提交时,Travis 都会上传 release.zip
到发布:
git commit -m 1.0
git tag -m 1.0 1.0
git push --tags
如果您已经推送了提交和标签,则可能需要单击 Travis UI 上的“重新启动构建”按钮才能上传。
https://stackoverflow.com/a/38037626/895245有一些过程的屏幕截图。
替代方法:环境变量
我们还可以使用隐藏的环境变量来代替加密字符串。
关于存储库的 Travis 设置 https://travis-ci.org/<me>/<myrepo>/settings
创建环境变量:
GITHUB_API_KEY=<token>
并确保将“在构建日志中显示值”标记为“关闭”,然后使用:
api_key: '$GITHUB_API_KEY'
虽然这不会显示在拉取请求的日志中,但此方法风险更大,因为您可能会错误地列出构建的环境。
好处是这种方法更容易理解。
我的一个简单示例,将 Gnuplot 生成的图像上传到 GitHub 版本:
有关 GitHub Pages 部署的问题:How to publish to Github Pages from Travis CI?
关于artifacts - 如何在 Travis CI 中发布工件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12343452/
最近,我一直在尝试清理我的openGl渲染。我已经有一段时间了,但是从来没有真正考虑过。这是一个屏幕截图: 经过一些研究,我一直无法弄清楚它到底出了什么问题。我在OSX上使用OpenGl,但在其他系统
我尝试使用 glDrawArray 和 GL_TRIANGLE_STRIP 渲染纹理网格,但绘制时存在伪影,但在屏幕上分布不均匀。 Screenshot of the problem. 这是我使用的代
尝试使用 Github 的 beta 操作,我有两项工作,一项负责构建代码,另一项负责部署代码。但是,我似乎无法在部署作业中获取构建工件。 我最新的尝试是为每个作业手动设置具有相同卷的容器镜像,根据文
我是 Azure DevOps(托管代理)新手,正在尝试使用 Azure Pipelines 通过 Ant 构建我的 Java Web 应用程序 下面是管道文件 trigger: - azure-pi
我最近重新配置了 TeamCity 构建配置,以利用分支功能将相同的构建配置应用于同一存储库中的多个分支。 现在,我正在尝试设置一个自动构建脚本,该脚本可以从 TeamCity 中提取最新的工件,但仅
我通过 FFMPEG 和 OpenMAX 使用硬件编码。 如果我使用 FFmpeg h264_omx 作为 VideoWriter 的后端,我会得到图像 like this .颜色显然有点混合。 其他
我有一个 iPhone 应用程序,它有一个基于 TableView 的数据输入屏幕,带有一个切换开关,打开时会显示表格另一部分中的所有行。 有时,当应用程序首次加载时,通常是当它从手机中完全删除时,除
我在每次构建结束时归档工件。我有 https://wiki.jenkins-ci.org/display/JENKINS/Archived+Artifact+Url+Viewer+PlugIn安装。
我在 vsreport 虚拟模式下使用 ListView ,有两列,在填充列表后,选择一行,然后选择其他行,之前选择的行上留下了一个工件,请参见下图。如何解决这个问题? 这是我从数组获取数据的代码 p
我有一个巨大的遗留 EAR 项目。当前的构建过程使用 Ant,我正在尝试转换为 gradle。 旧的 Ant 构建使用单个源文件夹,所有内容都在其中(EJB 和 WAR 代码一起);然后 Ant 使用
我们有一个 ivy 存储库,我们使用 gradle 进行依赖管理和构建框架。当一个工件被确定为生产就绪时,我们不想再次构建它,所以我们只想通过一个利用 Gradle 和工具 API 来完成大部分工作的
我有一个 gradle 构建,它必须将预构建的 jar 文件发布为工件。由于某种原因,它没有被拾取。这是重现它的简化版本: 文件夹内容: settings.gradle build.gradle so
是否有人编写过一个查询来同时监视所有 BizTalk 工件。 我的查询不起作用,而且我似乎无法完成它: 这是我的: select RL.Name AS rlName , ('Url:
我最近学习了如何使用 grailsApplication.addArtefact(java.lang.String artefactType, GrailsClass artefactGrailsCl
我想在 Bamboo 构建结束时运行内联脚本任务,以将一些工件复制到网络共享。请问如何在此脚本中引用工件输出目录? Windows 环境(如果这有影响的话)。 最佳答案 您需要configure Ar
我想要一个工件名称,例如game-1.0.%BuilNumber%.jar 其中 BuildNumber 是 teamcity 构建的编号。 我正在使用 gradle 来构建工件。使用该工具是否可行,
在 SBT 中,如果我有一个任务要生成包含一堆文件的 zip/jar/war,我会使用 Defaults.packageTaskSettings 方法来设置该任务。它看起来如下: object Bui
我一直在使用 TeamCity 来启动和运行 CI 环境。 我开始关注 Troy Hunt 的 'You're deploying wrong' ,这非常有用,但是我想将打包和部署分成 2 个单独的步
故事 我已经在 OpenGL 中编码大约一年了(在相同的硬件上),我最近才得到像上图中那样的工件。它们在短时间内(几分钟)连续运行我的程序后出现,并出现在任何地方:从写字板(见图片)到我的桌面和任务栏
我使用以下代码在代码中创建了一个 UITableView: // no xib tableView = new UITableView( new RectangleF(0,0, this.View.F
我是一名优秀的程序员,十分优秀!