CI

GitHub Container Registry でプライベートなイメージを GitHub Actions + Kubernetes で使う

かなり前 GitHub Packages でコンテナイメージを扱ってました。 kondoumh.hatenablog.com その後 Container Registry が登場しました。Packages の時は public なイメージの Pull にも認証が必要でしたが、Container Registry では不要になっています。そし…

Argo Workflow の機能と記法

前回デプロイと動作確認をしたので続きです。 kondoumh.hatenablog.com Steps 順次実行 (コードはリンク先に)。 - - で先行ステップを表現するのはややわかりづらい気がします。 でも DAG っていう GitHub Actions とかでもお馴染みの記法もサポートされてま…

GitHub CLI に GitHub Actions 用コマンドが追加された

1.0 では対応してませんでした。 kondoumh.hatenablog.com 今月の中旬にリリースされた v1.9.0 で run, workflow, actions のコマンド群が提供されました。 github.blog actions でコマンド一覧が表示できます。 $ gh actions run はワークフロー実行結果や…

GitHub リリースページのドラフトを自動生成してくれる Release Drafter を導入する

CI

リリースページに ChangeLog というかリリースノートを書くのはかなり面倒です。 Release Drafter を使うと PR 単位でいい感じに リリースページのドラフトを生成してくれます。 Release Drafter の GitHub App は簡単に導入できますが、何やら Deprecated …

GitHub Actions ワークフローでジョブ毎のステータスを Slack 通知する

CI

前回のフォローアップ的な内容です。 kondoumh.hatenablog.com 複数ジョブからなるワークフローの最後に Slack などに通知する時、ワークフロー全体の成功・失敗だけでなく、どのジョブで失敗したかを通知したくなります。通知のリンクからワークフローの実…

GitHub Actions ワークフローで複数のジョブ実行を制御する

CI

GitHub Actions ワークフローでは、複数のジョブを順次実行・並列実行・条件実行することができます。各ジョブは異なるマシン(Runner) もしくは コンテナイメージで実行されます。 順次実行 何も指定しなければ、ジョブは並列に実行されます。順次実行するに…

GitHub Actions の Composite run steps action を使った Action を作る

CI

この夏に登場してたのを見逃してました。 github.blog 以前は GitHub Actions のワークフローで再利用できる Action は Docker Container Action と JavaScript Action でした。 kondoumh.hatenablog.com Docker Container Action は手軽に作れますが、コン…

helmfile がステキになってた

helmfile は 複数の Helm Chart をまとめて Kubernetes cluster にデプロイするツールです。 github.com Helm のラッパーとなっており、複数の Chart から構成されるアプリを効率よくデプロイ、更新できます。Helm Chart のインストール順というか依存関係の…

GitHub Actions が手動実行に対応してた

CI

GitHub Actions にはずっと手動実行が提供されていなかったので repository_dispatch トリガーを使って GitHub API 経由で起動することでしのいでいました。この方法は Master ブランチにしか適用できないという制約がありました。 先月 workflow_dispatch …

GitHub Actions のセルフホストランナーがサービスとして登録可能になってた

CI

GitHub Acitons では Self-hosted runner を利用して、独自のビルド環境でワークフローを実行することができます。 docs.github.com 企業内のプロキシサーバ配下のマシンでも利用できるので、 CI のたびにソフトウェアのインストールをしなくてもよい*1 社外…

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

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

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

HashiCorp から GitHub Actions の setup-terraform Action が登場しました。 github.com 公式ドキュメントはこちら https://www.terraform.io/docs/github-actions/setup-terraform.htmlwww.terraform.io 従来は terraform-github-actions が提供されていま…

Netlify への JSON publish を GitHub Actions に移行

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

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

昨年 Hugo と GitHub Actions で static サイトの生成と公開を自動化しました kondoumh.hatenablog.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 kondoumh.hatenablog.com この時は、コンテナをビルドして終わりでしたが Registry が使えるようになったので コンテナイメージを格納する処理を追加…

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

GitHub Actions で 野良 Scrapbox アプリの CI を 作った話の続きです。 kondoumh.hatenablog.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 を導入してホームページ更新は楽になりました。 kondoumh.hatenablog.com ただ、「ビルド時の環境変数設定を忘れて Google Analytics のトラッキング ID が生成されてなかった」など凡ミスがあったり、生成したファイルをアップロードするのが面倒だっ…

GitHub Actions (beta) を使ってみる

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

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

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

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

CI

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

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

CI

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

Jenkins でコンテナアプリの CI

CI

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