buildkite-builder 2.0.0.beta3 → 2.2.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 +16 -0
- data/README.md +1 -1
- data/VERSION +1 -1
- data/lib/buildkite/builder/extensions/lib.rb +15 -0
- data/lib/buildkite/builder/extensions/steps.rb +6 -1
- data/lib/buildkite/builder/extensions.rb +1 -0
- data/lib/buildkite/builder/file_resolver.rb +1 -1
- data/lib/buildkite/builder/manifest/rule.rb +1 -1
- data/lib/buildkite/builder/manifest.rb +1 -2
- data/lib/buildkite/builder/pipeline.rb +4 -3
- data/lib/buildkite/builder/plugin_collection.rb +5 -1
- data/lib/buildkite/builder/step_collection.rb +8 -0
- data/lib/buildkite/builder.rb +1 -1
- data/lib/buildkite/pipelines/attributes.rb +3 -1
- data/lib/buildkite/pipelines/command.rb +8 -0
- data/lib/buildkite/pipelines/helpers/plugins.rb +3 -8
- metadata +5 -18
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fa814669915f68e9320907c458b3e71fb6583e03722ec13af9e091f7b602e9c8
|
4
|
+
data.tar.gz: 15ba5f61fbf4c6547bcc01fc8cafab9b5d4e8e5a391c549ebc236f5723f82499
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4d40812d9c6457031445ca6a67749519fe5df7fa37f8d386acc77009da93f1b7f864117bc975d87db6ba17375b0e8145eba301a788ad69ab7099b319027d19d8
|
7
|
+
data.tar.gz: 44e89a2b59f846f8c5d8d1e2538c0039baf312bbd8ed043bff00ce124930f247094f4dde9af53d3a18dfd8943109d5eb83ed6e587042ed62f158ba7b14adaee1
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,19 @@
|
|
1
|
+
## 2.1.0
|
2
|
+
* Add `.buildkite/lib` directory to $LOAD_PATH if it exists.
|
3
|
+
|
4
|
+
## 2.1.0
|
5
|
+
* Fix a bug introduced in 2.0.0 where artifacts were being uploaded before extensions had a chance to do work.
|
6
|
+
* Remove `SortedSet` dependency.
|
7
|
+
* Add `annotate` pipeline command helper.
|
8
|
+
* Add `StepCollection#find` and `StepCollection#find!` for ease of finding a step by its key in extensions.
|
9
|
+
* `group` now supports the `emoji:` helper. (Eg. `group "foobar", emoji: :smile`)
|
10
|
+
|
11
|
+
## 2.0.0
|
12
|
+
* Add support for `group`.
|
13
|
+
* `Processor`s has been renamed to `Extension`. Extensions add more capabilities (will document separately).
|
14
|
+
* `plugin` no longer takes 2 arguments (source, version). It's simply 1 arg that is both source and version, separated by a `#`. This is more akin to Buildkite's usage.
|
15
|
+
* Full refactor of pipeline code allowing for extensions to extend DSL methods.
|
16
|
+
|
1
17
|
## 1.5.0
|
2
18
|
* Merge `BuildKite::Builder::Context` and `BuildKite::Pipelines::Pipeline` to `BuildKite::Builder::Pipeline` (#37)
|
3
19
|
|
data/README.md
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.
|
1
|
+
2.2.0
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module Buildkite
|
2
|
+
module Builder
|
3
|
+
module Extensions
|
4
|
+
class Lib < Extension
|
5
|
+
def prepare
|
6
|
+
lib_dir = Buildkite::Builder.root.join(Buildkite::Builder::BUILDKITE_DIRECTORY_NAME, 'lib')
|
7
|
+
|
8
|
+
if lib_dir.directory? && !$LOAD_PATH.include?(lib_dir)
|
9
|
+
$LOAD_PATH.unshift(lib_dir)
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -10,9 +10,14 @@ module Buildkite
|
|
10
10
|
end
|
11
11
|
|
12
12
|
dsl do
|
13
|
-
def group(label = nil, &block)
|
13
|
+
def group(label = nil, emoji: nil, &block)
|
14
14
|
raise "Group does not allow nested in another Group" if context.is_a?(Group)
|
15
15
|
|
16
|
+
if emoji
|
17
|
+
emoji = Array(emoji).map { |name| ":#{name}:" }.join
|
18
|
+
label = [emoji, label].compact.join(' ')
|
19
|
+
end
|
20
|
+
|
16
21
|
context.data.steps.push(Buildkite::Builder::Group.new(label, context.data.steps, &block))
|
17
22
|
end
|
18
23
|
|
@@ -4,6 +4,7 @@ module Buildkite
|
|
4
4
|
module Builder
|
5
5
|
module Extensions
|
6
6
|
autoload :Env, File.expand_path('extensions/env', __dir__)
|
7
|
+
autoload :Lib, File.expand_path('extensions/lib', __dir__)
|
7
8
|
autoload :Notify, File.expand_path('extensions/notify', __dir__)
|
8
9
|
autoload :Steps, File.expand_path('extensions/steps', __dir__)
|
9
10
|
autoload :Use, File.expand_path('extensions/use', __dir__)
|
@@ -2,7 +2,6 @@
|
|
2
2
|
|
3
3
|
require 'digest/md5'
|
4
4
|
require 'pathname'
|
5
|
-
require 'sorted_set'
|
6
5
|
|
7
6
|
module Buildkite
|
8
7
|
module Builder
|
@@ -56,7 +55,7 @@ module Buildkite
|
|
56
55
|
end
|
57
56
|
|
58
57
|
def files
|
59
|
-
@files ||= inclusion_rules.map(&:files).reduce(
|
58
|
+
@files ||= (inclusion_rules.map(&:files).reduce(Set.new, :merge) - exclusion_rules.map(&:files).reduce(Set.new, :merge)).sort.to_set
|
60
59
|
end
|
61
60
|
|
62
61
|
def digest
|
@@ -33,6 +33,7 @@ module Buildkite
|
|
33
33
|
@data = Data.new
|
34
34
|
|
35
35
|
use(Extensions::Use)
|
36
|
+
use(Extensions::Lib)
|
36
37
|
use(Extensions::Env)
|
37
38
|
use(Extensions::Notify)
|
38
39
|
use(Extensions::Steps)
|
@@ -40,9 +41,6 @@ module Buildkite
|
|
40
41
|
end
|
41
42
|
|
42
43
|
def upload
|
43
|
-
logger.info '+++ :paperclip: Uploading artifacts'
|
44
|
-
upload_artifacts
|
45
|
-
|
46
44
|
# Upload the pipeline.
|
47
45
|
Tempfile.create(['pipeline', '.yml']) do |file|
|
48
46
|
file.sync = true
|
@@ -53,6 +51,9 @@ module Buildkite
|
|
53
51
|
logger.info '+++ :pipeline: Uploading pipeline'
|
54
52
|
Buildkite::Pipelines::Command.pipeline!(:upload, file.path)
|
55
53
|
end
|
54
|
+
|
55
|
+
logger.info '+++ :paperclip: Uploading artifacts'
|
56
|
+
upload_artifacts
|
56
57
|
end
|
57
58
|
|
58
59
|
def to_h
|
@@ -33,13 +33,17 @@ module Buildkite
|
|
33
33
|
case source
|
34
34
|
when String then source
|
35
35
|
when Plugin then source.source
|
36
|
-
else raise ArgumentError, "Unknown source #{source.
|
36
|
+
else raise ArgumentError, "Unknown source #{source.inspect}"
|
37
37
|
end
|
38
38
|
|
39
39
|
@collection.select do |plugin|
|
40
40
|
plugin.source == source_string
|
41
41
|
end
|
42
42
|
end
|
43
|
+
|
44
|
+
def to_definition
|
45
|
+
@collection.map(&:to_h)
|
46
|
+
end
|
43
47
|
end
|
44
48
|
end
|
45
49
|
end
|
@@ -27,6 +27,14 @@ module Buildkite
|
|
27
27
|
end
|
28
28
|
end
|
29
29
|
|
30
|
+
def find(key)
|
31
|
+
@steps.find { |step| step.has?(:key) && step.key == key.to_s }
|
32
|
+
end
|
33
|
+
|
34
|
+
def find!(key)
|
35
|
+
find(key) || raise(ArgumentError, "Can't find step with key: #{key}")
|
36
|
+
end
|
37
|
+
|
30
38
|
def add(step_class, template = nil, **args, &block)
|
31
39
|
@steps.push(step_class.new(self, template, **args, &block)).last
|
32
40
|
end
|
data/lib/buildkite/builder.rb
CHANGED
@@ -46,7 +46,7 @@ module Buildkite
|
|
46
46
|
|
47
47
|
def find_buildkite_directory(start_path)
|
48
48
|
path = Pathname.new(start_path)
|
49
|
-
until path.join(BUILDKITE_DIRECTORY_NAME).
|
49
|
+
until path.join(BUILDKITE_DIRECTORY_NAME).directory?
|
50
50
|
raise "Unable to find #{BUILDKITE_DIRECTORY_NAME} from #{start_path}" if path == path.parent
|
51
51
|
|
52
52
|
path = path.parent
|
@@ -48,7 +48,9 @@ module Buildkite
|
|
48
48
|
|
49
49
|
def to_h
|
50
50
|
permitted_attributes.each_with_object({}) do |attr, hash|
|
51
|
-
|
51
|
+
next unless has?(attr)
|
52
|
+
|
53
|
+
hash[attr] = get(attr).respond_to?(:to_definition) ? get(attr).to_definition : get(attr)
|
52
54
|
end
|
53
55
|
end
|
54
56
|
|
@@ -21,6 +21,14 @@ module Buildkite
|
|
21
21
|
new(:artifact, subcommand, *args).run
|
22
22
|
end
|
23
23
|
|
24
|
+
def self.annotate(body, *args)
|
25
|
+
new(:annotate, body, *args).run
|
26
|
+
end
|
27
|
+
|
28
|
+
def self.annotate!(*args)
|
29
|
+
abort unless annotate(*args)
|
30
|
+
end
|
31
|
+
|
24
32
|
def initialize(command, subcommand, *args)
|
25
33
|
@command = command.to_s
|
26
34
|
@subcommand = subcommand.to_s
|
@@ -5,17 +5,12 @@ module Buildkite
|
|
5
5
|
module Helpers
|
6
6
|
module Plugins
|
7
7
|
def plugin(name_or_source, options = nil)
|
8
|
-
|
8
|
+
attributes['plugins'] ||= Buildkite::Builder::PluginCollection.new(step_collection.plugins)
|
9
|
+
attributes['plugins'].add(name_or_source, options)
|
9
10
|
end
|
10
11
|
|
11
12
|
def plugins
|
12
|
-
|
13
|
-
end
|
14
|
-
|
15
|
-
private
|
16
|
-
|
17
|
-
def plugin_collection
|
18
|
-
@plugin_collection ||= Buildkite::Builder::PluginCollection.new(step_collection.plugins)
|
13
|
+
attributes['plugins']
|
19
14
|
end
|
20
15
|
end
|
21
16
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: buildkite-builder
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ngan Pham
|
@@ -9,22 +9,8 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: exe
|
11
11
|
cert_chain: []
|
12
|
-
date: 2021-08-
|
12
|
+
date: 2021-08-31 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
|
-
- !ruby/object:Gem::Dependency
|
15
|
-
name: sorted_set
|
16
|
-
requirement: !ruby/object:Gem::Requirement
|
17
|
-
requirements:
|
18
|
-
- - ">="
|
19
|
-
- !ruby/object:Gem::Version
|
20
|
-
version: '0'
|
21
|
-
type: :runtime
|
22
|
-
prerelease: false
|
23
|
-
version_requirements: !ruby/object:Gem::Requirement
|
24
|
-
requirements:
|
25
|
-
- - ">="
|
26
|
-
- !ruby/object:Gem::Version
|
27
|
-
version: '0'
|
28
14
|
- !ruby/object:Gem::Dependency
|
29
15
|
name: rainbow
|
30
16
|
requirement: !ruby/object:Gem::Requirement
|
@@ -140,6 +126,7 @@ files:
|
|
140
126
|
- lib/buildkite/builder/extension_manager.rb
|
141
127
|
- lib/buildkite/builder/extensions.rb
|
142
128
|
- lib/buildkite/builder/extensions/env.rb
|
129
|
+
- lib/buildkite/builder/extensions/lib.rb
|
143
130
|
- lib/buildkite/builder/extensions/notify.rb
|
144
131
|
- lib/buildkite/builder/extensions/steps.rb
|
145
132
|
- lib/buildkite/builder/extensions/use.rb
|
@@ -205,9 +192,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
205
192
|
version: 2.3.0
|
206
193
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
207
194
|
requirements:
|
208
|
-
- - "
|
195
|
+
- - ">="
|
209
196
|
- !ruby/object:Gem::Version
|
210
|
-
version:
|
197
|
+
version: '0'
|
211
198
|
requirements: []
|
212
199
|
rubygems_version: 3.2.2
|
213
200
|
signing_key:
|