resolve todo, improve ci/cd

This commit is contained in:
2022-09-19 10:03:55 +07:00
parent 2d3b767283
commit 8ac12a56fb

View File

@@ -16,28 +16,26 @@ pre-build:
tag="$CI_COMMIT_REF_SLUG" tag="$CI_COMMIT_REF_SLUG"
echo "Running on branch '$CI_COMMIT_BRANCH': tag = $tag" echo "Running on branch '$CI_COMMIT_BRANCH': tag = $tag"
fi fi
- echo "DOCKER_IMAGE=$CI_REGISTRY_IMAGE:${tag}"" > docker.env - echo "DOCKER_IMAGE=netology-devops-gitlab:${tag}" > docker.env
artifacts: artifacts:
reports: reports:
dotenv: dotenv:
docker.env docker.env
# todo взять скрипт с yandex
docker-build: docker-build:
# Use the official docker image.
image: docker:latest
stage: build stage: build
variables:
DOCKER_DRIVER: overlay2
DOCKER_TLS_CERTDIR: ""
DOCKER_HOST: tcp://localhost:2375/
image: cr.yandex/yc/metadata-token-docker-helper:0.2
services: services:
- docker:dind - docker:19.03.1-dind
needs: needs:
- pre-build - pre-build
before_script:
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
# All other branches are tagged with the escaped branch name (commit ref slug)
script: script:
- docker build --pull -t "$DOCKER_IMAGE" -f docker/Dockerfile . - docker build --pull -t "cr.yandex/${YA_DOCKER_REGISTRY}/${DOCKER_IMAGE}" -f docker/Dockerfile .
- docker push "$DOCKER_IMAGE" - docker push "cr.yandex/${YA_DOCKER_REGISTRY}/${DOCKER_IMAGE}"
# Run this job in a branch where a Dockerfile exists
rules: rules:
- if: $CI_COMMIT_BRANCH - if: $CI_COMMIT_BRANCH
exists: exists:
@@ -49,23 +47,23 @@ test-api:
variables: variables:
PYTHON_API_HOSTNAME: python-api PYTHON_API_HOSTNAME: python-api
services: services:
- name: $DOCKER_IMAGE - name: "cr.yandex/${YA_DOCKER_REGISTRY}/${DOCKER_IMAGE}"
alias: python-api alias: python-api
needs: needs:
- pre-build - pre-build
- docker-build - docker-build
before_script:
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
script: script:
- ./test/validate_api.sh - ./test/validate_api.sh
# todo взять скрипт с yandex deploy:
deploy-main: image: gcr.io/cloud-builders/kubectl:latest
image: docker:latest
stage: deploy stage: deploy
rules: needs:
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH - pre-build
before_script:
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
script: script:
- echo 1 - kubectl config set-cluster k8s --server="$KUBE_URL" --insecure-skip-tls-verify=true
- kubectl config set-credentials admin --token="$KUBE_TOKEN"
- kubectl config set-context default --cluster=k8s --user=admin
- kubectl config use-context default
- sed -i "s/__VERSION__/${DOCKER_IMAGE}/" k8s.yaml
- kubectl apply -f k8s.yaml