gitlab
世の中パスワードやアクセスキーといったSecretを公開リポジトリにPUSHしてしまうというような事故が起きます。GitHubにはSecret Scanningという機能があり、PUSHされた内容をスキャンしてSecretを検出できます。 もちろんGitLabにも同様の機能があり、Secre…
モチベーション 品質管理の負荷を下げたい TypeScript/GraphQLを使ってみたい GraphQL+TypeScriptの組み合わせがとてもよかった 開発プロジェクトでGitLabを使っている場合、 Merge Requestを使って開発を進めていくことが多いでしょう。 このときMerge Requ…
テストを書こうと言っても、精神論ではなかなかその文化は育ちません。 これを行おうとすると、自分の記述したテストがどのようにプロジェクトやチームに貢献しているのかを可視化する必要があります。 今日のゴールは2つあり、1つはMerge Requestのファイル…
CheckstyleやSpotBugsのエラーを、Reviewdogを使ってGitLabのMerge Requestにコメントできるようにしました。 それぞれハマりポイントがあって、かなり苦戦しました。このため、それぞれに関する内容を記載しておきます。 Checkstyle Reviewdog自体はネイテ…
CIで実行した静的解析の結果をMerge Requestのコメントとして書き込みたいというニーズは多くあります。 これを容易に叶えてくれるプロダクトがreviewdogです。 問題 このreviewdogをGitLab CI/CDに設定したのですが、以下の様なエラーが出て失敗してしまう…
問題 GitLabを使ってJavaのプロジェクトのCIを回す時、Mavenによるアーティファクトのダウンロード時間が問題になります。 CIにおいては、これはMavenのローカルリポジトリをキャッシュすることによって解決される問題です。 ぼくは.gitlab-ci.ymlに以下の様…
何をするにも「わかりやすく表示する」というのは重要です。 Checkstyleについても、その結果をGitLabやGithubでわかりやすく表示できれば、「これは直さないと」とチーム内で共有できるでしょう。 GitLabでCheckstyleのレポートを表示できるようにする 実現…
手動でいちいちpandocを実行するのは面倒です。 Merge Requestの作成やそのbranchに変更が入ったタイミングで、Markdownファイルをdocxファイルに変換し、リポジトリにアップロードしたい。 実際にこれを実装すると、以下のようにMerge Requestに紐づく形で…
GitLabにはPackage Registryという機能があり、様々な言語のパッケージをホストできます。 Maven packages in the Package Repository | GitLab npm packages in the Package Registry | GitLab PyPI packages in the Package Registry | GitLab 一方で、言…
テスト文化を作るためには、自分の書いたコードのどこがテストされているのかを明示するのも意味があります。人は「ここがテストされていないよ」と言われたら、テストしたいと考えるものだからです。知らんけど。 誰もが見える場所にカバレッジなどの数値を…
マネジメントを行う上では以下のような取り組みが重要です。 何らかの定量指標を収集し、目標を設定する その数値を誰もが見る場所に置く これはテスト文化を作るときにも例外ではありません。 「テストを書こう」といくら啓蒙したところで、ぼくの経験上効…
プロジェクトでは、develop branchで開発を行い、本番リリースあるいは公開するときにmaster branchへ反映するというフローをとっています。 このとき、develop branch上で不要なファイルを削除したり、ドキュメント中の特定の単語を置換した上でmasterに反…
GitLab CI/CD から ECR へ PUSH するところを作りました。つらみがあって大変に時間を溶かしました。 alpine ベースの Docker Image に AWS CLI v2 をインストールするのがつらい Docker のバグを引いてしまって GitLab CI/CD 上での DinD がうまく動かなか…
きちんとしたガイドを書く、そしてそのガイドを多人数で変更するというケースでは、文章の揺れ等をで きるだけ防ぎたい。 このため、GitLab CI/CD で textlint を導入したい。 textlint 用 Docker Image の作成 フィルタ ルール Docker Image の build、push…
様々なドキュメントが Markdown で表現される今日このごろです。 多数の人が関わりつつドキュメントを成長させるのであれば、 Markdown ドキュメントについてもフォーマットを統一させたいものですね。 Markdown についても当然のように linter があるので、…
GitLab CI/CD を使い、自作の AWS 用 terraform モジュールに対して terraform validate をかけようとすると、以下のエラーメッセージが出て失敗しました。 Error: Missing required argument The argument "region" is required, but was not set. 原因 対…
Terraform のスクリプトにも lint を自動で実行できるようにします。 lint ツール TFlint 設定の渡し方 GitLab CI/CD への組み込み 今後 lint ツール Terraform には terraform validate コマンドがあり、設定上のかなりの問題を検知してくれます。 一方で t…
GitLab 実践ガイドを読みました。 GitLab実践ガイド impress top gearシリーズ作者:北山 晋吾インプレスAmazon 全体を通して プロダクトの長所 オールインワン CI/CD SaaS でもオンプレでも 最後に 全体を通して GitLab はこれまで使ったこともなく、全体的…