summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/gitlab/ci/pipeline/chain/populate_metadata.rb4
-rw-r--r--spec/lib/gitlab/ci/pipeline/chain/populate_metadata_spec.rb14
2 files changed, 16 insertions, 2 deletions
diff --git a/lib/gitlab/ci/pipeline/chain/populate_metadata.rb b/lib/gitlab/ci/pipeline/chain/populate_metadata.rb
index 35b907b669c..89befb2a65b 100644
--- a/lib/gitlab/ci/pipeline/chain/populate_metadata.rb
+++ b/lib/gitlab/ci/pipeline/chain/populate_metadata.rb
@@ -28,7 +28,9 @@ module Gitlab
name = @command.yaml_processor_result.workflow_name
name = ExpandVariables.expand(name, -> { global_context.variables.sort_and_expand_all })
- pipeline.build_pipeline_metadata(project: pipeline.project, name: name)
+ return if name.blank?
+
+ pipeline.build_pipeline_metadata(project: pipeline.project, name: name.strip)
end
def global_context
diff --git a/spec/lib/gitlab/ci/pipeline/chain/populate_metadata_spec.rb b/spec/lib/gitlab/ci/pipeline/chain/populate_metadata_spec.rb
index ce1ee2fcda0..35e1c48a942 100644
--- a/spec/lib/gitlab/ci/pipeline/chain/populate_metadata_spec.rb
+++ b/spec/lib/gitlab/ci/pipeline/chain/populate_metadata_spec.rb
@@ -89,6 +89,18 @@ RSpec.describe Gitlab::Ci::Pipeline::Chain::PopulateMetadata do
expect(pipeline.pipeline_metadata).to be_nil
end
+
+ context 'with empty name after variable substitution' do
+ let(:config) do
+ { workflow: { name: '$VAR1' }, rspec: { script: 'rspec' } }
+ end
+
+ it 'does not save empty name' do
+ run_chain
+
+ expect(pipeline.pipeline_metadata).to be_nil
+ end
+ end
end
context 'with variables' do
@@ -106,7 +118,7 @@ RSpec.describe Gitlab::Ci::Pipeline::Chain::PopulateMetadata do
it 'substitutes variables' do
run_chain
- expect(pipeline.pipeline_metadata.name).to eq('Pipeline value value1 value2 ')
+ expect(pipeline.pipeline_metadata.name).to eq('Pipeline value value1 value2')
end
end