SpuitというWindowsアプリをアップしました。中身としては単純なスクリーン・カラーピッカーで、類似のものとしてはPowerToysについてくるカラーピッカーがあります。というか普通にそっちのが高機能なんだけど。
これの元のアプリはAdobe製品についてくるスポイト機能をやりたいよなーってアイデアで、2020年くらいに多分作っていたと思います。が、ソースコードを紛失したため全くゼロから作り直してみた。
それに、パブリックリポジトリにWPFとかデスクトップアプリがなかったので、いや、自分全然出来ないってことではないよ、みたいな。一応そういうのあると良いよな、みたいな気持ちもあり。
今回GitHub Actionsのパイプラインに噛ませてデスクトップアプリのzipファイルをリリースにアップする、ということを試してみたのですが、全然できましたね。

GitHub Actionsにて.NETの発行バージョンとgitタグを一致させる

発行時にバージョンをタグと同じにしときたい気持ちがあって、そんなーにググってもいい感じの日本語記事見つからなかったので書いときます。使うホストOSがWindowsの場合Powershellなんですよね。。今回のツールで使ったやり方を紹介します。

タグは${{ github.ref_name }}で取れます。私はGoなどのような慣習に習ってタグにvのプレフィクスを付けたいので、リプレースしてから、出力アウトプットの機能なるものを使って使い回せるようにします。GITHUB_OUTPUTは環境変数ということが何気に重要で、WindowsホストだとPowershell使う故、$env:をつけないといけないのに注意。

- name: Get the latest tag
  id: get_tag
  run: |
    $v = "${{ github.ref_name }}"
    $v = $v -replace "v", ""
    echo "VERSION=$v" >> $env:GITHUB_OUTPUT    

使う時はこんな感じ。これでCIでのタグプッシュ・リリースとプロジェクトに設定されるバージョンが一致するように出来る。

- name: Publish the application
  run: dotnet publish $env:WpfProject --configuration $env:Configuration --property PublishDir=${{ github.workspace }}/publish/Spuit --property Version="$env:VERSION"
  env:
    VERSION: ${{ steps.get_tag.outputs.VERSION }}

リポジトリはなるだけパブリックにしたいと思う訳

さて、ここ最近立て続けにパブリックなリポジトリをアップしていますが、自分は実際の所こういうの増やしたいと思ってるんですね。

自己表現の方法としてQiitaみたいなとこへのアウトプットやSpeaker Deckへのスライドとかあるわけなんですが、ほんとまずはリポジトリかなあと。クソと思われたならそれでも構わないので、どんどん自分の持ち合わせてるものは包み隠さずオープンソースの海に流していきたいですね。出すことで、一人でもポジティブに捉えてくれる人がいてほしい。

僕のエンジニアとして尊敬してる人物像ってcraftzdogさんやmotemenさんなんですよね。自分が「良いと思うエンジニア像」って技術力だけで測れる話じゃないと思ったのですよ。そういう人は100を越えるリポジトリを持っていて、他の人が使うか使わないかは別にせよ、純粋なモノ作りが好きなんだってことに気がついた。

まだまだそう考えるとリポジトリ数も少ないし、良いモチベにもなる。