使用JFrog CLI与GitHub的动作

| 注意:本博客描述了自最初发布日期以来JFrog和GitHub已弃用的特性和功能。此条目仅供参考使用。有关JFrog CLI的更多信息,请访问JFrog CLI用户指南。 |
在接下来的几周里,我们将发布一系列博客文章,介绍如何使用JFrog CLI、Artifactory和GitHub Actions来构建出色的软件。首先,构建一个自定义GitHub Action。
在GitHub宇宙最有趣的公告可能是GitHub Actions的发布。GitHub创建CI/CD管道的方法,并让它们负责运行构建基础设施。
的美GitHub的行为是它们允许你在GitHub内自动化你的工作流程,比如构建docker映像,使用Twilio发送通知,或者使用JFrog Artifactory!
在JFrog,我们创造了我们的CLI以便轻松创建连接到任何JFrog工具的脚本。拥有一个合适的CLI可以使脚本更容易阅读和维护,并且作为一个额外的好处,CLI还可以非常容易地将任何CI/CD工具连接到JFrog工具套件。所以,在假期里,我决定把一个和一个放在一起,创建一个包装JFrog CLI的GitHub Action。
我引用的所有代码和文件都可以在GitHub
这一切都始于Docker
你在工作流中运行的每一个动作都是Docker镜像,所以要构建你自己的动作,你需要一个Dockerfile。我在JFrog CLI中使用的是:
总的来说,将CLI转换为GitHub操作相当容易
一个简单的脚本
现在是连接到Artifactory的实际脚本
对于这个操作,我决定支持JFrog CLI支持的所有三种身份验证机制,并允许命令也有它们常用的参数。
所有这些结合在一起的GitHub动作看起来像
一个将它们联系在一起的工作流
最后一步,也是开发人员会使用的一步,是在工作流中使用Action,并自动化存储工件的过程。要做到这一点,你需要一个小片段:
action "JFrog CLI for GitHub Actions" {uses = "retgits/ Actions /jfrog-cli@master" secrets = ["USER", "PASSWORD", "URL"] args = ["cmd"] env = {CRED = "username"}}
该操作有四个参数:
- 使用:使用哪个GitHub Action和哪个构建(在这种情况下,它使用我的jfrog-cli Action的主分支);
- 秘密老实说,我们永远不应该在版本控制系统中存储用户名或密码,所以这个操作使用了GitHub的秘密库中的三个参数。该操作将在运行时从库中获取用户名,密码和URL,因此repo中的文件中不会存储任何内容;
- arg游戏:这些是执行的命令(减去
jfrog rt部分) - env:这些是传递到容器中的环境变量。在本例中,它们是命令(“ping”)和您想要使用的身份验证类型(“username”)。这些变量存储在您的存储库中,因此您需要确保这样做没问题!
结果
如果您使用完全相同的操作和完全相同的配置,那么您最终得到的操作将只是向Artifactory服务器发送一个“ping”,以查看它是否处于活动状态。在GitHub UI中,您将看到
在下面的细节中,您将看到构建和执行的输出:
启动JFrog CLI for GitHub Actions 21:25:56Z…剪断…状态:为gcr下载了较新的映像。io/ GitHub - Actions -images/action-runner:最新的身份验证使用用户名OK ###完成JFrog CLI for GitHub Actions 21:26:27Z(31.521秒)
接下来是什么
如果您想尝试GitHub Actions,请前往GitHub的网站报名参加他们的测试项目。对于一个环境来测试驱动JFrog Artifactory的所有功能(以及更多),您可以在我们的演示环境。如有问题或意见,请在这里或上面留言推特!