我们的项目嵌套在单一存储库中。想象一下,我们在“projects”文件夹中有一个项目。例如“项目/我们的项目”。好吧,我们希望能够将我们的 .drone.yml 检查到“我们的项目”中,但看起来 Drone 想要项目根目录下的配置文件,这没关系,我们可以通过更改“命令”部分。我们遇到的麻烦是我们只想在“我们的项目”中的某些内容发生变化时运行构建。我找不到用 Drone 精确做到这一点的方法,所以我们下一个最接近的赌注是条件,我想我们可以为“我们的项目”创建命名空间的所有分支,比如“我们的项目/某个分支”。然后我们可以设置一个条件,只在“our-project/some-branch”和“master”上运行构建,这将限制我们从其他项目分支运行的“假构建”的数量:
build:
when:
branch:
- master
- our-project/*
Run Code Online (Sandbox Code Playgroud)
问题是当我们尝试将请求从“our-project/ ”分支拉到“master”时,构建不会运行,我猜是因为它是在不在 master 或“我们的”中的合并提交上运行的-项目/ “
我的问题有两个方面:1. 使用单存储库模式(多个项目,一个存储库)利用无人机的最佳方法是什么 2. 如果 Drone 不支持该模式或不是为它设计的,那么什么是限制“假构建”的最佳解决方法
注意:我们可以在构建开始时检查子文件夹中的更改,如果没有则返回绿色。我这是推荐的方法吗?
有没有办法在无人机完成或超时之前将其杀死?
无人机的默认超时为6小时(https://github.com/drone/drone/blob/master/cmd/drone/drone.go#L32)而且,如果您的makefile中有一个错误,那就是卡住了,那么您需要等待6个小时。
如果同时构建的数量有限,这将特别令人讨厌。我的问题是关于自托管的开源版本,而不是托管版本,如果有任何区别的话。
文档显示如何将文件设置为秘密envvar http://readme.drone.io/0.5/secrets/
有没有方便的方法来做相反的事情?例如,在.ssh/id_rsa中使用此ssh密钥并具有所有正确的权限.
而且,通过"方便",我显然意味着无需打字mkdir,>或者chmod
我在 Safari 9 和 Safari 10 中遇到服务器发送事件 (SSE) 问题。 SSE 连接打开,立即关闭,然后无限循环重新连接。
这是客户端代码:
var events = new EventSource("/stream/events")
Run Code Online (Sandbox Code Playgroud)
这些是 http 响应标头:
> GET /stream/events HTTP/1.1
> User-Agent: curl/7.43.0
> Accept: */*
>
< HTTP/1.1 200 OK
< Access-Control-Allow-Origin: *
< Cache-Control: no-cache
< Connection: keep-alive
< Content-Type: text/event-stream
< Expires: Thu, 01 Jan 1970 00:00:00 GMT
< Last-Modified: Tue, 19 Sep 2017 05:28:22 GMT
< Strict-Transport-Security: max-age=31536000
< X-Accel-Buffering: no
< X-Content-Type-Options: nosniff
< X-Frame-Options: DENY
< X-Xss-Protection: 1; mode=block
< …Run Code Online (Sandbox Code Playgroud) 我的Drone配置发生了问题。从今天开始就没有找到环境变量。直到几天前,我还可以运行管道,但今天不能。
这是进入管道的步骤:
pipeline:
[...]
sdk:
image: mycompany/swagger-codegen:latest
environment:
- API_SWAGGER_JSON_URL=http://api.mycompany.biz:9000/v1/swagger.json
- API_PACKAGE=com.mycompany.api
- API_GROUP_ID=com.mycompany.api
- API_ARTIFACT_ID=sdk
- API_VERSION=0.1-SNAPSHOT
when:
branch: master
commands:
- java -jar /usr/lib/swagger/swagger-codegen-cli.jar generate
-i ${API_SWAGGER_JSON_URL}
--api-package ${API_PACKAGE}
--invoker-package ${API_PACKAGE}.client
--model-package ${API_PACKAGE}.client.model
--group-id ${API_GROUP_ID}
--artifact-id ${API_ARTIFACT_ID}
--artifact-version ${API_VERSION}
-l java
-o ./swagger-codegen-source
- etc.
Run Code Online (Sandbox Code Playgroud)
这就是我得到的
+ java -jar /usr/lib/swagger/swagger-codegen-cli.jar generate -i --api-package --invoker-package .client --model-package .client.model --group-id --artifact-id --artifact-version -l java -o ./swagger-codegen-source
Exception in thread "main" io.airlift.airline.ParseArgumentsUnexpectedException: Found unexpected parameters: [java]
at io.airlift.airline.Cli.validate(Cli.java:148)
at io.airlift.airline.Cli.parse(Cli.java:116)
at …Run Code Online (Sandbox Code Playgroud)