CICD
Overview | Dagger
CI・CD界隈期待の星!!Daggerに入門してローカルとGithubActionsでCIを動かしてみた | DevelopersIO
ポータブルなCI/CDパイプライン devkit
Dockerコンテナ上で実行されて、どこでも動かすことができる
- CI/CDサービス固有の記法を学習する必要があり、移行の際には書き換えが必要
- ローカルで試しにくく、commit & pushしては動くか確認する作業が発生
- YAMLが辛い
Dagger はプラットフォーム非依存でCUE言語を使って書けるのが良さそう。
ローカルで実行できるっていうのも大きい
- CUE言語がそんなにまだメジャーでない
- IaCでたまに見るかな?Go には公式のparserがある
- まだメジャーバージョン0系で開発途上
インストール
macはHomebrewでもインストールできる
install.sh を使ってインストールすることもできる
サンプル
使ってみる
hello.cue
dagger project update
を実行すると、 ./cue.mod
が更新される
go get したときに $GOPATH/pkg/mod
にソースがダウンロードされるが、それと同じように ./cue.mod
に置かれる
Actions
Actions が基本的な要素となる
4つのライフサイクルがある
- Definition
- Integration
- Discovery
- Execution
pipelines と steps のような区別がなく、全てをActionで定義できる
定義済みのActionを他のActionからサブアクションとして呼び出せる
公式の説明で使われているDefinition
ここでは core.#WriteFile
という core で定義済みの Action を #AddHello
の中で呼び出している
Integration
全てのパイプラインは dagger.#Plan
definition で定義される
dagger do --help
を実行すると、定義済みの Action 一覧が出力される
AWS SAMのデプロイのサンプル
https://docs.dagger.io/1248/aws-sam
sam用のActionがimportして使用できる
zipをデプロイするパターン
Dockerイメージをデプロイするパターン
Jenkins上で利用する
Jenkinsにdocker、daggerをインストールしておく