citasks 0.1.3 → 0.1.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/citasks/ci_lib.rb +27 -9
- data/lib/citasks.rb +43 -0
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 957bcedfb3611c100ccab26a6d4f4b568f81e239
|
4
|
+
data.tar.gz: 41d396cf38779faa1140efce7fb14e8a872b718d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7b2221814042be344743e0adb8510b75ba99446c434bf4bce40340fe582f39cf7ce2296acd63eac5580517a22e38ea0d6960204580c9756d12326f91780746fe
|
7
|
+
data.tar.gz: 1f5b95da5d069ab0c8def0825e245441d2180c159daa52284d4aa10e4a2100a14d74ef97e7ce506940a7bc2d29fa5a0589265091ea83539d69d9185be3b44a68
|
data/lib/citasks/ci_lib.rb
CHANGED
@@ -8,6 +8,20 @@ def _write fullpath, content
|
|
8
8
|
end
|
9
9
|
end
|
10
10
|
|
11
|
+
def token_shared_persistently
|
12
|
+
#create a shared token across tasks
|
13
|
+
secret_token_file = ".token"
|
14
|
+
if File.exists? secret_token_file
|
15
|
+
token = File.read secret_token_file
|
16
|
+
else
|
17
|
+
token = SecureRandom.uuid
|
18
|
+
File.open secret_token_file, "w" do |fh|
|
19
|
+
fh.puts token
|
20
|
+
end
|
21
|
+
end
|
22
|
+
token
|
23
|
+
end
|
24
|
+
|
11
25
|
module JenkinsTools
|
12
26
|
WORKFLOW_PLUGIN = ENV["WORKFLOW_PLUGIN"] || "workflow-job@2.14.1"
|
13
27
|
GITLAB_PLUGIN = ENV["GITLAB_PLUGIN"] || "gitlab-plugin@1.4.7"
|
@@ -15,8 +29,10 @@ module JenkinsTools
|
|
15
29
|
GIT_PLUGIN = ENV["GIT_PLUGIN"] || "git@3.4.0"
|
16
30
|
|
17
31
|
# git_repo_url = http://virtuous-porcupine-gitlab-ce/wenzm/icp-static-web.git, gitlab-wenzm-password
|
18
|
-
def self.gen_job_xml job_name, xml_file_name, git_repo_url, repo_credential_id_in_jenkins,
|
19
|
-
secret_token =
|
32
|
+
def self.gen_job_xml job_name, xml_file_name, git_repo_url, repo_credential_id_in_jenkins, secret_token=nil
|
33
|
+
secret_token = token_shared_persistently if secret_token.nil?
|
34
|
+
|
35
|
+
token_to_trigger_build_remotely = SecureRandom.uuid
|
20
36
|
_write xml_file_name, <<~EOF
|
21
37
|
<?xml version='1.0' encoding='UTF-8'?>
|
22
38
|
<flow-definition plugin="#{WORKFLOW_PLUGIN}">
|
@@ -45,7 +61,7 @@ module JenkinsTools
|
|
45
61
|
<includeBranchesSpec></includeBranchesSpec>
|
46
62
|
<excludeBranchesSpec></excludeBranchesSpec>
|
47
63
|
<targetBranchRegex></targetBranchRegex>
|
48
|
-
|
64
|
+
<secretToken>#{secret_token}</secretToken>
|
49
65
|
</com.dabsquared.gitlabjenkins.GitLabPushTrigger>
|
50
66
|
</triggers>
|
51
67
|
</org.jenkinsci.plugins.workflow.job.properties.PipelineTriggersJobProperty>
|
@@ -163,14 +179,16 @@ module GitlabTools
|
|
163
179
|
Gitlab.create_project repo_name
|
164
180
|
end
|
165
181
|
|
166
|
-
def self.setup_hook repo_name, gitlab_url, token, hooked_url,
|
182
|
+
def self.setup_hook repo_name, gitlab_url, token, hooked_url, secret_token=nil
|
167
183
|
_setup_gitlab gitlab_url, token
|
168
184
|
|
169
185
|
project = Gitlab.projects.find do |p|
|
170
186
|
p.name== repo_name
|
171
187
|
end
|
188
|
+
|
189
|
+
secret_token = token_shared_persistently if secret_token.nil?
|
172
190
|
|
173
|
-
Gitlab.add_project_hook project.id, hooked_url, :push_events => 1,:enable_ssl_verification=>0, :token=>
|
191
|
+
Gitlab.add_project_hook project.id, hooked_url, :push_events => 1,:enable_ssl_verification=>0, :token=> secret_token
|
174
192
|
|
175
193
|
end
|
176
194
|
|
@@ -219,7 +237,7 @@ module Builder
|
|
219
237
|
sprintf("%02d", @task_index)
|
220
238
|
end
|
221
239
|
|
222
|
-
def
|
240
|
+
def reset_task_index
|
223
241
|
@task_index = 0
|
224
242
|
end
|
225
243
|
EOF
|
@@ -323,7 +341,7 @@ module Builder
|
|
323
341
|
tag=ENV["BUILD_NUMBER"]||"B1"
|
324
342
|
|
325
343
|
namespace "docker" do
|
326
|
-
|
344
|
+
reset_task_index
|
327
345
|
|
328
346
|
desc "build docker image"
|
329
347
|
task "\#{next_task_index}_build_image" do
|
@@ -333,12 +351,12 @@ module Builder
|
|
333
351
|
desc "push to ICp registry"
|
334
352
|
task "\#{next_task_index}_push_to_ICp_registry" do
|
335
353
|
DockerTools.add_etc_hosts
|
336
|
-
DockerTools.push_to_registry image_name,
|
354
|
+
DockerTools.push_to_registry image_name, tag
|
337
355
|
end
|
338
356
|
end
|
339
357
|
|
340
358
|
namespace "k8s" do
|
341
|
-
|
359
|
+
reset_task_index
|
342
360
|
|
343
361
|
desc "deploy into k8s"
|
344
362
|
task "\#{next_task_index}_deploy_to_k8s" do
|
data/lib/citasks.rb
CHANGED
@@ -1,6 +1,49 @@
|
|
1
1
|
require_relative "citasks/ci_lib"
|
2
2
|
require_relative "citasks/task_index"
|
3
3
|
|
4
|
+
namespace "init" do
|
5
|
+
@task_index = 0
|
6
|
+
desc "create initial .env file"
|
7
|
+
task "#{next_task_index}_env", [:project_name] do |t, args|
|
8
|
+
project =args.project_name
|
9
|
+
File.open ".env", "w" do |fh|
|
10
|
+
content = <<~EOF
|
11
|
+
GITLAB_USER = wenzm
|
12
|
+
|
13
|
+
#URL to access out side of k8s cluster
|
14
|
+
GITLAB_BASE_URL = http://localhost:30139
|
15
|
+
GITLAB_IN_CLUSTER_BASE_URL = http://hopping-marsupial-gitlab-ce
|
16
|
+
GITLAB_API_TOKEN = KDbJwWZxXYkKVmGhFSN3
|
17
|
+
|
18
|
+
JENKINS_URL = http://localhost:30003
|
19
|
+
JENKINS_IN_CLUSTER_URL = http://interesting-orangutan-jenkins:8080
|
20
|
+
JENKINS_GIT_USER_CREDENTIAL_ID = gitlab-wenzm-password
|
21
|
+
|
22
|
+
JENKINS_USER = wenzm
|
23
|
+
JENKINS_USER_API_TOKEN = f432de6a2fbeaaf58757f76194dcd825
|
24
|
+
|
25
|
+
JOB_NAME=#{project}
|
26
|
+
REPO_NAME=#{project}
|
27
|
+
|
28
|
+
COMPILER_DOCKER_IMAGE=maven:3.5-jdk-8
|
29
|
+
|
30
|
+
#for private docker registry
|
31
|
+
ICP_MASTER_IP=192.168.10.100
|
32
|
+
EOF
|
33
|
+
|
34
|
+
fh.puts content
|
35
|
+
end
|
36
|
+
|
37
|
+
File.open ".gitignore", "w" do |fh|
|
38
|
+
content =<<~EOF
|
39
|
+
.token
|
40
|
+
EOF
|
41
|
+
|
42
|
+
fh.puts content
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
4
47
|
namespace "Jenkins" do
|
5
48
|
@task_index = 0
|
6
49
|
job_name = ENV["JOB_NAME"]
|