drone.io Github Enterprise連携設定
この記事は drone.io Advent Calendar 2017 - Adventar の3日目の記事です。
drone.io は Goで作られたオープンソースのCD (Continuous Delivery)環境です。
GitLabに Gitlab CI があるのでいいのですが、Github EntepriseにはCIの機能がありません。そのためdrone.ioは Github Enterpriseでの利用が多いとは思いますが、情報があまりないと思われるのでこの機会に設定方法をご紹介します。
Github Enterpriseとの連携設定方法
基本的には Installation Overview を見てもらえればいいんですが、 画像つきでご紹介します。
まずはGithub Enteprise上でOAuth Applicationの登録を行います。 OAuthのためdrone利用者の権限で各リポジトリにはアクセスを行いますので、OAuth Applicationの登録自体はどこで行っても構いません。個人アカウントより管理用のOrganizationを作ってそこに登録するのが管理上よいと思います。
Authorization callback URL は <scheme>://<host>/authorize
で設定します。
登録すると以下のように Client ID
と Client Secret
が発行されます。
あとはそのまま環境変数の DRONE_GITHUB_CLIENT
と DRONE_GITHUB_SECRET
に突っ込んであげれば良いです。
version: '2' services: drone-server: image: drone/drone:0.8.0 ports: - 80:8000 - 9000:9000 volumes: - /var/lib/drone:/var/lib/drone/ restart: always environment: - DRONE_OPEN=true - DRONE_HOST=drone.example.com - DRONE_GITHUB=true - DRONE_GITHUB_URL=https://ghe.example.com/ - DRONE_GITHUB_CLIENT=0123456789abcdef0123 - DRONE_GITHUB_SECRET=0123456789abcdef0123456789abcdef01234567