Примеры yml для Gitlab CI/CD

Примеры 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

 

Добавить комментарий