62 lines
1.4 KiB
Text
62 lines
1.4 KiB
Text
|
#!/usr/bin/env ruby
|
||
|
|
||
|
require 'gitlab'
|
||
|
|
||
|
#
|
||
|
# Configure credentials to be used with gitlab gem
|
||
|
#
|
||
|
Gitlab.configure do |config|
|
||
|
config.endpoint = 'https://gitlab.com/api/v4'
|
||
|
end
|
||
|
|
||
|
#
|
||
|
# The remote project
|
||
|
#
|
||
|
GITLAB_CNG_REPO = 'gitlab-org/build/CNG'.freeze
|
||
|
|
||
|
def ee?
|
||
|
ENV['CI_PROJECT_NAME'] == 'gitlab-ee' || File.exist?('CHANGELOG-EE.md')
|
||
|
end
|
||
|
|
||
|
def read_file_version(filename)
|
||
|
raw_version = File.read(filename).strip
|
||
|
|
||
|
# if the version matches semver format, treat it as a tag and prepend `v`
|
||
|
if raw_version =~ Regexp.compile(/^\d+\.\d+\.\d+(-rc\d+)?(-ee)?$/)
|
||
|
"v#{raw_version}"
|
||
|
else
|
||
|
raw_version
|
||
|
end
|
||
|
end
|
||
|
|
||
|
def params
|
||
|
params = {
|
||
|
'GITLAB_SHELL_VERSION' => read_file_version('GITLAB_SHELL_VERSION'),
|
||
|
'GITALY_VERSION' => read_file_version('GITALY_SERVER_VERSION'),
|
||
|
'TRIGGERED_USER' => ENV['GITLAB_USER_NAME'],
|
||
|
'TRIGGER_SOURCE' => "https://gitlab.com/gitlab-org/#{ENV['CI_PROJECT_NAME']}/-/jobs/#{ENV['CI_JOB_ID']}"
|
||
|
}
|
||
|
|
||
|
if ee?
|
||
|
params['EE_PIPELINE'] = 'true'
|
||
|
params['GITLAB_EE_VERSION'] = ENV['CI_COMMIT_REF_NAME']
|
||
|
else
|
||
|
params['CE_PIPELINE'] = 'true'
|
||
|
params['GITLAB_CE_VERSION'] = ENV['CI_COMMIT_REF_NAME']
|
||
|
end
|
||
|
|
||
|
params
|
||
|
end
|
||
|
|
||
|
#
|
||
|
# Trigger a pipeline
|
||
|
#
|
||
|
def trigger_pipeline
|
||
|
# Create the cross project pipeline using CI_JOB_TOKEN
|
||
|
pipeline = Gitlab.run_trigger(GITLAB_CNG_REPO, ENV['CI_JOB_TOKEN'], 'master', params)
|
||
|
|
||
|
puts "Triggered https://gitlab.com/#{GITLAB_CNG_REPO}/pipelines/#{pipeline.id}"
|
||
|
end
|
||
|
|
||
|
trigger_pipeline
|