drone.io1.0 사용
github의 privte 창고에 있는 CI/CD dronio 0입니다.8을 사용했지만 1.0이 나왔기 때문에 쉽게 옮길 수 있는지 검증했다.
Upgrading (Important) 변경점에 따라 실제 운행한다.
또 이른바 크론잡스의 나이틀리 구축 기능은 1.0에서 설정할 수 있기 때문에 그쪽에서도 검증할 수 있다.
drone 서버를 시작할 때까지
GiitHub 조인트, Single Machine 부팅https://docs.drone.io/installation/github/single-machine/)。
OAuth Application 제작 절차는 기본적으로 변화가 없기 때문에 생략합니다.
주의사항은 서버에 제공된 매개 변수가 크게 변했기 때문에 처음부터 다시 설정해야 한다https://docs.drone.io/reference/)。
다음은 http와 특정 사용자의 이용에 얽매인 docker-compose입니다.yml입니다.
DRONE_USER_FILTER
공동 작업 가능한 사용자 또는 Organization을 제한할 수 있습니다.version: '3'
services:
drone:
image: drone/drone:1
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /var/lib/drone:/data
ports:
- "80:80"
- "443:443"
environment:
- DRONE_GITHUB_SERVER=https://github.com
- DRONE_GITHUB_CLIENT_ID=${DRONE_GITHUB_CLIENT_ID}
- DRONE_GITHUB_CLIENT_SECRET=${DRONE_GITHUB_CLIENT_SECRET}
- DRONE_RUNNER_CAPACITY=2
- DRONE_SERVER_HOST=${DRONE_SERVER_HOST}
- DRONE_SERVER_PROTO=http
- DRONE_USER_FILTER=${DRONE_USER_FILTER}
docker-compose up -d
명령을 사용하여 서버를 시작하면 GiitHub에서 협업한 후drone의 웹 인터페이스를 확인할 수 있습니다.만약 무슨 문제가 발생하면 환경 변수
DRONE_LOGS_DEBUG=true
를 주고 docker-compose logs -f drone
로 로그를 추적할 수 있다.성공하면 창고 목록을 표시하고 활성화하면 다음 피드 목록을 표시합니다.
piperline의 기술
문장 구조Migration from 0.8에서 쓴 바와 같이 일부 변화가 있기 때문에 이동할 때 주의해야 한다.
Rails 프로젝트를 미리 게재한 예drone-rails-example.
kind: pipeline
name: default
steps:
- name: spec
image: ruby:2.6.1
environment:
DATABASE_HOST: 'db'
DATABASE_PORT: 3306
commands:
- bundle install
- bundle exec rubocop -R -fs app spec
- bundle exec rspec
- 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_USER: 'drone_example_test'
MYSQL_PASSWORD: 'drone_example'
MYSQL_RANDOM_ROOT_PASSWORD: true
TZ: 'Asia/Tokyo'
웹 UI도 새롭게 바뀌었고 보기 편하고 너무 예뻐요.cronjobs
1.0부터 새로 추가된 기능으로 크론잡스를 열거할 수 있다.현재 문서에 기재되지 않았지만 설정할 수 있습니다.
어떤 주파수로job명과job명을 세울지 지정할 수 있습니다.
cron에 대해 지정된 시간에 실행되는 것은 현재 규격으로 사용할 수 없습니다. 링크
주의: 피플라인을 시간당 1회 실행하는 것을 확인했지만 위
.drone.yml
라면 시간당 슬랙 알림이 한 번 있기 때문에 콘디션 등을 통해 공을 들여야 한다.현재 step의 condition에서cronjobs가 exclude를 진행하는 기능을 지정하지 않은 것 같아서 개선Issue할 수 밖에 없습니다.
참고 자료
Reference
이 문제에 관하여(drone.io1.0 사용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/mmhiyoko/items/7669e44652052468fb3b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)