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 のバージョンを色々変えてテストしたい、常設の…

2019 ふりかえり

Job 引き続きプロダクト開発プロジェクト。1年以上在任してます。Kubernetes を中心とした開発環境・実行環境・CI/CD パイプラインの構築をやって IaC の良さも難しさも実感しています。 別のサービス開発プロジェクトにも少し入りました。こちらはコテコテ…

Go Modules の hosting と import の関係

Go

とあるプロジェクトでセルフホストしている GitLab で Go Modules を利用しようしてハマったのでメモ。 foo モジュールを private.host/account1/foo に公開したとします。 go.mod module private.host/account1/foo go 1.12 利用側では、 import "private.h…

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

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

Electron アプリの通知 on Windows

Electron は Notification をサポートしていて、Renderer プロセスでも Main プロセスでも表示できます。 野良 Scrapbox アプリで GitHub API 使って latest release を取得し現在のバージョンと違っていたら通知を出し、クリックしたらダウンロードページを…

Kubeflow が MicroK8s の Addon になってた

以前 Kubeflow を MiniKF (Minikube ベースの VirtualBox イメージ) で導入しました。 blog.kondoumh.com その後 Ubuntu 19.10 のリリース時、Kubeflow が MicroK8s の Addon として導入できるようになるというアナウンスがありました。 ubuntu.com MicroK8s…

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

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

iPad でコードを書く Late 2019

ラップトップに比べるとかなり軽量な iPad。Cellular モデルなら出先や新幹線に持ち込んですぐコードが書けます。Magic Keyboard をペアリングしてるのでタイピングもノンストレスです。 blog.kondoumh.com Blink で Ubuntu の仮想マシンに接続して Tmux + E…

Emacs の go-mode 設定

最近わりと Go 書くようになってきたので Emacs の Go 環境を作ってみました。 company を使っているのでコード補完は company-go、godoc の表示は go-eldoc にしてみました。 ~/.emacs.d/init.el の設定。タブ幅は2にしてます。保存時に gofmt かけています…

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

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

ChangeLog メモが Emacs に回帰

ChangeLog メモ書きをかなり前に Emacs から VS Code に移行しました。 blog.kondoumh.com 自分用に VS Code 拡張も作ってました。 blog.kondoumh.com 自宅で MacBook 使う時はデスクトップの片隅に ChangeLog メモ用 VS Code が常駐してます。コード書き用…

macOS Catalina にアップデート - Zsh にスイッチ

年末も近いし32bit アプリも使ってないし、そろそろいいかなと思って MacBook Pro Early 2015 でアップデートしました。 40分ほどで起動してきました。BetterTouchTool や Karabiner-Elements などでパーミッションの許可が必要でしたが問題なく使えるように…

野良 Scrapbox アプリ - ヒストリ機能とタブ幅調整

開いたページのヒストリ機能を追加しました。 ただこの機能ちょっと問題があって、Scrapbox ではタイトルの編集で URL が変わり WebView のイベント ("load-commit") が emit されてしまうので、編集途中のタイトルまで履歴に残ってしまいます。履歴にゴミを…

開発用 Kubernetes 環境構築ツールの比較

Kubernetes は GKE / EKS / AKS などで提供されているマネージドなサービスを使うのが楽ですが、課金もありますし開発時はローカルの環境が欲しくなります。 シングルノード構成のツールはオートスケーリングなどの機能が使えないという制約はあるものの、ア…

野良 Scrapbox アプリ - Vuetify 2 の v-data-table への移行

野良 Scrapbox アプリのページ一覧画面では Vuetify の Data table component を使っています。 Vuetify は v1 → v2 でかなり breaking change が入りました。 https://github.com/vuetifyjs/vuetify/releases/tag/v2.0.0#user-content-upgrade-guide 数ヶ月…

Theia (VS Code ベース Web IDE) as a Service の Gitpod を使う

最近になって Gitpod を知りました。 www.gitpod.io 知ったきっかけは VS Code オンライン版の code-server を VPS などで自前で構築している人たちの記事を読んだことでした。 github.com code-server は Digital Ocean の Droplet を使ってワンクリックで…

iPadOS on iPad Air 2nd gen

iPadOS を2014年発売の iPad Air 2 にインストールして使っています。 デスクトップが広く使えるようになり、ウィジェットも置けるようになりました。 日没後はダークテーマになるように設定してみました。 ファイルアプリで、ローカルリモート問わずファイ…

OpenShift.io にホストされた Eclipse Che 7 (ほぼ VS Code & Remote Containers)

Cloud IDE は AWS Cloud 9 や CodeSandbox を時々使っています。 blog.kondoumh.com blog.kondoumh.com 去年の初め頃、各種 Cloud IDE を比較してました。 blog.kondoumh.com その後 Eclipse Che をホストしていた Codenvy は Red Hat に買収されてからは更…

野良 Scrapbox アプリ - ブラウザで開いたページを URL Scheme 経由で開く

Scrapbox を ブラウザで開いていてから「このページ sbe で開きたいなあ」ということがよくあります。 もともと sbe には URL をペーストして新規タブでページを開く機能はありますが、やはり手動はめんどくさいものです。 Electron にはシステムの URL Sche…

Minikube を macOS (HyperKit) | Windows (Hyper-V) で使う

Minikube は VirtualBox / VMware の VM をノードにして使うケースが多いと思いますが、macOS の Hyperkit や Linux の KVM、そして Windows の Hyper-V などホスト OS の HyperVisor による VM を使うことで、軽量で実行性能の高いノードで環境を構築するこ…

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

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

VS Code の Remote Containers で Java 12 開発環境を構築

以前 VS Code の Remote Development を試した時は VirtualBox の仮想マシンをターゲットに環境を作りました。 blog.kondoumh.com Remote Development では Docker コンテナもターゲットマシンに使えます (Remote - Containers) 。 marketplace.visualstudio…

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 が生成されてなかった」など凡ミスがあったり、生成したファイルをアップロードするのが面倒だったりと…

Android 10 on Pixel 3 XL

Pixel 3 XL に Android 10 がインストール可能になったので早速入れてみました。 グループアイコンのフチがくっきりしたり、スクリーンロックアイコンがアニメーションするようになりました。 ダークテーマにしたら、標準アプリはだいたいダークになりました…

.NET Core と VS Code によるクロスプラットフォーム Web 開発環境

.NET Core が成熟してきているというのをヒシヒシと感じていて、元祖 .NET Framework はメンテナンスモードだし、.NET Core ファミリーは来年には .NET 5 として大統一されるみたいだし、ちょっと触っておきたいという気持ちになりました。 devblogs.microso…

野良 Scrapbox アプリ - 自分が作成したページ一覧表示と v1.0 リリース

社内で Scrapbox を使っていると大量のページが日々作られ、作成したページが埋もれて忘れてしまうことがよくあります。書きかけで放置してしまうことも。 そこで、作成したページを時折見直し加筆修正する契機になるよう、自分が作ったページ一覧を表示する…

GitHub Actions (beta) を使ってみる

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