Skip to content
Snippets Groups Projects
Commit 18879786 authored by sivan's avatar sivan
Browse files

adjusted template files, added yml files

parent 622fb605
No related branches found
No related tags found
No related merge requests found
......@@ -2,6 +2,9 @@ image: golang:1.16
stages:
- test
- build
- docker
- deploy
lint:
stage: test
......@@ -13,10 +16,10 @@ unit_tests:
script:
- make dep
- make test
- gocover-cobertura < coverage/coverage.txt > coverage/coverage.xml
- gocover-cobertura < coverage.txt > coverage.xml
artifacts:
reports:
cobertura: coverage/coverage.xml
cobertura: coverage.xml
race:
stage: test
......@@ -29,7 +32,7 @@ coverage:
- make coverage
after_script:
- mkdir coverage/$CI_COMMIT_BRANCH
- cp coverage/cover.html coverage/$CI_COMMIT_BRANCH
- cp cover.html coverage/$CI_COMMIT_BRANCH
- mv coverage/$CI_COMMIT_BRANCH/cover.html coverage/$CI_COMMIT_BRANCH/index.html
# install openssh client and add ssh keys
- apt-get install openssh-client curl -y >/dev/null
......@@ -41,9 +44,64 @@ coverage:
- echo "$SSH_KNOWN_HOSTS" >> ~/.ssh/known_hosts
- chmod 644 ~/.ssh/known_hosts
- ssh -fN -L 1234:science-vs260.science.uu.nl:22 sivan@up.science.uu.nl
- scp -r -o StrictHostKeyChecking=no -P 1234 -i ~/.ssh/id_rsa coverage/$CI_COMMIT_BRANCH root@localhost:/datadisk/documentation-coverage/home/backend/query-service/features
- scp -r -o StrictHostKeyChecking=no -P 1234 -i ~/.ssh/id_rsa coverage/$CI_COMMIT_BRANCH root@localhost:/datadisk/documentation-coverage/home/backend/$SERVICE_NAME/features
artifacts:
untracked: false
expire_in: 30 days
paths:
- "coverage/cover.html"
- cover.html
build:
stage: build
script:
- make linux
only:
- develop
artifacts:
paths:
- builds/
dependencies: []
docker:
image: docker:stable
tags:
- docker
stage: docker
only:
- develop
before_script:
- docker login datastropheregistry.azurecr.io -u $REGISTRY_USERNAME -p $REGISTRY_PASSWORD
script:
- ls
- cd builds
- ls
- cd ..
- docker build --progress plain -t $SERVICE_NAME:latest .
- docker tag $SERVICE_NAME datastropheregistry.azurecr.io/$SERVICE_NAME:latest
- docker push datastropheregistry.azurecr.io/$SERVICE_NAME:latest
dependencies:
- build
deploy:
stage: deploy
only:
- develop
script:
- apt-get install openssh-client curl -y >/dev/null
- mkdir ~/.ssh/
- eval $(ssh-agent -s)
- echo "$SSH_PRIVATE_KEY" | tr -d '\r' > ~/.ssh/id_rsa
- chmod 600 ~/.ssh/id_rsa
- ssh-add ~/.ssh/id_rsa
- echo "$SSH_KNOWN_HOSTS" >> ~/.ssh/known_hosts
- chmod 644 ~/.ssh/known_hosts
- ssh -fN -L 1234:science-vs260.science.uu.nl:22 sivan@up.science.uu.nl
# Copy kubernetes files over
- scp -r -o StrictHostKeyChecking=no -P 1234 -i ~/.ssh/id_rsa deployments/* root@localhost:/root/kubernetes/$SERVICE_NAME
# Deploy all yml files
- ssh -p 1234 -i ~/.ssh/id_rsa root@localhost "for i in kubernetes/$SERVICE_NAME/*.yml; do kubectl apply -f \$i; done"
# Perform rolling update for deployment
- ssh -p 1234 -i ~/.ssh/id_rsa root@localhost "kubectl rollout restart -f kubernetes/$SERVICE_NAME/deployment.yml"
dependencies: []
FROM busybox
ADD ./builds/main /
CMD /main
.PHONY: all dep build test lint
lint: dep ## Lint the files
@golint -set_exit_status ./...
test: ## Run unittests
@go test -cover -coverprofile=coverage/coverage.txt -covermode count ./...
@go test -cover -coverprofile=coverage.txt -covermode count ./...
race: dep ## Run data race detector
@go test -race -short ./...
......@@ -13,24 +15,21 @@ dep: ## Get the dependencies
@go get -u github.com/boumenot/gocover-cobertura
coverage: dep
@go test -v -coverpkg=./... -coverprofile=coverage/cover.out ./...
@go tool cover -func coverage/cover.out | grep total
@go tool cover -html=coverage/cover.out -o coverage/cover.html
@go test -v -coverpkg=./... -coverprofile=cover.out ./...
@go tool cover -func cover.out | grep total
@go tool cover -html=cover.out -o cover.html
windows:
$(eval GOOS := windows)
@go build -o main ./cmd/service-template/
@mv main builds
$(eval export GOOS := windows)
@go build -o builds/main ./cmd/service-template/
macos: dep
$(eval GOOS := darwin)
@go build -o main ./cmd/service-template/
@mv main builds
macos:
$(eval export GOOS := darwin)
@go build -o builds/main ./cmd/service-template/
linux: # Build for linux
$(eval GOOS := linux)
@go build -o main ./cmd/service-template/
@mv main builds
$(eval export GOOS := linux)
CGO_ENABLED=0 go build -o builds/main ./cmd/service-template/
run:
./builds/main
\ No newline at end of file
./builds/main
# Ignore everything in this directory
*
# Except this file
!.gitignore
!README.md
\ No newline at end of file
# `/builds`
Where the built binaries are placed. Everything in this folder should be ignored by a .gitignore file.
\ No newline at end of file
# Ignore everything in this directory
*
# Except this file
!.gitignore
!README.md
\ No newline at end of file
# `/coverage`
Where code coverage statistics go when running command like `make coverage`.
\ No newline at end of file
apiVersion: apps/v1
kind: Deployment
metadata:
name: query-handler-deployment
labels:
app: query-handler
spec:
replicas: 3
selector:
matchLabels:
app: query-handler
template:
metadata:
labels:
app: query-handler
spec:
containers:
- name: query-handler
image: datastropheregistry.azurecr.io/query-handler-service:latest
ports:
- containerPort: 3000
env:
- name: RABBIT_HOST
value: rabbitmq
- name: RABBIT_PORT
value: "5672"
- name: RABBIT_USER
value: I9YPuqNYvN_o4597-LJ6i0sWZTDTV5kk
- name: RABBIT_PASSWORD
value: zBA4m-IzK6ejLtCdr2gxB6kHmURaUvy4
imagePullSecrets:
- name: docker-regcred
\ No newline at end of file
# Service that exposes this deployment
kind: Service
apiVersion: v1
metadata:
name: query-handler-service
spec:
selector:
app: query-handler
......@@ -3,7 +3,6 @@ module query-service
go 1.15
require (
github.com/rs/xid v1.3.0
github.com/streadway/amqp v1.0.0
github.com/thijsheijden/alice v0.1.5
)
package consumer
import (
"os"
"query-service/internal/errorhandler"
"strconv"
"time"
"github.com/streadway/amqp"
......@@ -16,14 +18,10 @@ type ConsumeMessageFunc func(*[]byte)
func StartConsuming(consumeMessage ConsumeMessageFunc, exchangeID string, routingKey string) {
// Create connection config using environment variables
// rabbitUser := os.Getenv("RABBIT_USER")
// rabbitPassword := os.Getenv("RABBIT_PASSWORD")
// rabbitHost := os.Getenv("RABBIT_HOST")
// rabbitPort, err := strconv.Atoi(os.Getenv("RABBIT_PORT"))
rabbitUser := "haha-test"
rabbitPassword := "dikkedraak"
rabbitHost := "192.168.178.158"
rabbitPort := 5672
rabbitUser := os.Getenv("RABBIT_USER")
rabbitPassword := os.Getenv("RABBIT_PASSWORD")
rabbitHost := os.Getenv("RABBIT_HOST")
rabbitPort, err := strconv.Atoi(os.Getenv("RABBIT_PORT"))
config := alice.CreateConfig(rabbitUser, rabbitPassword, rabbitHost, rabbitPort, true, time.Minute*1, alice.DefaultErrorHandler)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment