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:
|
||||
TEST_FOLDER: database
|
||||
DOCKER_IMAGE: ${CI_REGISTRY}/acs/public/villas/web-backend-go
|
||||
DOCKER_IMAGE_DEV: ${CI_REGISTRY}/acs/public/villas/web-backend-go/dev
|
||||
POSTGRES_DB: testvillasdb
|
||||
POSTGRES_USER: villasuser
|
||||
POSTGRES_PASSWORD: villasuser
|
||||
|
||||
stages:
|
||||
- prepare
|
||||
|
@ -21,14 +27,6 @@ prepare:redoc:
|
|||
- shell
|
||||
- linux
|
||||
|
||||
prepare:docker-dev:
|
||||
stage: prepare
|
||||
script:
|
||||
- docker build -f Dockerfile.dev -t $DOCKER_IMAGE_DEV .
|
||||
tags:
|
||||
- shell
|
||||
- linux
|
||||
|
||||
# Stage: build
|
||||
##############################################################################
|
||||
|
||||
|
@ -36,14 +34,12 @@ build:backend:
|
|||
stage: build
|
||||
tags:
|
||||
- docker
|
||||
image: ${DOCKER_IMAGE_DEV}
|
||||
image: golang:1.12.9-buster
|
||||
script:
|
||||
- go mod tidy
|
||||
- go get -u github.com/swaggo/swag/cmd/swag
|
||||
- ~/go/bin/swag init -p pascalcase -g "start.go" -o "./doc/api/"
|
||||
- go install github.com/swaggo/swag/cmd/swag
|
||||
- swag init -p pascalcase -g "start.go" -o "./doc/api/"
|
||||
- go build
|
||||
dependencies:
|
||||
- prepare:docker-dev
|
||||
artifacts:
|
||||
paths:
|
||||
- doc/api/swagger.json
|
||||
|
@ -80,9 +76,8 @@ test:all:
|
|||
stage: test
|
||||
tags:
|
||||
- docker
|
||||
image: ${DOCKER_IMAGE_DEV}
|
||||
image: golang:1.12.9-buster
|
||||
script:
|
||||
- /etc/init.d/postgresql start
|
||||
- go mod tidy
|
||||
- go test $(go list ./... ) -p 1 -covermode=count -coverprofile ./testcover.txt
|
||||
- go tool cover -func=testcover.txt
|
||||
|
@ -93,12 +88,11 @@ test:database:
|
|||
stage: test
|
||||
tags:
|
||||
- docker
|
||||
image: ${DOCKER_IMAGE_DEV}
|
||||
image: golang:1.12.9-buster
|
||||
script:
|
||||
- /etc/init.d/postgresql start
|
||||
- go mod tidy
|
||||
- cd ${TEST_FOLDER}
|
||||
- go test -v
|
||||
- go test -v -args -dbhost postgresql
|
||||
dependencies:
|
||||
- build:backend
|
||||
|
||||
|
@ -151,9 +145,7 @@ deploy:docker:
|
|||
- docker login -u ${CI_REGISTRY_USER} -p ${CI_REGISTRY_PASSWORD} ${CI_REGISTRY}
|
||||
script:
|
||||
- docker push ${DOCKER_IMAGE}
|
||||
- docker push ${DOCKER_IMAGE_DEV}
|
||||
dependencies:
|
||||
- prepare:docker-dev
|
||||
- build:docker
|
||||
only:
|
||||
- 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
|
||||
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