From bb3b95f41f3fdf3da760868fbc7c60affdaca0fa Mon Sep 17 00:00:00 2001 From: Fortune Iriaye <firiaye@uab.edu> Date: Thu, 21 Nov 2024 07:46:36 -0600 Subject: [PATCH] Update .gitlab-ci.yml file --- .gitlab-ci.yml | 49 +++++++++++++++++++++++++------------------------ 1 file changed, 25 insertions(+), 24 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 13c5944..2a325d5 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,29 +1,30 @@ -default: - image: docker:26.0.1 - -stages: - - build - -variables: - PACKAGE_NAME: "alphafold3" - DOCKER_IMAGE: "$CI_REGISTRY_IMAGE/$PACKAGE_NAME" - DOCKER_TLS_CERTDIR: "" # Disable TLS for Docker-in-Docker - -push_docker_image: +docker-build: + # Use the official docker image. + image: docker:stable stage: build - image: docker:26.0.1 services: - - name: docker:26.0.1-dind # Provide Docker daemon as a service - alias: docker - command: ["--dns=8.8.8.8", "--dns=8.8.4.4"] # Resolve DNS issues + - docker:26.0.1-dind variables: - DOCKER_HOST: tcp://docker:2375 # Connect to Docker daemon - DOCKER_TLS_CERTDIR: "" # Disable TLS for Docker-in-Docker + DOCKER_IMAGE_NAME: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG + DOCKER_TLS_CERTDIR: "/certs" before_script: - # Secure login to Docker registry - - echo "$CI_REGISTRY_PASSWORD" | docker login -u "$CI_REGISTRY_USER" --password-stdin $CI_REGISTRY + - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY + cache: + key: ${CI_COMMIT_REF_SLUG} + paths: + - cache/ + # All branches are tagged with $DOCKER_IMAGE_NAME (defaults to commit ref slug) + # Default branch is also tagged with `latest` script: - - docker build -t $DOCKER_IMAGE:$CI_COMMIT_SHORT_SHA -f docker/Dockerfile . - - docker push $DOCKER_IMAGE:$CI_COMMIT_SHORT_SHA - only: - - main # Run only on the main branch + - docker build --cache-from ${CI_REGISTRY_IMAGE}:${CI_COMMIT_REF_SLUG} --pull -t "$DOCKER_IMAGE_NAME" . + - docker push "$DOCKER_IMAGE_NAME" + - | + if [[ "$CI_COMMIT_BRANCH" == "$CI_DEFAULT_BRANCH" ]]; then + docker tag "$DOCKER_IMAGE_NAME" "$CI_REGISTRY_IMAGE:latest" + docker push "$CI_REGISTRY_IMAGE:latest" + fi + # Run this job in a branch where a Dockerfile exists + rules: + - if: $CI_COMMIT_BRANCH + exists: + - Dockerfile \ No newline at end of file -- GitLab