buildkite-builder 4.17.0 → 4.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +3 -0
- data/README.md +10 -2
- data/VERSION +1 -1
- data/bin/release +20 -0
- data/lib/buildkite/builder/extension.rb +15 -0
- data/lib/buildkite/builder/extension_template.rb +13 -0
- data/lib/buildkite/builder/extensions/steps.rb +20 -1
- data/lib/buildkite/builder.rb +1 -0
- metadata +8 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b35cda668c919aa133b9789085de5ecb4c285336b14613251b019df092a88cff
|
4
|
+
data.tar.gz: 6a4a74637c721e677072e656872265c086d5f2dd969dd5396df57f5a7ac2f9dd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6e44c665a44cde92d9cf26cfc0735d95bedaa0c2acb547e48a39b17aaf4e5a941935013079fe15e239af084d183af1723841bcfe56b432b0acce6be2f02b9b53
|
7
|
+
data.tar.gz: 54dd9bc5ce7e1d383e0f1223469e0a22a0418c0e8e74af3face8e1ac3fe386cabad78b3fec1bb01bbe7d66b3a3713e775562cb43f55b3697805ca2b85dbe017a
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -27,9 +27,17 @@ As with every Buildkite pipeline, you'll need to define the initial pipeline ste
|
|
27
27
|
```yaml
|
28
28
|
steps:
|
29
29
|
- label: ":toolbox:"
|
30
|
+
key: "buildkite-builder"
|
31
|
+
retry:
|
32
|
+
automatic:
|
33
|
+
- exit_status: -1 # Agent was lost
|
34
|
+
limit: 2
|
35
|
+
- exit_status: 255 # Forced agent shutdown
|
36
|
+
limit: 2
|
30
37
|
plugins:
|
31
|
-
- docker#
|
32
|
-
image: gusto/buildkite-builder:
|
38
|
+
- docker#v5.12.0:
|
39
|
+
image: "gusto/buildkite-builder:4.13.0"
|
40
|
+
mount-buildkite-agent: true
|
33
41
|
propagate-environment: true
|
34
42
|
```
|
35
43
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
4.
|
1
|
+
4.18.0
|
data/bin/release
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
#!/usr/bin/env bash
|
2
|
+
set -euo pipefail
|
3
|
+
|
4
|
+
version=$(<VERSION)
|
5
|
+
version=$(echo "$version" | xargs) # Trim whitespace
|
6
|
+
|
7
|
+
echo "💎 Build and push gem"
|
8
|
+
GEM_HOST_API_KEY=$(buildkite-agent secret get RUBYGEMS_API_TOKEN) docker buildx build --secret id=gem-host-api-key,env=GEM_HOST_API_KEY --target gem .
|
9
|
+
|
10
|
+
echo "🐳 Logging in to DockerHub"
|
11
|
+
buildkite-agent secret get DOCKERHUB_PASSWORD | docker login --username zpadmin --password-stdin
|
12
|
+
|
13
|
+
echo "🔨 Building and pushing docker image for release of Buildkite Builder version $version"
|
14
|
+
docker build --tag=gusto/buildkite-builder:"$version" \
|
15
|
+
--target release \
|
16
|
+
--platform linux/x86_64 \
|
17
|
+
--build-arg version="$version" \
|
18
|
+
--push .
|
19
|
+
|
20
|
+
echo "✅ Done!"
|
@@ -3,11 +3,26 @@
|
|
3
3
|
module Buildkite
|
4
4
|
module Builder
|
5
5
|
class Extension
|
6
|
+
|
6
7
|
class << self
|
7
8
|
def dsl(&block)
|
8
9
|
@dsl = Module.new(&block) if block_given?
|
9
10
|
@dsl
|
10
11
|
end
|
12
|
+
|
13
|
+
def template(name = :default, &block)
|
14
|
+
name = name.to_s
|
15
|
+
|
16
|
+
if block_given? && templates.key?(name)
|
17
|
+
raise ArgumentError, "Template #{name} already registered in #{self.name}"
|
18
|
+
end
|
19
|
+
|
20
|
+
templates[name] ||= ExtensionTemplate.new(self, name, block)
|
21
|
+
end
|
22
|
+
|
23
|
+
def templates
|
24
|
+
@templates ||= {}
|
25
|
+
end
|
11
26
|
end
|
12
27
|
|
13
28
|
attr_reader :context
|
@@ -10,7 +10,7 @@ module Buildkite
|
|
10
10
|
end
|
11
11
|
|
12
12
|
def build_step(step_class, template_name, **args, &block)
|
13
|
-
template =
|
13
|
+
template = find_template(template_name)
|
14
14
|
|
15
15
|
step_class.new(**args).tap do |step|
|
16
16
|
step.process(template) if template
|
@@ -35,6 +35,25 @@ module Buildkite
|
|
35
35
|
@current_group = nil
|
36
36
|
end
|
37
37
|
|
38
|
+
private
|
39
|
+
|
40
|
+
def find_template(template_name)
|
41
|
+
case template_name
|
42
|
+
when Buildkite::Builder::ExtensionTemplate
|
43
|
+
template_name.block
|
44
|
+
when Class
|
45
|
+
unless context.extensions.all.include?(template_name)
|
46
|
+
raise ArgumentError, "#{template_name} extension is not registered"
|
47
|
+
end
|
48
|
+
|
49
|
+
if template_name < Buildkite::Builder::Extension
|
50
|
+
find_template(context.extensions.find(template_name).class.template)
|
51
|
+
end
|
52
|
+
else
|
53
|
+
@templates.find(template_name)
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
38
57
|
dsl do
|
39
58
|
def group(&block)
|
40
59
|
context.extensions.find(Steps).with_group(Pipelines::Steps::Group.new(context), &block)
|
data/lib/buildkite/builder.rb
CHANGED
@@ -10,6 +10,7 @@ module Buildkite
|
|
10
10
|
autoload :Data, File.expand_path('builder/data', __dir__)
|
11
11
|
autoload :Dsl, File.expand_path('builder/dsl', __dir__)
|
12
12
|
autoload :Extension, File.expand_path('builder/extension', __dir__)
|
13
|
+
autoload :ExtensionTemplate, File.expand_path('builder/extension_template', __dir__)
|
13
14
|
autoload :ExtensionManager, File.expand_path('builder/extension_manager', __dir__)
|
14
15
|
autoload :Extensions, File.expand_path('builder/extensions', __dir__)
|
15
16
|
autoload :Loaders, File.expand_path('builder/loaders', __dir__)
|
metadata
CHANGED
@@ -1,14 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: buildkite-builder
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.
|
4
|
+
version: 4.18.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ngan Pham
|
8
8
|
- Andrew Lee
|
9
|
+
autorequire:
|
9
10
|
bindir: exe
|
10
11
|
cert_chain: []
|
11
|
-
date: 2025-
|
12
|
+
date: 2025-05-21 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: rainbow
|
@@ -109,6 +110,7 @@ files:
|
|
109
110
|
- VERSION
|
110
111
|
- bin/buildkite-builder
|
111
112
|
- bin/console
|
113
|
+
- bin/release
|
112
114
|
- bin/setup
|
113
115
|
- exe/buildkite-builder
|
114
116
|
- lib/buildkite-builder.rb
|
@@ -122,6 +124,7 @@ files:
|
|
122
124
|
- lib/buildkite/builder/dsl.rb
|
123
125
|
- lib/buildkite/builder/extension.rb
|
124
126
|
- lib/buildkite/builder/extension_manager.rb
|
127
|
+
- lib/buildkite/builder/extension_template.rb
|
125
128
|
- lib/buildkite/builder/extensions.rb
|
126
129
|
- lib/buildkite/builder/extensions/agents.rb
|
127
130
|
- lib/buildkite/builder/extensions/env.rb
|
@@ -172,6 +175,7 @@ metadata:
|
|
172
175
|
source_code_uri: https://github.com/Gusto/buildkite-builder
|
173
176
|
changelog_uri: https://github.com/Gusto/buildkite-builder/blob/master/CHANGELOG.md
|
174
177
|
bug_tracker_uri: https://github.com/Gusto/buildkite-builder/issues
|
178
|
+
post_install_message:
|
175
179
|
rdoc_options: []
|
176
180
|
require_paths:
|
177
181
|
- lib
|
@@ -186,7 +190,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
186
190
|
- !ruby/object:Gem::Version
|
187
191
|
version: '0'
|
188
192
|
requirements: []
|
189
|
-
rubygems_version: 3.
|
193
|
+
rubygems_version: 3.5.22
|
194
|
+
signing_key:
|
190
195
|
specification_version: 4
|
191
196
|
summary: A gem for programmatically creating Buildkite pipelines.
|
192
197
|
test_files: []
|