From 20673e85328e0970e4fa7d0d5aca0c356bf37ed1 Mon Sep 17 00:00:00 2001
From: Harold Barker <git@haroldbarker.co.uk>
Date: Fri, 12 Feb 2016 18:50:56 +0000
Subject: [PATCH] Register GitLab Runner

---
 defaults/main.yml         | 11 +++++++++++
 tasks/main.yml            |  4 ++++
 tasks/register-runner.yml | 14 ++++++++++++++
 3 files changed, 29 insertions(+)
 create mode 100644 tasks/register-runner.yml

diff --git a/defaults/main.yml b/defaults/main.yml
index 5c04e4e..93d0869 100644
--- a/defaults/main.yml
+++ b/defaults/main.yml
@@ -1,3 +1,14 @@
 ---
 # Maximum number of jobs to run concurrently
 gitlab_runner_concurrent: '{{ ansible_processor_cores }}'
+
+# GitLab coordinator URL
+gitlab_runner_coordinator_url: 'https://gitlab.com/ci'
+# GitLab registration token
+gitlab_runner_registration_token: ''
+# Runner description
+gitlab_runner_description: '{{ ansible_hostname }}'
+# Runner executor
+gitlab_runner_executor: 'shell'
+# Runner tags
+gitlab_runner_tags: []
diff --git a/tasks/main.yml b/tasks/main.yml
index eb76afe..064596d 100644
--- a/tasks/main.yml
+++ b/tasks/main.yml
@@ -5,3 +5,7 @@
 
 - name: Set global options
   include: global-setup.yml
+
+- name: Register GitLab Runner
+  include: register-runner.yml
+  when: gitlab_runner_registration_token != ''
diff --git a/tasks/register-runner.yml b/tasks/register-runner.yml
new file mode 100644
index 0000000..01c0f5c
--- /dev/null
+++ b/tasks/register-runner.yml
@@ -0,0 +1,14 @@
+---
+- name: List configured runners
+  command: gitlab-runner list
+  register: configured_runners
+
+- name: Register runner to GitLab
+  command: gitlab-runner register >
+    --non-interactive
+    --url '{{ gitlab_runner_coordinator_url }}'
+    --registration-token '{{ gitlab_runner_registration_token }}'
+    --description '{{ gitlab_runner_description }}'
+    --tag-list '{{ gitlab_runner_tags | join(",") }}'
+    --executor '{{ gitlab_runner_executor }}'
+  when: configured_runners.stderr.find('\n{{ gitlab_runner_description }}') == -1
-- 
GitLab