From 5c7b9e5360c295ba8e4242265ee36468ad990a67 Mon Sep 17 00:00:00 2001 From: Fortune Iriaye <firiaye@uab.edu> Date: Wed, 20 Nov 2024 10:46:00 -0600 Subject: [PATCH] Update .gitlab-ci.yml file --- .gitlab-ci.yml | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 .gitlab-ci.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..5108366 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,61 @@ +default: + image: python:3.12-slim + +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" + +stages: + - build + - test + - publish + +build_package: + stage: build + 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 + +publish_pip: + stage: publish + script: + - pip install twine + - twine upload -u gitlab-ci-token -p ${CI_JOB_TOKEN} --repository-url ${REPO_URL} dist/* + +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} + 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 -- GitLab