问题标签 [drone.io]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
drone.io - 使用部署挂钩触发分叉构建时如何在 Drone.IO 中访问父级的构建号?
我正在尝试使用drone.io 构建一个 CI 管道。
步骤是:
- 构建一个 docker 镜像
- 使用drone_build_number 标记 docker 镜像
- 将镜像部署到暂存环境,“ECS,请部署
myimage:drone_build_number
”
部署会在登台环境中触发一些测试。如果这些通过,则调用drone.io 的部署挂钩:http://mydronehost/builds/123?fork=true&event=deployment&deploy_to=prod
。这应该部署myimage:drone_build_number
到 prod,build_number
在这种情况下是 123。相反,构建得到一个新的数字,例如 124,部署失败,因为myimage:124
不存在。
在这种情况下,是否有可能以某种方式访问“父”内部版本号(123)?
drone - Drone CI 获取和使用构建元数据
我在自托管系统中使用 Drone CI (0.7)。它连接到 GitLab 和我的私人注册表并且工作得很好!
但是,我想对.drone.yml
文件做更多的事情。尤其是在将图像发布到注册表时。
文档展示了如何进行替换,但没有解释这些变量是如何设置的。以下是文档中的示例:
这正是我想做的。在 repo(在发布分支上)创建一个 git 标签,并让该标签成为我的 Docker 映像的标签。
git tag -a v1.0 -m "Initial release"
当时我试过了git push origin v1.0
。Drone CI 构建在我Tag Hooks
为存储库设置好之后开始,但是当构建完成并将图像发布到注册表时,标签设置为latest
. 推送常规代码更改提交时也会发生这种情况。
这是需要使用 CLI 完成的事情,还是我的.drone.yml
文件中缺少某些内容(发布在下面)?它看起来像是我需要设置的环境变量,但是在提交代码以开始构建之前必须设置它(我假设)似乎很奇怪......
任何和所有的帮助表示赞赏!
drone - 在 Drone CI 中安装插件(触发器插件)
我是 Drone 的新手,我想使用我的第一个插件,即这个插件:http: //addons.drone.io/trigger/
但是,Drone 文档并没有真正解释如何安装插件。我所做的是将示例 yaml 复制到我的 .drone.yml 中,结果是这样(显然我已经审查了敏感信息,但每个键都与真实文档相同):
但是,当我推动这个时,Drone 给了我错误:
如果我将图像放入,如
我得到:
我应该为每个插件构建一个 docker 容器吗?如何访问此插件?
git - “致命:无法读取 'https://XXX' 的用户名:没有这样的设备或地址”与drone.io 和 Gogs
我想使用drone.io和gogs,以便在我的环境中拥有一些CI 功能。
drone.io ( http://docs.drone.io/ )的文档不是最新的,为了启动它,我不得不挖掘很多东西。
我的docker-compose.yml
文件如下:
(dedigogs_gogs_1
作为我的gogs
docker 实例)
我可以drone
使用我的gogs
凭据连接到。
我可以看到我所有的私人存储库,并为drone.io
.
但是,在构建提交时,代理(我认为)无法克隆存储库:
我尝试使用.drone.yml
(添加“ clone
”部分,使用username
, netrc.username
, ...),我还尝试使用环境变量,没有任何工作,我无法drone
为克隆存储库进行身份验证。
任何想法 ?
continuous-integration - Drone 0.8:构建卡在挂起状态
使用以下Docker Compose文件在虚拟机上安装 Drone 0.8:
所有变量值都存储在.env
文件中,并正确传递给正在运行的容器。尝试使用私有 Github 存储库运行构建。当第一次推送到存储库时,构建开始并失败并出现以下错误(即构建失败):
然后在单击重新启动按钮后看到另一个屏幕(即构建待处理):
在同一台机器上运行以下容器:
即使DRONE_DEBUG=true
代理日志中的唯一日志条目是:
所以我认为出于某种原因,我的代理没有从队列中获取构建。我注意到最新的 Drone 版本使用GRPC而不是WebSockets。
那么如何开始构建呢?我在这里缺少什么?
vagrant - gitlab-ce 和无人机:0.8,但无人机的构建不起作用
我使用 gitlab-ce 和无人机:0.8,但无人机的构建不起作用。将显示“构建列表为空”我还将 .drone.yml 放在 gitlab-ce 存储库下。
gitlab-ce 的 docker-compose.yml
无人机的 docker-compose.yml
.drone.yml
我不知道是什么原因。请告诉我是否有任何方法可以解决它。
drone - Installing drone on a sub-directory/path
I am trying to install drone in a particular path of a domain, but it still tries to find it's resources in root directory. It's behind a Caddy Server.
Example:-
Want to install in
http://abc.xyz.com/drone/
While it should find its resources(static,api,feed) likw
http://abc.xyz.com/drone/static/app.css
It tries to find it in
http://abc.xyz.com/static/app.css
I can write URL re-writes but it seems counter intuitive, and could be prone to errors. How do I correct this?
My current caddyfile:-
docker - Drone CI 在克隆步骤中失败
我在 docker-compose 的机器上运行以下内容:
- GitLab
- 无人机(服务器)
- 无人机(代理)
当我触发构建(或由 git push 触发)时,无人机在这个问题上不断失败:
这是 docker-compose.yml:
两者都安装在同一台机器上,我无法弄清楚我做错了什么,无人机一直无法识别git主机的原因是什么。
我已经在我的本地 /etc/hosts 和我在网上找到的 /etc/resolve.conf 提示中添加了映射。有人可以帮忙吗?
docker - 使用无人机电子邮件插件时,无人机 CI 看不到秘密变量
我使用drone-ci (0.8.0-rc.5) 作为CI 工具和drone-email插件来发送电子邮件。如果构建成功或失败,我想发送通知。我使用 Gmail SMTP 服务器发送电子邮件。
我的 .drone.yml 文件:
time="2017-09-20T02:14:10Z" level=error msg="Error while dialing SMTP server: dial tcp :587: getsockopt: connection refused" dial tcp :587: getsockopt: connection refused
当我在 yml 文件中硬编码值时,通知会起作用。所以我想知道我在秘密方面做错了什么或如何解决这种情况?
drone - 在无人机插件中访问无人机的环境变量
我对无人机 CI/CD 完全陌生。我在将环境变量传递给无人机插件时遇到问题。我到目前为止所做的是
- 我在我的一台服务器 (my.drone.com) 中部署了无人机 docker imagedrone/drone:0.7 (服务器和代理都在工作。bitbucket 已成功集成)我按照这篇文章:在 ubuntu上配置无人机进行设置。
- 我在无人机管理应用程序中激活了我的 CI/CD 存储库之一
- 我将
.drone.yml
文件添加到项目 - 我确实在
cloud.docker.com
应用程序中设置了自动图像构建。现在我想将该图像部署到我的其他云服务器(my.app.com
)。因此,我将 applebody/drone-ssh 添加到了drone.yml 以访问该服务器 - 要将此插件部署到我的服务器,它需要
my.app.com
通过 ssh 访问我的服务器 ( )。 - 我可以
my.app.com
从my.drone.com
服务器登录 - 但我不知道插件如何访问 my.app.com,我试图通过环境变量将我的
my.drone.com
私有 ssh 密钥传递给插件。但是没有锻炼。我的无人机的服务器和代理环境文件.drone.yml
如下:
.drone.yml
pipeline:
ssh:
image: appleboy/drone-ssh
host: my.app.com
user: root
key: $PLUGIN_SSH_KEY
script:
- ls
- cd apps
- docker pull drprasad/todo-app
- docker rm -f todo
- docker run -p 8080:8080 -d --name 'todo' drprasad/todo-app
notify:
image: plugins/slack
webhook: https://hooks.slack.com/services/token
channel: test
username: drone-is-flying
代理环境文件
服务器环境
如何将PLUGIN_SSH_KEY
变量(从代理或服务器 env 文件)传递给无人机插件?这样它就可以访问我的my.app.com
服务器
即使我不知道我的方法是否正确。如果我的方法有误,请纠正我。
对不起,我的英语不好。谢谢