CI
かなり前 GitHub Packages でコンテナイメージを扱ってました。 blog.kondoumh.com その後 Container Registry が登場しました。Packages の時は public なイメージの Pull にも認証が必要でしたが、Container Registry では不要になっています。そして既存…
前回デプロイと動作確認をしたので続きです。 blog.kondoumh.com Steps 順次実行 (コードはリンク先に)。 - - で先行ステップを表現するのはややわかりづらい気がします。 でも DAG っていう GitHub Actions とかでもお馴染みの記法もサポートされてます。 D…
1.0 では対応してませんでした。 blog.kondoumh.com 今月の中旬にリリースされた v1.9.0 で run, workflow, actions のコマンド群が提供されました。 github.blog actions でコマンド一覧が表示できます。 $ gh actions run はワークフロー実行結果や詳細を…
リリースページに ChangeLog というかリリースノートを書くのはかなり面倒です。 Release Drafter を使うと PR 単位でいい感じに リリースページのドラフトを生成してくれます。 Release Drafter の GitHub App は簡単に導入できますが、何やら Deprecated …
前回のフォローアップ的な内容です。 blog.kondoumh.com 複数ジョブからなるワークフローの最後に Slack などに通知する時、ワークフロー全体の成功・失敗だけでなく、どのジョブで失敗したかを通知したくなります。通知のリンクからワークフローの実行結果…
GitHub Actions ワークフローでは、複数のジョブを順次実行・並列実行・条件実行することができます。各ジョブは異なるマシン(Runner) もしくは コンテナイメージで実行されます。 順次実行 何も指定しなければ、ジョブは並列に実行されます。順次実行するに…
この夏に登場してたのを見逃してました。 github.blog 以前は GitHub Actions のワークフローで再利用できる Action は Docker Container Action と JavaScript Action でした。 blog.kondoumh.com Docker Container Action は手軽に作れますが、コンテナで…
helmfile は 複数の Helm Chart をまとめて Kubernetes cluster にデプロイするツールです。 github.com Helm のラッパーとなっており、複数の Chart から構成されるアプリを効率よくデプロイ、更新できます。Helm Chart のインストール順というか依存関係の…
GitHub Actions にはずっと手動実行が提供されていなかったので repository_dispatch トリガーを使って GitHub API 経由で起動することでしのいでいました。この方法は Master ブランチにしか適用できないという制約がありました。 先月 workflow_dispatch …
GitHub Acitons では Self-hosted runner を利用して、独自のビルド環境でワークフローを実行することができます。 docs.github.com 企業内のプロキシサーバ配下のマシンでも利用できるので、 CI のたびにソフトウェアのインストールをしなくてもよい*1 社外…
Buildpacks ステキでした。 blog.kondoumh.com これを社内プロジェクトの CI で使うために GitHub Actions の Action にすることを試みました*1。 最初 Docker Action でサクッと作れるだろうとたかを括っていたのですが、よく考えるとコンテナイメージを Do…
HashiCorp から GitHub Actions の setup-terraform Action が登場しました。 github.com 公式ドキュメントはこちら www.terraform.io 従来は terraform-github-actions が提供されていましたが、こちらは今凍結されています。 github.com Terraform は init…
以前 Tumblr の JSON データを Netlify で定期的に配信するようにしました。 blog.kondoumh.com その時は GCP の Cloud Scheduler を使って定期的に GitHub repo の Master branch を取得しデプロイ時に Netlify build を使って JSON ファイルを生成していま…
昨年 Hugo と GitHub Actions で static サイトの生成と公開を自動化しました blog.kondoumh.com 自動化で楽にはなりましたが、publish が全ファイル転送なのでけっこう時間がかかります。ブログカードの見え方などはローカルサーバーでは表示されず、実際に…
GitHub Actions でもビルド番号が利用できるようになりました。 help.github.com かなり最近入った機能なので、現時点では日本語ドキュメントでも説明が英語のままです。 GITHUB_RUN_ID と GITHUB_RUN_NUMBER それぞれ 実行ID と実行番号というところでしょ…
GitHub Actions では、よく使う処理を Action として切り出して再利用できます。Marketplace にはすでに多くの Action が登録されています。 GitHub Marketplace · Actions to improve your workflow · GitHub Action には Docker Container Action と JavaS…
GitHub Actions でテスト実行を tee で標準出力しつつファイルに出力するようにしました。 jobs: build: name: Build runs-on: ubuntu-latest steps: - name: Test & report run: | go test . -v 2>&1 | tee result.txt : 出力されたファイルをレポーティン…
CI で Kubernetes を使いたい場合、自前の Kubernetes 環境か GKE や EKS を利用して常時クラスターを使えるようにしておく方法があります。 しかし、ワーカーのノード数を色々変えてテストしたい、Kubernetes のバージョンを色々変えてテストしたい、常設の…
CI パイプラインは Docker コンテナ Runner で実行することが一般的なので、パイプラインの中で docker build するには privileged モードで Runner のコンテナを実行する必要があります。いわゆる DinD (Docker in Docker) です。 build: image: docker:lat…
GitOps というアプリデプロイ戦略が Cloud Native な CD *1 で普及し始めています。 www.weave.works ソースコードのリポジトリとは別にアプリの設定用リポジトリを用意し、リポジトリの状態とデプロイの状態を一致させるようにツールを利用して管理します。…
VPS は DigitalOcean の Droplets が安いのでたまに利用しています。 www.digitalocean.com Terraform は DigitalOcean に対応していて専用のプラグインが HashiCorp から提供されています。 www.terraform.io Terraform 用の GitHub Actions も公開されてい…
GitHub Actions に続き GitHub Package Registry も僕のアカウントで使えるようになりました。 github.com blog.kondoumh.com この時は、コンテナをビルドして終わりでしたが Registry が使えるようになったので コンテナイメージを格納する処理を追加してみ…
GitHub Actions で 野良 Scrapbox アプリの CI を 作った話の続きです。 blog.kondoumh.com ほぼ同時ぐらいに azu さんが、同じテーマのブログを書かれてました。 efcl.info 僕のはビルドするところまででしたが、リリースまで実現されていて非常に参考にな…
Scrapbox の野良 Electron アプリ sbe をリリースするときは、macOS / Windows のバイナリをそれぞれ MacBook Pro や Windows ラップトップでビルドし GitHub の Release Draft にアップロードして公開しています。ビルドが1箇所でできないのは結構めんどく…
Hugo を導入してホームページ更新は楽になりました。 blog.kondoumh.com ただ、「ビルド時の環境変数設定を忘れて Google Analytics のトラッキング ID が生成されてなかった」など凡ミスがあったり、生成したファイルをアップロードするのが面倒だったりと…
今年の5月にベータ公開されてすぐに申し込んでいました。3ヶ月ぐらい経って僕のアカウントにもローリングでリリースされました。 github.com 元々 HCL*1 ベースでグラフィカルな UI で構築する方式でしたが、僕が使えるようになった時には HCL は非推奨とな…
PWA のデプロイに利用した Netlfy。 blog.kondoumh.com JSON を生成するプログラムをデプロイすれば JSON を置いて定期更新する用途にも使えるということで、Tumblr API で取得したデータから JSON を生成するだけの Node.js アプリを書いて Netlify にデプ…
CI ツールシリーズ第3弾。Concourse は Pivotal が開発した CI ツールです。概要についてはこのスライドが参考になります。 backpaper0.github.io チュートリアルも日本語に翻訳されています。 concoursetutorial-ja.cfapps.io macOS / Windows では Docker …
オンプレミスで自前のサーバーを建て GitLab をセルフホストしている現場をよく見るようになってきました。GitLab 曰く、セルフホスト市場で 2/3 のシェアを獲っているそうです。 今や GitLab はソースコード管理に留まらず DevOps 含めたワンストップのサー…
プロジェクトでは Jenkins でビルド職人をやることが結構あります。Jenkins のジョブは Web UI でポチポチ設定するのが伝統でしたが、最近はビルドパイプラインを DSL で書けるようになって Infrastructure as Code 化が進んでいます*1。 wiki.jenkins.io こ…