image: node:20-bullseye-slim stages: - build - docker-build - docker-release build-all: stage: build script: - npm install -g turbo - npm ci - turbo build .docker-build: image: registry.gitlab.com/guardianproject-ops/docker-alpine-git:latest services: - docker:dind stage: docker-build variables: DOCKER_NS: ${CI_REGISTRY}/digiresilience/link/link-stack/$(basename "${PWD}") DOCKER_TAG: ${CI_COMMIT_SHORT_SHA} 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} ${PWD} - docker push .docker-release: image: registry.gitlab.com/guardianproject-ops/docker-alpine-git:latest services: - docker:dind stage: docker-release variables: DOCKER_NS: ${CI_REGISTRY}/digiresilience/link/link-stack/$(basename "${PWD}") DOCKER_TAG: ${CI_COMMIT_SHORT_SHA} DOCKER_TAG_NEW: ${CI_COMMIT_REF_NAME}-$(shell jq -r '.version' package.json) only: - main - develop 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} link-docker-build: extends: .docker-build before_script: - cd apps/link variables: DOCKER_NS: ${CI_REGISTRY}/digiresilience/link/link-stack/link link-docker-release: extends: .docker-release before_script: - cd apps/link variables: DOCKER_NS: ${CI_REGISTRY}/digiresilience/link/link-stack/link cache: key: ${CI_COMMIT_REF_SLUG} paths: - .turbo/