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

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

В этом примере образ проекта загружается в приватный docker regestry (для дальнейшего деплоя).

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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
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
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 сценария для деплоя:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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
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
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

Запуск джобы при изменении только определённых файлов и для определённых веток:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
only:
changes:
- '*.js'
- '*.css'
- '*.less'
refs:
- develop
- master
only: changes: - '*.js' - '*.css' - '*.less' refs: - develop - master
only:
    changes:
      - '*.js'
      - '*.css'
      - '*.less'
    refs:
      - develop
      - master

 

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