Septeni Engineer's Blog

セプテーニ・オリジナルのエンジニアが綴る技術ブログ

Terraform プロジェクトの .gitlab-ci.yml テンプレート

中途3年目の堀越です。

今年は Terraform で Infrastructure as code デビューしました。
コードは GitLab で管理していたのでその際、作った .gitlab-ci.yml についてお話します。

環境毎に terraform plan, terraform apply できれば基本的なCIの動作は満たせるしテンプレ化しそうだなと思ったのが本ブログを書くに至った背景です。

.gitlab-ci.yml is 何???

GitLab Runner がプロジェクトのジョブを管理するために使用するファイルです。
プロジェクトのルートディレクトリに配置することでCIを設定できます。

docs.gitlab.com

続きを読む

Play Framework Evolutionsで特定リビジョンまでのDownsとUpsをテストする

こんにちは。今年もクリぼっち予定の張沢です。

本記事はScala Advent Calendar 2018 13日目の記事です。
先日はshowmantさんの「circeをつかったバリデーションの実装」でした。
明日はnacikaさんの「AkkaのMailboxを自作する」です。

今回はPlay FrameworkのDatabaseマイグレーションツールであるEvolutionsでDownsとUpsをテストする方法について書きます。テストライブラリはScalaTestを使用します*1

この記事では分からないこと(説明しないこと)

*1:Specs2でも内容は大きく変わらないと思いますが

続きを読む

GitLab CI で Scala のテストを雑に速くする方法

こんにちは。 .gitlab-ci.yml を書くのが好きな河内です。

社内では GitLab をホスティングして使っています。 GitLab の機能追加速度はすごいですね。 毎月22日にリリースされることになっており、毎回それなりに機能追加されています。

さて、11月22日にリリースされた GitLab 11.5 では CI ジョブの設定に parallel 属性が追加されました。

about.gitlab.com

parallel 属性を指定すると、その数のジョブが並列に実行されます。 各ジョブには CI_NODE_TOTAL (並列ジョブの総数)と CI_NODE_INDEX (自身のジョブのインデックス)が設定されます。

例えば parallel: 4 と指定した場合、4 つのジョブが並列実行されます。 それら全てのジョブで CI_NODE_TOTAL 環境変数は 4 に設定されます。 CI_NODE_INDEX は各ジョブで 1 から 4 までの数字が設定されます。

各ジョブはこれら2つの環境変数を参照して、作業を分担することが想定されています。

続きを読む