summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitlab-ci.yml13
-rwxr-xr-xscripts/trigger-build18
2 files changed, 19 insertions, 12 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 39546e888d2..88d536fa9b3 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -149,18 +149,7 @@ build-package:
stage: build
when: manual
script:
- # If no branch in omnibus is specified, trigger pipeline against master
- - if [ -z "$OMNIBUS_BRANCH" ] ; then export OMNIBUS_BRANCH=master ;fi
- - echo "token=${BUILD_TRIGGER_TOKEN}" > version_details
- - echo "ref=${OMNIBUS_BRANCH}" >> version_details
- - echo "variables[ALTERNATIVE_SOURCES]=true" >> version_details
- - echo "variables[GITLAB_VERSION]=${CI_COMMIT_SHA}" >> version_details
- # Collect version details of all components
- - for f in *_VERSION; do echo "variables[$f]=$(cat $f)" >> version_details; done
- # Trigger the API and pass values collected above as parameters to it
- - pipeline_id=$(cat version_details | tr '\n' '&' | curl -s -X POST https://gitlab.com/api/v4/projects/20699/trigger/pipeline --data-binary @- | ruby -e "require 'json'; puts JSON.parse(STDIN.read)['id']") > /dev/null
- - echo "Triggered pipeline can be found at https://gitlab.com/gitlab-org/omnibus-gitlab/pipelines/${pipeline_id}"
- - rm version_details
+ - scripts/trigger-build
# Prepare and merge knapsack tests
knapsack:
diff --git a/scripts/trigger-build b/scripts/trigger-build
new file mode 100755
index 00000000000..ccdb01c96ca
--- /dev/null
+++ b/scripts/trigger-build
@@ -0,0 +1,18 @@
+#!/usr/bin/env ruby
+
+require 'net/http'
+require 'json'
+
+uri = URI('https://gitlab.com/api/v4/projects/20699/trigger/pipeline')
+params = {
+ "token" => ENV['BUILD_TRIGGER_TOKEN'],
+ "variables[GITLAB_VERSION]" => ENV['CI_COMMIT_SHA'],
+ "variables[ALTERNATIVE_SOURCES]" => true,
+}
+params['ref'] = ENV['OMNIBUS_BRANCH'] || "master"
+Dir.glob("*_VERSION").each do |version_file|
+ params["variables[#{version_file}]"] = File.read(version_file).strip
+end
+res = Net::HTTP.post_form(uri, params)
+pipeline_id = JSON.parse(res.body)['id']
+puts "Triggered pipeline can be found at https://gitlab.com/gitlab-org/omnibus-gitlab/pipelines/#{pipeline_id}"