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
|
Ruby on Rails application serving as backend for turnie.re
|
||||||
|
|
||||||
# Installation
|
# 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