diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 8e1896b6736a6474cdd4c304cdbed589f4139299..8e1cae51944c5c8ed692e7db938c7bb1374835cd 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,65 +1,23 @@ default: - image: python:3.12-bullseye - -workflow: - rules: - - if: '$CI_PIPELINE_SOURCE == "web"' - - if: '$CI_COMMIT_BRANCH == "main"' - -variables: - PACKAGE_NAME: "pak" - REPO_URL: "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/pypi" - PIP_CACHE_DIR: "${CI_PROJECT_DIR}/.cache/pip" - PIP_INDEX_URL: "https://__token__:${CI_JOB_TOKEN}@gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/pypi/simple" - PIP_EXTRA_INDEX_URL: "https://pypi.org/simple" - CXX: "/usr/bin/g++" + image: docker:26.0.1-dind stages: - build - - test - - publish - -build_package: - stage: build - before_script: - - apt-get update && apt-get install -y g++ make build-essential cmake - script: - - pip install --upgrade pip - - pip install setuptools wheel build - - python -m build - artifacts: - paths: - - dist/* - cache: - paths: - - ${PIP_CACHE_DIR} -test_package: - stage: test - script: - - pip install . - - pip install pytest - - pytest +variables: + PACKAGE_NAME: "alphafold3" + DOCKER_IMAGE: "$CI_REGISTRY_IMAGE/$PACKAGE_NAME" + DOCKER_TLS_CERTDIR: "/certs" -publish_pip: - stage: publish - script: - - pip install twine - - twine upload -u gitlab-ci-token -p ${CI_JOB_TOKEN} --repository-url ${REPO_URL} dist/* +before_script: + - unset DOCKER_HOST + - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY -build_and_push_docker_image: - stage: publish - image: docker:latest - services: - - docker:dind - variables: - DOCKER_IMAGE_NAME: ${CI_REGISTRY_IMAGE}/${PACKAGE_NAME} - DOCKER_TLS_CERTDIR: "/certs" - before_script: - - echo "${CI_REGISTRY_PASSWORD}" | docker login -u "${CI_REGISTRY_USER}" --password-stdin ${CI_REGISTRY} - - apt-get update && apt-get install -y g++ make build-essential cmake +push_docker_image: + stage: build + image: docker:26.0.1-dind script: - - echo "Building docker image and tagging as latest" - - docker pull ${DOCKER_IMAGE_NAME}:latest || true - - docker build --build-arg BUILDKIT_INLINE_CACHE=1 --cache-from ${DOCKER_IMAGE_NAME}:latest -t ${DOCKER_IMAGE_NAME}:latest . - - docker push ${DOCKER_IMAGE_NAME}:latest + - docker build -t $DOCKER_IMAGE:$CI_COMMIT_SHORT_SHA -f docker/Dockerfile . + - docker push $DOCKER_IMAGE:$CI_COMMIT_SHORT_SHA + only: + - main # Only run on the main branch