From 024a9feda25df7c51379e5992b99f7dd99f666a5 Mon Sep 17 00:00:00 2001 From: GnomeZworc Date: Thu, 14 Mar 2024 18:36:45 +0100 Subject: [PATCH] v1.0.0: ci: add test Signed-off-by: GnomeZworc --- .gitlab-ci.yml | 23 ++++++++++++++++++++++- config/test.src | 0 scripts/prepar_test.sh | 42 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 64 insertions(+), 1 deletion(-) create mode 100644 config/test.src create mode 100644 scripts/prepar_test.sh diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index c0cf90f..7721cf6 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,5 +1,6 @@ variables: IMAGE_VERSION: $CI_COMMIT_SHORT_SHA + IMAGE_TYPE: users default: image: debian:11 @@ -33,4 +34,24 @@ build: DOCKER_PATH: '.' script: - docker build --pull -t $CI_REGISTRY_IMAGE:$IMAGE_VERSION-release --target release $DOCKER_PATH - - docker save $CI_REGISTRY_IMAGE:$IMAGE_VERSION-release | gzip > $IMAGE_TYPE-$IMAGE_VERSION-release.tar.gz \ No newline at end of file + - docker save $CI_REGISTRY_IMAGE:$IMAGE_VERSION-release | gzip > $IMAGE_TYPE-$IMAGE_VERSION-release.tar.gz + +integration_test: + stage: test + image: golang:1.21-alpine + variables: + DOCKER_TLS_VERIFY: 1 + DOCKER_CERT_PATH: /certs/client + DOCKER_HOST: tcp://docker:2376/ + DOCKER_URL: docker + before_script: + - apk update && apk add --no-cache docker-cli + - apk add bash + - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY + - docker login -u gnomezworc -p $DOCKERHUB_TOKEN + script: + - bash -ex ./scripts/prepar_test.sh + - . ./config/test.src + - go test -v ./cmd/ + needs: + - build \ No newline at end of file diff --git a/config/test.src b/config/test.src new file mode 100644 index 0000000..e69de29 diff --git a/scripts/prepar_test.sh b/scripts/prepar_test.sh new file mode 100644 index 0000000..2db967f --- /dev/null +++ b/scripts/prepar_test.sh @@ -0,0 +1,42 @@ +#!/bin/bash + + +cat <> /etc/apk/repositories +http://ftp.halifax.rwth-aachen.de/alpine/v3.16/main +http://ftp.halifax.rwth-aachen.de/alpine/v3.16/community +ENDFILE +apk update +apk add docker docker-cli-compose +docker version +docker compose version +docker load --input "$IMAGE_TYPE-$IMAGE_VERSION-release.tar.gz" +docker tag $CI_REGISTRY_IMAGE:$IMAGE_VERSION-release $IMAGE_TYPE:latest + +cat < docker-compose.yml +version: '3.1' + +services: + postgres: + image: postgres:15.2-alpine3.17 + restart: unless-stopped + environment: + POSTGRES_USER: 'acc' + POSTGRES_PASSWORD: 'totor' + POSTGRES_DB: 'accounts' + healthcheck: + test: ["CMD-SHELL", "pg_isready"] + interval: 10s + timeout: 5s + retries: 5 + users: + image: $IMAGE_TYPE + volumes: + - ./docker/keys:/keys + depends_on: + postgres: + condition: service_healthy +ENDFILE + +docker compose pull --quiet --ignore-pull-failures +docker images +docker compose up -d \ No newline at end of file