stages: - "Install Dependencies" - "Lint Code" - "Build Docker Image" - "Publish Docker Image" "Install node_modules": image: node:16 stage: "Install Dependencies" script: - yarn --frozen-lockfile artifacts: paths: - node_modules/ "Lint JS": image: node:16 stage: "Lint Code" dependencies: - "Install node_modules" script: - yarn lint --no-fix "Build docker image": image: docker:stable stage: "Build Docker Image" tags: - docker - hawkeye dependencies: - "Install node_modules" - "Lint JS" script: # Add make support - 'apk add --no-cache make' # Build the image - 'make build-container DOCKER_REPOSITORY=$REGISTRY_BASE_URL/$DOCKER_IMAGE_NAME DOCKER_TAG=$CI_COMMIT_SHA' rules: - if: '$REGISTRY_BASE_URL == ""' when: never - if: '$DOCKER_IMAGE_NAME == ""' when: never "Publish Docker Image": image: docker:stable stage: "Publish Docker Image" tags: - docker - hawkeye dependencies: - "Build docker image" script: # Log in to the registry - 'docker login -u=$REGISTRY_USER -p=$REGISTRY_PASSWORD $REGISTRY_BASE_URL' # Push the registry images - 'docker image push $REGISTRY_BASE_URL/$DOCKER_IMAGE_NAME:$CI_COMMIT_SHA' # Clean local image - 'docker image rm $REGISTRY_BASE_URL/$DOCKER_IMAGE_NAME:$CI_COMMIT_SHA' rules: - if: '$REGISTRY_BASE_URL == ""' when: never - if: '$DOCKER_IMAGE_NAME == ""' when: never