📚

dron.ymlについて簡単にまとめてみた。

2023/04/01に公開

「dron.yml」とは、DronというCI/CDツールで使用される、ビルドプロセスを定義するためのYAMLファイルです。

イメージしにくいと思うので、ここでは二つの構文を用いて、説明していきます。

基本的な構文1

kind: pipeline
name: example

steps:
- name: build
  image: golang:1.16
  commands:
  - go build

- name: test
  image: golang:1.16
  commands:
  - go test

この例では、以下のようなビルドプロセスが定義されています。

1、"build"という名前のステップで、golang:1.16イメージを使用して、"go build"コマンドを実行します。
2、"test"という名前のステップで、golang:1.16イメージを使用して、"go test"コマンドを実行します。

基本的な構文2

kind: pipeline
name: example

steps:
- name: build
  image: golang:1.16
  commands:
  - go build -o myapp

- name: test
  image: golang:1.16
  commands:
  - go test

- name: docker
  image: plugins/docker
  settings:
    repo: mydockerhubuser/myapp
    username:
      from_secret: docker_username
    password:
      from_secret: docker_password
    dockerfile: Dockerfile
  when:
    branch: master

- name: deploy
  image: appleboy/drone-kubernetes
  settings:
    kubernetes_server: https://kubernetes.example.com
    namespace: myapp
    deployment: myapp
    image: mydockerhubuser/myapp
    token:
      from_secret: kubernetes_token
  when:
    branch: master

この例では、以下のようなビルドプロセスが定義されています。
1、"build"という名前のステップで、golang:1.16イメージを使用して、"go build -o myapp"コマンドを実行します。
2、"test"という名前のステップで、golang:1.16イメージを使用して、"go test"コマンドを実行します。
3、"docker"という名前のステップで、plugins/dockerイメージを使用して、Dockerイメージをビルドし、Docker Hubにプッシュします。このステップは、マスターブランチにコミットされた場合にのみ実行されます。
4、"deploy"という名前のステップで、appleboy/drone-kubernetesイメージを使用して、Kubernetesクラスタにアプリケーションをデプロイします。このステップも、マスターブランチにコミットされた場合にのみ実行されます。

使用例

dron.ymlは、さまざまな方法で使用できます。例えば、以下のような場合に使用されます。

ソースコードをリポジトリからダウンロードして、テスト、ビルド、デプロイなどの一連のタスクを自動化するCI/CDパイプラインを構築する場合。
Dockerイメージを自動的にビルドし、Dockerレジストリにプッシュする場合
Kubernetesなどのコンテナオーケストレーションシステムで、アプリケーションをデプロイする場合

実際に必要なステップや設定はプロジェクトの要件に合わせて変更する必要があります。

以上が、dron.ymlファイルの基本的な構文と使用例についての説明でした。

Discussion