Add build pipeline and deployment files
This commit is contained in:
@@ -0,0 +1,4 @@
|
|||||||
|
vendor
|
||||||
|
.gitignore
|
||||||
|
.git
|
||||||
|
Dockerfile
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
stages:
|
||||||
|
- build
|
||||||
|
- deploy
|
||||||
|
|
||||||
|
variables:
|
||||||
|
DOCKER_HOST: tcp://docker:2375/
|
||||||
|
|
||||||
|
image: registry.gitlab.com/sparetimecoders/build-tools
|
||||||
|
|
||||||
|
build:
|
||||||
|
stage: build
|
||||||
|
services:
|
||||||
|
- docker:dind
|
||||||
|
script:
|
||||||
|
- build
|
||||||
|
- push
|
||||||
|
|
||||||
|
deploy:
|
||||||
|
stage: deploy
|
||||||
|
when: on_success
|
||||||
|
script:
|
||||||
|
- echo Deploying
|
||||||
|
- deploy prod
|
||||||
|
environment:
|
||||||
|
name: prod
|
||||||
|
only:
|
||||||
|
- master
|
||||||
+11
@@ -0,0 +1,11 @@
|
|||||||
|
FROM gunosy/ci-go-glide as builder
|
||||||
|
WORKDIR /go/src/gitlab.com/unboundsoftware/geo-service
|
||||||
|
COPY glide.* ./
|
||||||
|
RUN glide install
|
||||||
|
COPY * ./
|
||||||
|
RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o geo-service .
|
||||||
|
|
||||||
|
FROM scratch
|
||||||
|
COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/
|
||||||
|
COPY --from=builder /go/src/gitlab.com/unboundsoftware/geo-service/geo-service /
|
||||||
|
CMD ["/geo-service"]
|
||||||
@@ -0,0 +1,45 @@
|
|||||||
|
apiVersion: extensions/v1beta1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: geo-service
|
||||||
|
name: geo-service
|
||||||
|
annotations:
|
||||||
|
kubernetes.io/change-cause: "${TIMESTAMP} Deployed commit id: ${COMMIT}"
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: geo-service
|
||||||
|
strategy:
|
||||||
|
rollingUpdate:
|
||||||
|
maxSurge: 1
|
||||||
|
maxUnavailable: 1
|
||||||
|
type: RollingUpdate
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: geo-service
|
||||||
|
spec:
|
||||||
|
affinity:
|
||||||
|
podAntiAffinity:
|
||||||
|
preferredDuringSchedulingIgnoredDuringExecution:
|
||||||
|
- weight: 100
|
||||||
|
podAffinityTerm:
|
||||||
|
labelSelector:
|
||||||
|
matchExpressions:
|
||||||
|
- key: "app"
|
||||||
|
operator: In
|
||||||
|
values:
|
||||||
|
- geo-service
|
||||||
|
topologyKey: kubernetes.io/hostname
|
||||||
|
containers:
|
||||||
|
- name: geo-service
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
memory: "100Mi"
|
||||||
|
requests:
|
||||||
|
memory: "100Mi"
|
||||||
|
imagePullPolicy: Always
|
||||||
|
image: registry.gitlab.com/unboundsoftware/dancefinder/geo-service:${COMMIT}
|
||||||
|
restartPolicy: Always
|
||||||
Reference in New Issue
Block a user