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

CI

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

Twitter タイムラインの自動リフレッシュを Electron アプリで実現

デスクトップでは Twitter を PWA で使っていますが、タイムラインが自動更新されないのがちょっと・・と思っていました。 かなり前に Electron で作ってた Twitter client blog.kondoumh.com このアプリに自動リフレッシュを組み込んでみようと思いました。…

Scrapbox プロジェクトのグラフ構造を Visualize してみる

Scrapbox で他のページへのリンクを作成した途端、ページの下にアイキャッチ付きのリンクがリアルタイムでできていくので書いててテンション上がりますよね。 Scrapbox API を使うと各ページの情報とページ間のリンクを JSON で取得できます。 scrapbox.io G…

Linux Desktop でも VS Code 使う

これまで Linux はもっぱら SSH で使ってたのですが、ここにきて Desktop も使うようになってきました。Kubernetes にデプロイしたアプリの動作確認を VM の localhost でするためです。 当然コードを書くのは VS Code の生産性が圧倒的に高いのでインストー…

VirtualBox 6.1 で Intel CPU の Nested Virtualization が解除された

Nested Virtualization は仮想マシンからホストマシンの CPU の仮想化機能を利用できる機能です。 VirtualBox では AMD CPU の Nested Virtualization が 6.0.6 でリリースされました。そして 6.1.0 で Intel CPU でも Nested Virtualization が利用できるよ…

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

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

野良 Scrapbox アプリ - 本文を Markdown 形式でクリップボードにコピー

Scrapbox はシンプルな記法で WYSIWYG を実現した稀有なサービスです。プレビューなしにサクサク書けるのです。 Scrapbox で作成した文書を Wiki などに転記するために本文を Markdown 形式に変換してクリップボードにコピーする機能を追加しました。 見出し…

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…