mosquitto-with-auth/.gitlab-ci.yml
2022-11-23 12:42:08 +01:00

77 lines
3.2 KiB
YAML

stages:
- build
- dockerize
variables:
IMAGE_NAME: registry.hottis.de/dockerized/mosquitto-with-auth
HUB_IMAGE_NAME: wollud1969/mosquitto-with-auth
GO_BINARIES: go1.19.1.linux-amd64.tar.gz
build:
stage: build
image: registry.hottis.de/dockerized/base-build-env:1.5.3-bullseye
tags:
- hottis
- linux
- docker
variables:
GIT_SUBMODULE_STRATEGY: recursive
except:
- tags
artifacts:
paths:
- opt/
- etc/
- generated-version.txt
- version.txt
script:
- apt update
- apt install -y gcc g++ libssl-dev uuid-dev libcjson-dev xsltproc docbook docbook-xsl libmariadb-dev libpq-dev libwebsockets-dev
- wget https://dl.google.com/go/$GO_BINARIES
- tar -xzf $GO_BINARIES
- mv go /usr/local
- GOROOT=/usr/local/go
- PATH=$PATH:$GOROOT/bin
- MOSQ_SRC=`pwd`/parts/mosquitto
- BUILD_DIR=`pwd`
- pushd parts/mosquitto
- sed -i 's,prefix?=/usr/local,prefix=/opt,' config.mk
- sed -i 's,WITH_WEBSOCKETS:=no,WITH_WEBSOCKETS:=yes,' config.mk
- env DESTDIR=$BUILD_DIR make
- env DESTDIR=$BUILD_DIR make install
- popd
- pushd parts/mosquitto-go-auth
- export CGO_CFLAGS="-I$BUILD_DIR/opt/include -fPIC"
- export CGO_LDFLAGS="-shared"
- make
- cp go-auth.so $BUILD_DIR/opt/lib
- cp pw $BUILD_DIR/opt/bin
- popd
- VERSION=`cat VERSION`
- echo -n "$VERSION" > version.txt
- REFCNT=`git rev-list --all --count`
- echo -n "$VERSION.$REFCNT.$CI_COMMIT_REF_NAME" > generated-version.txt
dockerize:
stage: dockerize
image: docker:stable
tags:
- hottis
- linux
- docker
dependencies:
- build
script:
- GENERATED_VERSION=`cat generated-version.txt`
- VERSION=`cat version.txt`
- echo docker build --tag $IMAGE_NAME:latest --tag $IMAGE_NAME:$VERSION --tag $IMAGE_NAME:$GENERATED_VERSION --tag $HUB_IMAGE_NAME:latest --tag $HUB_IMAGE_NAME:$VERSION --tag $HUB_IMAGE_NAME:$GENERATED_VERSION .
- docker build --tag $IMAGE_NAME:latest --tag $IMAGE_NAME:$VERSION --tag $IMAGE_NAME:$GENERATED_VERSION --tag $HUB_IMAGE_NAME:latest --tag $HUB_IMAGE_NAME:$VERSION --tag $HUB_IMAGE_NAME:$GENERATED_VERSION .
- docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
- docker push $IMAGE_NAME:latest
- docker push $IMAGE_NAME:$VERSION
- docker push $IMAGE_NAME:$GENERATED_VERSION
- docker login -u $DOCKER_HUB_LOGIN -p $DOCKER_HUB_PASSWORD
- docker push $HUB_IMAGE_NAME:latest
- docker push $HUB_IMAGE_NAME:$VERSION
- docker push $HUB_IMAGE_NAME:$GENERATED_VERSION