Merge pull request #33 from turniere/ticket/TURNIERE-155
Use GitLab CI pipeline for test, build and deploy
This commit is contained in:
commit
ffc1b7c19e
|
|
@ -0,0 +1,38 @@
|
|||
stages:
|
||||
- test
|
||||
- build
|
||||
- deploy
|
||||
|
||||
rails spec:
|
||||
stage: test
|
||||
image: ruby:2.6.2
|
||||
script:
|
||||
- bundle install --path /cache
|
||||
- bundle exec rails db:migrate RAILS_ENV=test
|
||||
- bundle exec rails spec
|
||||
|
||||
kaniko:
|
||||
stage: build
|
||||
image:
|
||||
name: gcr.io/kaniko-project/executor:debug
|
||||
entrypoint: [""]
|
||||
script:
|
||||
- echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_REGISTRY_PASSWORD\"}}}" > /kaniko/.docker/config.json
|
||||
- /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --destination $CI_REGISTRY_IMAGE:latest --destination $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA
|
||||
|
||||
kubernetes:
|
||||
stage: deploy
|
||||
only:
|
||||
- master
|
||||
image: ruby
|
||||
variables:
|
||||
KUBERNETES_SERVICE_ACCOUNT_OVERWRITE: gitlab-deploy
|
||||
script:
|
||||
- curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl
|
||||
- chmod +x kubectl
|
||||
- mv kubectl /usr/bin/kubectl
|
||||
- kubectl config set-cluster k8s --server="https://kubernetes.default.svc" --certificate-authority=/var/run/secrets/kubernetes.io/serviceaccount/ca.crt
|
||||
- kubectl config set-credentials sa --token="$(cat /var/run/secrets/kubernetes.io/serviceaccount/token)"
|
||||
- kubectl config set-context local --cluster=k8s --user=sa --namespace=turniere
|
||||
- gem install kubernetes-deploy
|
||||
- REVISION=$CI_COMMIT_SHA kubernetes-deploy --template-dir kubernetes turniere local
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
# turniere-backend [](https://travis-ci.org/turniere/turniere-backend) [](https://coveralls.io/github/turniere/turniere-backend)
|
||||
# turniere-backend [](https://gitlab.com/turniere/turniere-backend/commits/master) [](https://coveralls.io/gitlab/turniere/turniere-backend?branch=ticket%2FTURNIERE-155)
|
||||
Ruby on Rails application serving as backend for turnie.re
|
||||
|
||||
# Installation
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
Y4UIuVqLavjXmFEOE+O7Au4QNdTdrtAWHnwX/cPi8iPFOJ+UqbTh3MEtMv14eZuT6nZrcM/hHq5JgeiVWzqo2HPG3n2pKTOT6Vq9XNKdBnjsrnjvmiPUTKV+rLOJt3jyzU9UUL/TZr+fNFGvukvPX+7jfqcS05SFwZyfTUmjXC8Z4taZl2pxrE5x52grwgIF7Gi0LzPhJEMGJcp2vD2CzmJHMtrw6X5ZXFS6ps1w/j8xpiTtXz4QjCJKUo1q42jg+Vx+ksokFb/RDvd/JiK9llSrmmTAjRKZEvAlKjzSqF6VCXKwlAO4/i9Hw8cvKG10AtZoN/pLTs21R4OvpGJtOMkuPaRQeGIpdwCZAr+2Igwm2tY0SlzfYinMCiGPNvZ/fzRgQ6jnUdXBO/Hx+ovgsx1K1YlNeyKWbXCE--cJq+CSeYnVuFylpi--tT3Rzku2Nhrvw2rrKkwYig==
|
||||
a/Vh9cLLEd1hfBWkDT1nYmMfT4R/BgM3FMeZCBgaghdJ2O5r5+Fv68PtkdPgNlLObecjswDHrB9G4a6asUuHs9gDNSr1cppsCIFYEPMOxc+UFBxsJI7xD5G5Cz4MSXRg8awKLV5tRj/WG5f5TK3IlvCisqp/MqsHpWVrr0Phyi+GxEiqDqmAT+da5b0DISm+LTMLsSJPpSCTSwg0i8K0PNx6DLEHx0gSjFL8AYkjij2a0IyuOeCWGmhVJLtK/nRIS13ZG9kGlugiCambSbS/2jqh+FAk24pdW1ehEj2Aeho+UTq/Q6UGUGfyJXtsSmv94HGNd4hDOCv5Rl1syzHMgeybC8TxIWWkq2hFp8eaeZlUM/XJJY/SeWrnCQKnVRN/Q7U06sPhXr/mJ3QdAt5h5MVRgEX7HmZg97KN--61sCxyaYwUNHTLta--RPxslZdR5UsB1Jko8C/H2w==
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: backend-deployment
|
||||
namespace: turniere
|
||||
labels:
|
||||
app: turniere-backend
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: turniere-backend
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: turniere-backend
|
||||
spec:
|
||||
containers:
|
||||
- name: backend-container
|
||||
image: registry.gitlab.com/turniere/turniere-backend:<%= current_sha %>
|
||||
ports:
|
||||
- containerPort: 3000
|
||||
env:
|
||||
- name: RAILS_MASTER_KEY
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: turniere-secret
|
||||
key: master.key
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
"_public_key": "c837fba31b5cd2adb6809c23818e9ee1bc7a85f585f8bf9bca767f6e6e71db39",
|
||||
"kubernetes_secrets": {
|
||||
"turniere-secret": {
|
||||
"_type": "Opaque",
|
||||
"data": {
|
||||
"master.key": "EJ[1:QEauT9a+p+4WLCIpVRIVafEN6KemhM544B3bx67Gyg4=:/2xjJ3RseqBy6JORX9vkaFv3pnhWYELB:KQvFX2W4aLBquluKJikYeO/sp2TOUROxGU8qj941EMk0vxapeGEh9CdQ9Rit1B+e]"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: backend-service
|
||||
namespace: turniere
|
||||
spec:
|
||||
selector:
|
||||
app: turniere-backend
|
||||
ports:
|
||||
- name: http
|
||||
port: 3000
|
||||
targetPort: 3000
|
||||
---
|
||||
apiVersion: extensions/v1beta1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: backend-ingress
|
||||
namespace: turniere
|
||||
annotations:
|
||||
kubernetes.io/ingress.class: traefik
|
||||
spec:
|
||||
rules:
|
||||
- host: api01.turnie.re
|
||||
http:
|
||||
paths:
|
||||
- path: /
|
||||
backend:
|
||||
serviceName: backend-service
|
||||
servicePort: http
|
||||
Loading…
Reference in New Issue