drone.io1.0에서 현금과parallel pipeline을 이용하여 신속하게 구축
drone.io1.0 사용에서 처리되지 않은 화제는 의존 관계의 캐시와pipeline의 병행 실행이 있습니다.
캐시 기능은drone입니다.io0.8Drillster/drone-volume-cache일 수도 있습니다.1.0 공식plugen을 통해서도 가능합니다.
병행 집행에 대해서는 0.8에서Parallel Execution로 사용
group
했고 1.0에서는 기술depends_on
을 통해 실현했다.캐시 설명 예
drone-plugins/drone-volume-cache를 사용하면 캐시
vendor/bundle
와 vendor/bin
를 사용할 수 있습니다.호스트 측면
/tmp/cache/drone-rails-example
아래에 캐시가 데이터로 저장됩니다.호스트 측면에volume가 설치되어 있기 때문에trusted repository 로고를 ON으로 설정해야 합니다. 웹 UI를 통해 변경할 수 있습니다.---
kind: pipeline
name: default
steps:
- name: restore-cache
image: plugins/volume-cache
settings:
mount:
- ./vendor/bundle
- ./vendor/bin
restore: true
volumes:
- name: cache
path: /cache
- name: bundle-install
image: ruby:2.6.1
commands:
- bundle install --path=vendor/bundle --binstubs=vendor/bin --clean
- bundle exec rubocop -R -fs app spec
- bundle exec rspec
environment:
RAILS_ENV: test
- name: rebuild-cache
image: plugins/volume-cache
settings:
mount:
- ./vendor/bundle
- ./vendor/bin
rebuild: true
volumes:
- name: cache
path: /cache
- name: notify-slack
image: plugins/slack
settings:
webhook:
from_secret: webhook
services:
- name: db
image: mysql:5.7
environment:
MYSQL_DATABASE: drone_example_test
MYSQL_PASSWORD: drone_example
MYSQL_RANDOM_ROOT_PASSWORD: true
MYSQL_USER: drone_example_test
TZ: Asia/Tokyo
volumes:
- name: cache
host:
path: /tmp/cache/drone-rails-example
parallel pipeline stepsdrone.io의 pipeline은 기본적으로 기술 순서에 따라 순서대로 집행되며, 기술
depends_on
이라면 의존적인 step가 끝난 후 기술의 전후와 무관하게 집행된다.FAQ에는 0.8과의 비교를 포함한 알기 쉬운 기술How to setup parallel Pipeline steps (1.0+)이 실렸다.
실제로 Rubop과 RSpec은 서로 독립적으로 실행할 수 있는 예를 다음과 같이 기술합니다(캐시를 설정할 수도 있음)github.
---
kind: pipeline
name: default
steps:
- name: restore-cache
image: plugins/volume-cache
settings:
mount:
- ./vendor/bundle
- ./vendor/bin
restore: true
volumes:
- name: cache
path: /cache
- name: bundle-install
image: ruby:2.6.1
commands:
- bundle install --path=vendor/bundle --binstubs=vendor/bin --clean
environment:
RAILS_ENV: test
depends_on:
- restore-cache
- name: rubocop
image: ruby:2.6.1
commands:
- bundle check --path=vendor/bundle
- bundle exec rubocop -R -fs app spec
environment:
RAILS_ENV: test
depends_on:
- bundle-install
- name: rspec
image: ruby:2.6.1
commands:
- bundle check --path=vendor/bundle
- bundle exec rspec
environment:
DATABASE_HOST: db
DATABASE_PORT: 3306
RAILS_ENV: test
depends_on:
- bundle-install
- name: rebuild-cache
image: plugins/volume-cache
settings:
mount:
- ./vendor/bundle
- ./vendor/bin
rebuild: true
volumes:
- name: cache
path: /cache
depends_on:
- bundle-install
- name: notify-slack
image: plugins/slack
settings:
webhook:
from_secret: webhook
depends_on:
- rubocop
- rspec
services:
- name: db
image: mysql:5.7
environment:
MYSQL_DATABASE: drone_example_test
MYSQL_PASSWORD: drone_example
MYSQL_RANDOM_ROOT_PASSWORD: true
MYSQL_USER: drone_example_test
TZ: Asia/Tokyo
volumes:
- name: cache
host:
path: /tmp/cache/drone-rails-example
...
bundle-instal step 이후 rubocop, rspec 명령을 병행합니다.depends_on
의 기술은 다른 step에도 기재되어 있는데 이것은 필요한 기술이다.bundle-install step depends온에 restore-cache를 기술하지 않으면 다음과 같은 의도하지 않은 순서로 step를 실행합니다.
나는 이 부근에서 0.8의
group
로 기술하는 것이 더 편리하다고 생각한다.期待する順序
- [restore-cache] - [bundle-install] - [rubocop]
\- [rspec]
実行される順序
- [restore-cache]
\- [bundle-install] - [rubocop]
\- [rspec]
웹 UI는 병렬 실행을 표현하지 않아 적막합니다.Reference
이 문제에 관하여(drone.io1.0에서 현금과parallel pipeline을 이용하여 신속하게 구축), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/mmhiyoko/items/1e731e8f08a486ebd344텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)