image: node:22-bookworm-slim stages: - build - docker-build - docker-release build-all: stage: build variables: TURBO_TOKEN: ${TURBO_TOKEN} TURBO_TEAM: ${TURBO_TEAM} ZAMMAD_URL: ${ZAMMAD_URL} PNPM_HOME: "/pnpm" script: - export PATH="$PNPM_HOME:$PATH" - corepack enable && corepack prepare pnpm@9.15.4 --activate - pnpm add -g turbo - pnpm install --frozen-lockfile - turbo build .docker-build: image: registry.gitlab.com/digiresilience/link/link-stack/buildx:main services: - docker:dind stage: docker-build variables: DOCKER_HOST: tcp://docker:2375 DOCKER_TLS_CERTDIR: "" DOCKER_TAG: ${CI_COMMIT_SHORT_SHA} BUILD_CONTEXT: . only: - main - develop - tags script: - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY - DOCKER_BUILDKIT=1 docker build --pull --no-cache -t ${DOCKER_NS}:${DOCKER_TAG} -f ${DOCKERFILE_PATH} ${BUILD_CONTEXT} - docker push ${DOCKER_NS}:${DOCKER_TAG} .docker-release: image: registry.gitlab.com/digiresilience/link/link-stack/buildx:main services: - docker:dind stage: docker-release variables: DOCKER_HOST: tcp://docker:2375 DOCKER_TLS_CERTDIR: "" DOCKER_TAG: ${CI_COMMIT_SHORT_SHA} DOCKER_TAG_NEW: ${CI_COMMIT_REF_NAME} only: - main - develop - tags script: - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY - docker pull ${DOCKER_NS}:${DOCKER_TAG} - docker tag ${DOCKER_NS}:${DOCKER_TAG} ${DOCKER_NS}:${DOCKER_TAG_NEW} - docker push ${DOCKER_NS}:${DOCKER_TAG_NEW} buildx-docker-build: extends: .docker-build variables: DOCKER_NS: ${CI_REGISTRY}/digiresilience/link/link-stack/buildx DOCKERFILE_PATH: ./docker/buildx/Dockerfile buildx-docker-release: extends: .docker-release variables: DOCKER_NS: ${CI_REGISTRY}/digiresilience/link/link-stack/buildx bridge-whatsapp-docker-build: extends: .docker-build variables: DOCKER_NS: ${CI_REGISTRY}/digiresilience/link/link-stack/bridge-whatsapp DOCKERFILE_PATH: ./apps/bridge-whatsapp/Dockerfile bridge-whatsapp-docker-release: extends: .docker-release variables: DOCKER_NS: ${CI_REGISTRY}/digiresilience/link/link-stack/bridge-whatsapp signal-cli-rest-api-docker-build: extends: .docker-build variables: DOCKER_NS: ${CI_REGISTRY}/digiresilience/link/link-stack/signal-cli-rest-api DOCKERFILE_PATH: ./docker/signal-cli-rest-api/Dockerfile signal-cli-rest-api-docker-release: extends: .docker-release variables: DOCKER_NS: ${CI_REGISTRY}/digiresilience/link/link-stack/signal-cli-rest-api memcached-docker-build: extends: .docker-build variables: DOCKER_NS: ${CI_REGISTRY}/digiresilience/link/link-stack/memcached DOCKERFILE_PATH: ./docker/memcached/Dockerfile memcached-docker-release: extends: .docker-release variables: DOCKER_NS: ${CI_REGISTRY}/digiresilience/link/link-stack/memcached nginx-proxy-docker-build: extends: .docker-build variables: DOCKER_NS: ${CI_REGISTRY}/digiresilience/link/link-stack/nginx-proxy DOCKERFILE_PATH: ./docker/nginx-proxy/Dockerfile nginx-proxy-docker-release: extends: .docker-release variables: DOCKER_NS: ${CI_REGISTRY}/digiresilience/link/link-stack/nginx-proxy opensearch-docker-build: extends: .docker-build variables: DOCKER_NS: ${CI_REGISTRY}/digiresilience/link/link-stack/opensearch DOCKERFILE_PATH: ./docker/opensearch/Dockerfile opensearch-docker-release: extends: .docker-release variables: DOCKER_NS: ${CI_REGISTRY}/digiresilience/link/link-stack/opensearch opensearch-dashboards-docker-build: extends: .docker-build variables: DOCKER_NS: ${CI_REGISTRY}/digiresilience/link/link-stack/opensearch-dashboards DOCKERFILE_PATH: ./docker/opensearch-dashboards/Dockerfile opensearch-dashboards-docker-release: extends: .docker-release variables: DOCKER_NS: ${CI_REGISTRY}/digiresilience/link/link-stack/opensearch-dashboards postgresql-docker-build: extends: .docker-build variables: DOCKER_NS: ${CI_REGISTRY}/digiresilience/link/link-stack/postgresql DOCKERFILE_PATH: ./docker/postgresql/Dockerfile postgresql-docker-release: extends: .docker-release variables: DOCKER_NS: ${CI_REGISTRY}/digiresilience/link/link-stack/postgresql redis-docker-build: extends: .docker-build variables: DOCKER_NS: ${CI_REGISTRY}/digiresilience/link/link-stack/redis DOCKERFILE_PATH: ./docker/redis/Dockerfile redis-docker-release: extends: .docker-release variables: DOCKER_NS: ${CI_REGISTRY}/digiresilience/link/link-stack/redis zammad-docker-build: extends: .docker-build variables: DOCKER_NS: ${CI_REGISTRY}/digiresilience/link/link-stack/zammad DOCKERFILE_PATH: ./docker/zammad/Dockerfile BUILD_CONTEXT: ./docker/zammad PNPM_HOME: "/pnpm" before_script: - export PATH="$PNPM_HOME:$PATH" - corepack enable && corepack prepare pnpm@9.15.4 --activate script: - pnpm add -g turbo - pnpm install --frozen-lockfile - turbo build --force --filter @link-stack/zammad-addon-* - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY - DOCKER_BUILDKIT=1 docker build --pull --no-cache -t ${DOCKER_NS}:${DOCKER_TAG} -f ${DOCKERFILE_PATH} ${BUILD_CONTEXT} - docker push ${DOCKER_NS}:${DOCKER_TAG} zammad-docker-release: extends: .docker-release variables: DOCKER_NS: ${CI_REGISTRY}/digiresilience/link/link-stack/zammad