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