Примеры yml для Gitlab CI/CD
В этом примере образ проекта загружается в приватный docker regestry (для дальнейшего деплоя).
delivery-job: stage: delivery image: docker script: - docker login -p $DEPLOY_PASSWORD -u $DEPLOY_USER $ZS_DOCKER_REG_HOST - docker images - docker tag project_name $ZS_DOCKER_REG_HOST/project_name:$CI_COMMIT_REF_SLUG - docker push $ZS_DOCKER_REG_HOST/project_name:$CI_COMMIT_REF_SLUG only: - branches except: - master tags: - docker when: manual
Пример запуска ansible сценария для деплоя:
deploy-stage: stage: deploy image: romandockerxxx/zs:1 before_script: - ansible --version #- ansible-lint --version - mkdir secret - echo "$ANSIBLE_SSHKEY_PRIVATE" > secret/ansible.key ## import ansible ssh key - chmod 400 secret/ansible.key - export ANSIBLE_HOST_KEY_CHECKING=False script: - ansible-playbook --private-key secret/ansible.key -i .ansible/hosts.yml .ansible/deploy-stage.yml # environment: # name: staging/${CI_COMMIT_REF_SLUG} # url: https://backend-${CI_COMMIT_REF_SLUG}.hostname.com # on_stop: destroy-stage # auto_stop_in: 1 week when: manual only: - branches except: - master tags: - docker
Запуск джобы при изменении только определённых файлов и для определённых веток:
only: changes: - '*.js' - '*.css' - '*.less' refs: - develop - master