mirror of
https://github.com/Dannecron/netology-devops-gitlab.git
synced 2025-12-25 23:32:34 +03:00
resolve todo, improve ci/cd
This commit is contained in:
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user