mirror of
https://git.rwth-aachen.de/acs/public/villas/web-backend-go/
synced 2025-03-30 00:00:12 +01:00
ci: run postgresql as a service in a separate container
This commit is contained in:
parent
a81dcf4889
commit
a97e20b781
3 changed files with 13 additions and 84 deletions
|
@ -1,7 +1,13 @@
|
||||||
|
services:
|
||||||
|
- postgres:latest
|
||||||
|
|
||||||
variables:
|
variables:
|
||||||
TEST_FOLDER: database
|
TEST_FOLDER: database
|
||||||
DOCKER_IMAGE: ${CI_REGISTRY}/acs/public/villas/web-backend-go
|
DOCKER_IMAGE: ${CI_REGISTRY}/acs/public/villas/web-backend-go
|
||||||
DOCKER_IMAGE_DEV: ${CI_REGISTRY}/acs/public/villas/web-backend-go/dev
|
DOCKER_IMAGE_DEV: ${CI_REGISTRY}/acs/public/villas/web-backend-go/dev
|
||||||
|
POSTGRES_DB: testvillasdb
|
||||||
|
POSTGRES_USER: villasuser
|
||||||
|
POSTGRES_PASSWORD: villasuser
|
||||||
|
|
||||||
stages:
|
stages:
|
||||||
- prepare
|
- prepare
|
||||||
|
@ -21,14 +27,6 @@ prepare:redoc:
|
||||||
- shell
|
- shell
|
||||||
- linux
|
- linux
|
||||||
|
|
||||||
prepare:docker-dev:
|
|
||||||
stage: prepare
|
|
||||||
script:
|
|
||||||
- docker build -f Dockerfile.dev -t $DOCKER_IMAGE_DEV .
|
|
||||||
tags:
|
|
||||||
- shell
|
|
||||||
- linux
|
|
||||||
|
|
||||||
# Stage: build
|
# Stage: build
|
||||||
##############################################################################
|
##############################################################################
|
||||||
|
|
||||||
|
@ -36,14 +34,12 @@ build:backend:
|
||||||
stage: build
|
stage: build
|
||||||
tags:
|
tags:
|
||||||
- docker
|
- docker
|
||||||
image: ${DOCKER_IMAGE_DEV}
|
image: golang:1.12.9-buster
|
||||||
script:
|
script:
|
||||||
- go mod tidy
|
- go mod tidy
|
||||||
- go get -u github.com/swaggo/swag/cmd/swag
|
- go install github.com/swaggo/swag/cmd/swag
|
||||||
- ~/go/bin/swag init -p pascalcase -g "start.go" -o "./doc/api/"
|
- swag init -p pascalcase -g "start.go" -o "./doc/api/"
|
||||||
- go build
|
- go build
|
||||||
dependencies:
|
|
||||||
- prepare:docker-dev
|
|
||||||
artifacts:
|
artifacts:
|
||||||
paths:
|
paths:
|
||||||
- doc/api/swagger.json
|
- doc/api/swagger.json
|
||||||
|
@ -80,9 +76,8 @@ test:all:
|
||||||
stage: test
|
stage: test
|
||||||
tags:
|
tags:
|
||||||
- docker
|
- docker
|
||||||
image: ${DOCKER_IMAGE_DEV}
|
image: golang:1.12.9-buster
|
||||||
script:
|
script:
|
||||||
- /etc/init.d/postgresql start
|
|
||||||
- go mod tidy
|
- go mod tidy
|
||||||
- go test $(go list ./... ) -p 1 -covermode=count -coverprofile ./testcover.txt
|
- go test $(go list ./... ) -p 1 -covermode=count -coverprofile ./testcover.txt
|
||||||
- go tool cover -func=testcover.txt
|
- go tool cover -func=testcover.txt
|
||||||
|
@ -93,12 +88,11 @@ test:database:
|
||||||
stage: test
|
stage: test
|
||||||
tags:
|
tags:
|
||||||
- docker
|
- docker
|
||||||
image: ${DOCKER_IMAGE_DEV}
|
image: golang:1.12.9-buster
|
||||||
script:
|
script:
|
||||||
- /etc/init.d/postgresql start
|
|
||||||
- go mod tidy
|
- go mod tidy
|
||||||
- cd ${TEST_FOLDER}
|
- cd ${TEST_FOLDER}
|
||||||
- go test -v
|
- go test -v -args -dbhost postgresql
|
||||||
dependencies:
|
dependencies:
|
||||||
- build:backend
|
- build:backend
|
||||||
|
|
||||||
|
@ -151,9 +145,7 @@ deploy:docker:
|
||||||
- docker login -u ${CI_REGISTRY_USER} -p ${CI_REGISTRY_PASSWORD} ${CI_REGISTRY}
|
- docker login -u ${CI_REGISTRY_USER} -p ${CI_REGISTRY_PASSWORD} ${CI_REGISTRY}
|
||||||
script:
|
script:
|
||||||
- docker push ${DOCKER_IMAGE}
|
- docker push ${DOCKER_IMAGE}
|
||||||
- docker push ${DOCKER_IMAGE_DEV}
|
|
||||||
dependencies:
|
dependencies:
|
||||||
- prepare:docker-dev
|
|
||||||
- build:docker
|
- build:docker
|
||||||
only:
|
only:
|
||||||
- master
|
- master
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
FROM golang:1.13.4-buster AS builder
|
FROM golang:1.12.9-buster AS builder
|
||||||
|
|
||||||
WORKDIR /go/src/app
|
WORKDIR /go/src/app
|
||||||
COPY . .
|
COPY . .
|
||||||
|
|
|
@ -1,63 +0,0 @@
|
||||||
FROM ubuntu:16.04
|
|
||||||
|
|
||||||
ARG GIT_REV=unknown
|
|
||||||
ARG GIT_BRANCH=unknown
|
|
||||||
ARG VERSION=unknown
|
|
||||||
ARG VARIANT=unknown
|
|
||||||
|
|
||||||
# Update and Upgrade
|
|
||||||
RUN apt-get update && apt-get upgrade -y
|
|
||||||
|
|
||||||
# Install dependencies
|
|
||||||
RUN apt-get install -y git ca-certificates g++ gcc libc6 libc6-dev pkg-config wget tar lsb-release
|
|
||||||
|
|
||||||
# Install Go 1.12.9
|
|
||||||
RUN cd /tmp && mkdir golang && cd golang && \
|
|
||||||
wget https://dl.google.com/go/go1.12.9.linux-amd64.tar.gz && \
|
|
||||||
tar -xvf go1.12.9.linux-amd64.tar.gz && \
|
|
||||||
mv go /usr/local && \
|
|
||||||
rm -rf /tmp/*
|
|
||||||
|
|
||||||
ENV GOROOT=/usr/local/go
|
|
||||||
ENV PATH=/usr/local/go/bin:${PATH}
|
|
||||||
|
|
||||||
RUN go version
|
|
||||||
|
|
||||||
# Add PostgreSQL Repository to Ubuntu
|
|
||||||
RUN wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add - && \
|
|
||||||
sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -sc)-pgdg main" > /etc/apt/sources.list.d/PostgreSQL.list'
|
|
||||||
|
|
||||||
RUN apt-get update && apt-get install -y postgresql-11
|
|
||||||
|
|
||||||
# Run the following commands as the ``postgres`` user
|
|
||||||
USER postgres
|
|
||||||
|
|
||||||
RUN /etc/init.d/postgresql start &&\
|
|
||||||
psql --command "CREATE USER villasuser WITH SUPERUSER PASSWORD 'villasuser';" && \
|
|
||||||
createdb -O villasuser testvillasdb && \
|
|
||||||
createdb -O villasuser villasdb
|
|
||||||
|
|
||||||
# Add ``listen_addresses`` to ``/etc/postgresql/11/main/postgresql.conf``
|
|
||||||
RUN echo "listen_addresses='*'" >> /etc/postgresql/11/main/postgresql.conf
|
|
||||||
|
|
||||||
# Expose the PostgreSQL port
|
|
||||||
EXPOSE 5432
|
|
||||||
|
|
||||||
WORKDIR /villasweb
|
|
||||||
ENTRYPOINT bash
|
|
||||||
|
|
||||||
LABEL \
|
|
||||||
org.label-schema.schema-version="1.0" \
|
|
||||||
org.label-schema.name="VILLASweb" \
|
|
||||||
org.label-schema.license="GPL-3.0" \
|
|
||||||
org.label-schema.vcs-ref="$GIT_REV" \
|
|
||||||
org.label-schema.vcs-branch="$GIT_BRANCH" \
|
|
||||||
org.label-schema.version="$VERSION" \
|
|
||||||
org.label-schema.variant="$VARIANT" \
|
|
||||||
org.label-schema.vendor="Institute for Automation of Complex Power Systems, RWTH Aachen University" \
|
|
||||||
org.label-schema.author.name="Sonja Happ" \
|
|
||||||
org.label-schema.author.email="sonja.happ@eonerc.rwth-aachen.de" \
|
|
||||||
org.label-schema.description="A image containing all build-time dependencies for VILLASweb-backend-go based on Fedora" \
|
|
||||||
org.label-schema.url="http://fein-aachen.org/projects/villas-web/" \
|
|
||||||
org.label-schema.vcs-url="https://git.rwth-aachen.de/public/villas/web-backend-go"
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue