summaryrefslogtreecommitdiff
path: root/db/migrate/20190830080123_add_index_to_ci_pipelines_external_pull_request.rb
diff options
context:
space:
mode:
authorFabio Pitino <fpitino@gitlab.com>2019-08-09 11:40:45 +0200
committerFabio Pitino <fpitino@gitlab.com>2019-09-05 15:53:48 +0100
commitca6a1f33f91a8cceadebfb9c4e9ac6afa340f71d (patch)
treebd9ddad975384be7c022eea49a248ce78ee76445 /db/migrate/20190830080123_add_index_to_ci_pipelines_external_pull_request.rb
parent273ba34c9e85269c6f7653727caafc49fa151fd1 (diff)
downloadgitlab-ce-ca6a1f33f91a8cceadebfb9c4e9ac6afa340f71d.tar.gz
CE port for pipelines for external pull requestsce-detect-github-pull-requests
Detect if pipeline runs for a GitHub pull request When using a mirror for CI/CD only we register a pull_request webhook. When a pull_request webhook is received, if the source branch SHA matches the actual head of the branch in the repository we create immediately a new pipeline for the external pull request. Otherwise we store the pull request info for when the push webhook is received. When using "only/except: external_pull_requests" we can detect if the pipeline has a open pull request on GitHub and create or not the job based on that.
Diffstat (limited to 'db/migrate/20190830080123_add_index_to_ci_pipelines_external_pull_request.rb')
-rw-r--r--db/migrate/20190830080123_add_index_to_ci_pipelines_external_pull_request.rb17
1 files changed, 17 insertions, 0 deletions
diff --git a/db/migrate/20190830080123_add_index_to_ci_pipelines_external_pull_request.rb b/db/migrate/20190830080123_add_index_to_ci_pipelines_external_pull_request.rb
new file mode 100644
index 00000000000..d2f5ad7a420
--- /dev/null
+++ b/db/migrate/20190830080123_add_index_to_ci_pipelines_external_pull_request.rb
@@ -0,0 +1,17 @@
+# frozen_string_literal: true
+
+class AddIndexToCiPipelinesExternalPullRequest < ActiveRecord::Migration[5.2]
+ include Gitlab::Database::MigrationHelpers
+
+ DOWNTIME = false
+
+ disable_ddl_transaction!
+
+ def up
+ add_concurrent_index :ci_pipelines, :external_pull_request_id, where: 'external_pull_request_id IS NOT NULL'
+ end
+
+ def down
+ remove_concurrent_index :ci_pipelines, :external_pull_request_id
+ end
+end