diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 2fe6f4b..b90325f 100755 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,39 +1,45 @@ -image: docker:latest - -test: - stage: test - image: python:3.11-alpine - script: - - pip install -r requirements.txt - - python -m unittest discover tests - only: - - main - -before_script: - - apk add --no-cache docker-cli - - | - # Wait for Docker to be ready - until docker info; do - echo "Waiting for Docker to be ready..." - sleep 5 - done - -stages: - - build - - push - -build: - stage: build - script: - - docker info - - docker build -t $CI_REGISTRY/$CI_PROJECT_PATH:$CI_COMMIT_REF_SLUG . - - docker tag $CI_REGISTRY/$CI_PROJECT_PATH:$CI_COMMIT_REF_SLUG $CI_REGISTRY/$CI_PROJECT_PATH:latest - -push: - stage: push - script: - - echo "$CI_REGISTRY_PASSWORD" | docker login -u "$CI_REGISTRY_USER" --password-stdin $CI_REGISTRY - - docker push $CI_REGISTRY/$CI_PROJECT_PATH:$CI_COMMIT_REF_SLUG - - docker push $CI_REGISTRY/$CI_PROJECT_PATH:latest - only: - - main +image: docker:latest +stages: + - test + - build + - push + +test: + stage: test + image: python:3.11-alpine + script: + - pip install -r requirements.txt + - python -m unittest discover tests + only: + - main + +before_script: + - apk add --no-cache docker-cli + - | + # Wait for Docker to be ready + until docker info; do + echo "Waiting for Docker to be ready..." + sleep 5 + done + + + +build: + needs: + - test + stage: build + script: + - docker info + - docker build -t $CI_REGISTRY/$CI_PROJECT_PATH:$CI_COMMIT_REF_SLUG . + - docker tag $CI_REGISTRY/$CI_PROJECT_PATH:$CI_COMMIT_REF_SLUG $CI_REGISTRY/$CI_PROJECT_PATH:latest + +push: + needs: + - build + stage: push + script: + - echo "$CI_REGISTRY_PASSWORD" | docker login -u "$CI_REGISTRY_USER" --password-stdin $CI_REGISTRY + - docker push $CI_REGISTRY/$CI_PROJECT_PATH:$CI_COMMIT_REF_SLUG + - docker push $CI_REGISTRY/$CI_PROJECT_PATH:latest + only: + - main