-
Notifications
You must be signed in to change notification settings - Fork 6
/
build-slave.yaml
110 lines (110 loc) · 3.42 KB
/
build-slave.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
---
apiVersion: template.openshift.io/v1
kind: Template
labels:
app: jenkins-prod
metadata:
creationTimestamp: null
name: jenkins
objects:
- apiVersion: v1
kind: ImageStream
metadata:
creationTimestamp: null
labels:
shared: "true"
name: ${NAME}-slave-${SLAVE_NAME}
spec:
lookupPolicy:
local: false
- apiVersion: v1
kind: BuildConfig
metadata:
creationTimestamp: null
name: ${NAME}-slave-${SLAVE_NAME}${SUFFIX}
spec:
completionDeadlineSeconds: 600
failedBuildsHistoryLimit: 3
successfulBuildsHistoryLimit: 3
output:
to:
kind: ImageStreamTag
name: ${NAME}-slave-${SLAVE_NAME}:${VERSION}
postCommit: {}
resources:
limits:
cpu: 2000m
memory: 2Gi
requests:
cpu: 1000m
memory: 1Gi
runPolicy: SerialLatestOnly
source:
dockerfile: |
FROM BuildConfig
ARG GRADLE_VERSION=4.2.1
ARG NODE_VERSION=v14.15.1
ARG SONAR_VERSION=3.3.0.1492
USER 0
RUN fix_permission() { while [[ $# > 0 ]] ; do chgrp -R 0 "$1" && chmod -R g=u "$1"; shift; done } && \
set -x && \
curl -sSL -o /tmp/sonar-scanner-cli.zip https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-${SONAR_VERSION}-linux.zip && \
unzip -q /tmp/sonar-scanner-cli.zip -d /tmp/sonar-scanner-cli && \
mv /tmp/sonar-scanner-cli/sonar-scanner-${SONAR_VERSION}-linux /opt/sonar-scanner && \
ln -s /opt/sonar-scanner/bin/sonar-scanner /usr/local/bin && \
rm -rf /tmp/sonar-scanner-cli.zip && \
rm -rf /tmp/sonar-scanner-cli && \
curl -sSL https://nodejs.org/dist/${NODE_VERSION}/node-${NODE_VERSION}-linux-x64.tar.gz | tar -xz -C /opt && \
mv /opt/node-${NODE_VERSION}-linux-x64 /opt/node && \
curl -sSL -o /tmp/gradle-bin.zip https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-bin.zip && \
unzip -q /tmp/gradle-bin.zip -d /tmp/gradle-bin && \
mv /tmp/gradle-bin/gradle-${GRADLE_VERSION} /opt/gradle && \
ln -s /opt/gradle/bin/gradle /usr/local/bin && \
rm -rf /tmp/gradle-bin.zip && \
rm -rf /tmp/gradle-bin && \
fix_permission '/opt/sonar-scanner' '/opt/node' '/opt/gradle'
ENV LANG='en_US.UTF-8' \
LANGUAGE='en_US:en' \
LC_ALL='en_US.UTF-8' \
NODE_HOME=/opt/node \
PATH=$PATH:/opt/node/bin
USER 1001
type: Dockerfile
strategy:
dockerStrategy:
from:
kind: ImageStreamTag
name: ${SOURCE_IMAGE_STREAM_TAG}
namespace: ${SOURCE_IMAGE_STREAM_NAMESPACE}
type: Docker
triggers:
- imageChange: {}
type: ImageChange
parameters:
- name: NAME
description: A name used for all objects
displayName: Name
required: true
value: jenkins
- name: SUFFIX
description: A name suffix used for all objects
displayName: Suffix
value: "-0"
- name: VERSION
description: A version used for the image tags
displayName: version
required: true
value: latest
- name: SLAVE_NAME
value: build
- name: SOURCE_IMAGE_STREAM_NAMESPACE
value: ""
- name: SOURCE_IMAGE_STREAM_TAG
required: true
value: "jenkins:v1.0.0"
- name: SOURCE_GIT_URL
value: https://github.com/bcdevops/nr-showcase-devops-tools
- name: SOURCE_GIT_REF
value: master
- name: SOURCE_CONTEXT_DIR
value: .jenkins/docker-slave