CI

CI (Continuous Integration) 継続的インテグレーションに関する投稿です。

Cloud Native Buildpacks を GitHub Actions で使うための Action 作ってます

Buildpacks ステキでした。 blog.kondoumh.com これを社内プロジェクトの CI で使うために GitHub Actions の Action にすることを試みました*1。 最初 Docker Action でサクッと作れるだろうとたかを括っていたのですが、よく考えるとコンテナイメージを Do…

setup-terraform Action で Terraform 実行を簡潔に

HashiCorp から GitHub Actions の setup-terraform Action が登場しました。 github.com 公式ドキュメントはこちら www.terraform.io 従来は terraform-github-actions が提供されていましたが、こちらは今凍結されています。 github.com Terraform は init…

Netlify への JSON publish を GitHub Actions に移行

以前 Tumblr の JSON データを Netlify で定期的に配信するようにしました。 blog.kondoumh.com その時は GCP の Cloud Scheduler を使って定期的に GitHub repo の Master branch を取得しデプロイ時に Netlify build を使って JSON ファイルを生成していま…

Netlify にホームページのプレビューサイトを設置

昨年 Hugo と GitHub Actions で static サイトの生成と公開を自動化しました blog.kondoumh.com 自動化で楽にはなりましたが、publish が全ファイル転送なのでけっこう時間がかかります。ブログカードの見え方などはローカルサーバーでは表示されず、実際に…

GitHub Actions でビルド番号が使えるようになってる

CI

GitHub Actions でもビルド番号が利用できるようになりました。 help.github.com かなり最近入った機能なので、現時点では日本語ドキュメントでも説明が英語のままです。 GITHUB_RUN_ID と GITHUB_RUN_NUMBER それぞれ 実行ID と実行番号というところでしょ…

GitHub Actions で再利用可能な Action を作る

GitHub Actions では、よく使う処理を Action として切り出して再利用できます。Marketplace にはすでに多くの Action が登録されています。 GitHub Marketplace · Actions to improve your workflow · GitHub Action には Docker Container Action と JavaS…

GitHub Actions の run ではパイプの終端の結果がジョブのステータスになる

CI

GitHub Actions でテスト実行を tee で標準出力しつつファイルに出力するようにしました。 jobs: build: name: Build runs-on: ubuntu-latest steps: - name: Test & report run: | go test . -v 2>&1 | tee result.txt : 出力されたファイルをレポーティン…

GitHub Actions & kind (Kubernetes IN Docker) で Matrix build の CI を構築

CI で Kubernetes を使いたい場合、自前の Kubernetes 環境か GKE や EKS を利用して常時クラスターを使えるようにしておく方法があります。 しかし、ワーカーのノード数を色々変えてテストしたい、Kubernetes のバージョンを色々変えてテストしたい、常設の…

GitLab CI で kaniko を使ってコンテナイメージを build / push

CI パイプラインは Docker コンテナ Runner で実行することが一般的なので、パイプラインの中で docker build するには privileged モードで Runner のコンテナを実行する必要があります。いわゆる DinD (Docker in Docker) です。 build: image: docker:lat…

Argo CD で GitOps 環境を構築する on GKE

GitOps というアプリデプロイ戦略が Cloud Native な CD *1 で普及し始めています。 www.weave.works ソースコードのリポジトリとは別にアプリの設定用リポジトリを用意し、リポジトリの状態とデプロイの状態を一致させるようにツールを利用して管理します。…

Terraform と GItHub Actions で DigitalOcean Droplets の CI/CD を作る

VPS は DigitalOcean の Droplets が安いのでたまに利用しています。 www.digitalocean.com Terraform は DigitalOcean に対応していて専用のプラグインが HashiCorp から提供されています。 www.terraform.io Terraform 用の GitHub Actions も公開されてい…

GitHub Package Registry に GitHub Actions から Docker イメージを push

GitHub Actions に続き GitHub Package Registry も僕のアカウントで使えるようになりました。 github.com blog.kondoumh.com この時は、コンテナをビルドして終わりでしたが Registry が使えるようになったので コンテナイメージを格納する処理を追加してみ…

Electron アプリのパッケージツールを electron-builder に移行

GitHub Actions で 野良 Scrapbox アプリの CI を 作った話の続きです。 blog.kondoumh.com ほぼ同時ぐらいに azu さんが、同じテーマのブログを書かれてました。 efcl.info 僕のはビルドするところまででしたが、リリースまで実現されていて非常に参考にな…

GitHub Actions の Matrix build で各 OS 向けの Electron アプリをビルドする

Scrapbox の野良 Electron アプリ sbe をリリースするときは、macOS / Windows のバイナリをそれぞれ MacBook Pro や Windows ラップトップでビルドし GitHub の Release Draft にアップロードして公開しています。ビルドが1箇所でできないのは結構めんどく…

GitHub Actions で Hugo のサイト生成と公開を自動化する

Hugo を導入してホームページ更新は楽になりました。 blog.kondoumh.com ただ、「ビルド時の環境変数設定を忘れて Google Analytics のトラッキング ID が生成されてなかった」など凡ミスがあったり、生成したファイルをアップロードするのが面倒だったりと…

GitHub Actions (beta) を使ってみる

今年の5月にベータ公開されてすぐに申し込んでいました。3ヶ月ぐらい経って僕のアカウントにもローリングでリリースされました。 github.com 元々 HCL*1 ベースでグラフィカルな UI で構築する方式でしたが、僕が使えるようになった時には HCL は非推奨とな…

Netlify で定期的に JSON をジェネレートして通知する

PWA のデプロイに利用した Netlfy。 blog.kondoumh.com JSON を生成するプログラムをデプロイすれば JSON を置いて定期更新する用途にも使えるということで、Tumblr API で取得したデータから JSON を生成するだけの Node.js アプリを書いて Netlify にデプ…

CLI で自在に操作可能な CI ツール Concourse を使う

CI

CI ツールシリーズ第3弾。Concourse は Pivotal が開発した CI ツールです。概要についてはこのスライドが参考になります。 backpaper0.github.io チュートリアルも日本語に翻訳されています。 concoursetutorial-ja.cfapps.io macOS / Windows では Docker …

GitLab のコンテナネイティブなパイプライン機能を使ってみる

CI

オンプレミスで自前のサーバーを建て GitLab をセルフホストしている現場をよく見るようになってきました。GitLab 曰く、セルフホスト市場で 2/3 のシェアを獲っているそうです。 今や GitLab はソースコード管理に留まらず DevOps 含めたワンストップのサー…

Jenkins でコンテナアプリの CI

CI

プロジェクトでは Jenkins でビルド職人をやることが結構あります。Jenkins のジョブは Web UI でポチポチ設定するのが伝統でしたが、最近はビルドパイプラインを DSL で書けるようになって Infrastructure as Code 化が進んでいます*1。 wiki.jenkins.io こ…

今更ながら PowerShell に覚醒

最近仕事で PowerShell で色々とスクリプト書くことが増えてきました。 MS-DOS 時代からあるバッチファイルで頑張るのは厳しくなってるんですが、PowerShell は Windows 7 から標準装備(XP とか Vista にもあったのかも)。Unix のシェルと同様パイプが使えて…

Trac 不定期通信2 Jenkins ビルドジョブ推移グラフで Wiki を CI ダッシュボード化

CI を健全な状態に保つことは、コードの品質維持や問題発生時の迅速な対応には欠かせません。CI の状態をチームに通知するには、ビルドがコケた時にメールが飛ぶとか Trac のタイムラインにビルド結果を流すとかいろいろありますが、イベントドリブンになっ…