diff options
Diffstat (limited to 'scripts/trigger-build-docs')
-rwxr-xr-x | scripts/trigger-build-docs | 136 |
1 files changed, 0 insertions, 136 deletions
diff --git a/scripts/trigger-build-docs b/scripts/trigger-build-docs deleted file mode 100755 index 2957dde6fc0..00000000000 --- a/scripts/trigger-build-docs +++ /dev/null @@ -1,136 +0,0 @@ -#!/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' - config.private_token = ENV["DOCS_API_TOKEN"] # GitLab Docs bot access token with Developer access to gitlab-docs -end - -# -# The remote docs project -# -GITLAB_DOCS_REPO = 'gitlab-org/gitlab-docs'.freeze - -# -# This is the branch that will be created in the gitlab-docs project. -# Name it after the product we're previewing and the ID of the MR that -# kicked the review app. -# -def docs_branch - # Check if CI_MERGE_REQUEST_IID is present. This requires pipelines - # for merge requests to be enabled. - if ENV["CI_MERGE_REQUEST_IID"].nil? - "docs-preview-#{slug}-#{ENV["CI_COMMIT_REF_SLUG"]}" - else - "docs-preview-#{slug}-#{ENV["CI_MERGE_REQUEST_IID"]}" - end -end - -# -# Create a remote branch in gitlab-docs and immediately cancel the pipeline -# to avoid race conditions, since a triggered pipeline will also run right -# after the branch creation. This only happens the very first time a branch -# is created and will be skipped in subsequent runs. Read more in -# https://gitlab.com/gitlab-org/gitlab-docs/issues/154. -# -def create_remote_branch - Gitlab.create_branch(GITLAB_DOCS_REPO, docs_branch, 'master') - puts "=> Remote branch '#{docs_branch}' created" - - pipelines = nil - - # Wait until the pipeline is started - loop do - sleep 1 - puts "=> Waiting for pipeline to start..." - pipelines = Gitlab.pipelines(GITLAB_DOCS_REPO, { ref: docs_branch }) - break if pipelines.any? - end - - # Get the first pipeline ID which should be the only one for the branch - pipeline_id = pipelines.first.id - - # Cancel the pipeline - Gitlab.cancel_pipeline(GITLAB_DOCS_REPO, pipeline_id) -rescue Gitlab::Error::BadRequest - puts "=> Remote branch '#{docs_branch}' already exists" -end - -# -# Remove a remote branch in gitlab-docs -# -def remove_remote_branch - Gitlab.delete_branch(GITLAB_DOCS_REPO, docs_branch) - puts "=> Remote branch '#{docs_branch}' deleted" -end - -# -# Define suffix in review app URL based on project -# -def slug - case ENV["CI_PROJECT_PATH"] - when 'gitlab-org/gitlab-foss' - 'ce' - when 'gitlab-org/gitlab' - 'ee' - when 'gitlab-org/gitlab-runner' - 'runner' - when 'gitlab-org/omnibus-gitlab' - 'omnibus' - when 'gitlab-org/charts/gitlab' - 'charts' - end -end - -# -# Overriding vars in https://gitlab.com/gitlab-org/gitlab-docs/blob/master/.gitlab-ci.yml -# -def param_name - "BRANCH_#{slug.upcase}" -end - -# -# Trigger a pipeline in gitlab-docs -# -def trigger_pipeline - # The review app URL - app_url = "http://#{docs_branch}.#{ENV["DOCS_REVIEW_APPS_DOMAIN"]}/#{slug}" - - # Create the cross project pipeline using CI_JOB_TOKEN - pipeline = Gitlab.run_trigger(GITLAB_DOCS_REPO, ENV["CI_JOB_TOKEN"], docs_branch, { param_name => ENV["CI_COMMIT_REF_NAME"] }) - - puts "=> Follow the status of the triggered pipeline:" - puts "" - puts pipeline.web_url - puts "" - puts "=> In a few minutes, you will be able to preview your changes under the following URL:" - puts "" - puts app_url - puts "" - puts "=> For more information, see the documentation" - puts "=> https://docs.gitlab.com/ee/development/documentation/index.html#previewing-the-changes-live" - puts "" - puts "=> If something doesn't work, drop a line in the #docs chat channel." - puts "" -end - -# -# When the first argument is deploy then create the branch and trigger pipeline -# When it is 'stop', it deleted the remote branch. That way, we ensure there -# are no stale remote branches and the Review server doesn't fill. -# -case ARGV[0] -when 'deploy' - create_remote_branch - trigger_pipeline -when 'cleanup' - remove_remote_branch -else - puts "Please provide a valid option: - deploy - Creates the remote branch and triggers a pipeline - cleanup - Deletes the remote branch and stops the Review App" -end |