在没有 S3 或类似外部资源的情况下在 Concourse 作业之间传递工件
pass artifacts between Concourse jobs without S3 or similar external resource
我正在使用 concourse 并构建我想发送给集成测试的二进制文件。然而,它们很轻,使用 S3 存储桶进行永久存储似乎有点过分了。此外,我正在使用 semver-resource
进行版本控制,这似乎也需要 S3 等来支持它。
有没有办法配置本地 on-worker 或类似的 blobstore?我可以使用 Concourse postgres 数据库来存储我的 semver 吗?它足够小,应该适合一个数据库 table.
简答:没有。
Concourse 的设计使 Concourse 部署本身是无状态的,明确不提供工件持久性并力求在很大程度上免于配置。
这迫使管道是独立的,这使您的 CI 可重现。如果您的 Concourse 服务器烧毁,您并没有丢失任何特别的东西。您可以启动另一个并发送原始管道。然后所有内容将从它停止的地方继续:您的版本将从它们所在的位置继续计数,而不是从 0.0.0 重新开始,并且您的所有工件仍然在它们所在的位置。
综上所述,您可以自由部署自己的 S3 兼容 blob 存储。 s3
资源应该可以正常对话。
我们将 semver 资源与 gist 一起使用。只需从要点页面获取克隆 ID:
然后设置您的资源:
- name: version
type: semver
source:
driver: git
branch: master
uri: {{version-url}}
file: Version
private_key: {{github-private-key}}
我正在使用 concourse 并构建我想发送给集成测试的二进制文件。然而,它们很轻,使用 S3 存储桶进行永久存储似乎有点过分了。此外,我正在使用 semver-resource
进行版本控制,这似乎也需要 S3 等来支持它。
有没有办法配置本地 on-worker 或类似的 blobstore?我可以使用 Concourse postgres 数据库来存储我的 semver 吗?它足够小,应该适合一个数据库 table.
简答:没有。
Concourse 的设计使 Concourse 部署本身是无状态的,明确不提供工件持久性并力求在很大程度上免于配置。
这迫使管道是独立的,这使您的 CI 可重现。如果您的 Concourse 服务器烧毁,您并没有丢失任何特别的东西。您可以启动另一个并发送原始管道。然后所有内容将从它停止的地方继续:您的版本将从它们所在的位置继续计数,而不是从 0.0.0 重新开始,并且您的所有工件仍然在它们所在的位置。
综上所述,您可以自由部署自己的 S3 兼容 blob 存储。 s3
资源应该可以正常对话。
我们将 semver 资源与 gist 一起使用。只需从要点页面获取克隆 ID:
然后设置您的资源:
- name: version
type: semver
source:
driver: git
branch: master
uri: {{version-url}}
file: Version
private_key: {{github-private-key}}