Skip to content

Go

GitHub Actionsでコンテナイメージを登録する

ko-build/setup-ko を使ったら簡単にできた。

https://github.com/umemak/kindle_xml_to_tsv/blob/main/.github/workflows/ko.ymlhttps://github.com/umemak/kindle_xml_to_tsv/pkgs/container/kindle_xml_to_tsv%2Fkindle_xml_to_tsv-f222ca7f0849cd5cfa2ae78a69f0ff9aこう。

最初実行したときに権限のエラーが出て、GitHub Action で GHCR へのコンテナー イメージの Push が成功しない (permission_denied: write_package) - yukirii blogを参考にWriteにして再実行したらエラー解消した。

ただ、最初の権限がAdminだったし、エラー出つつも物はアップロードされていたので謎。

Amazonの書籍ページパースできなくなった

umemak/asin2mdで書籍情報取得しようとしたらできなくなってて、レスポンスの中身見たらなんか思ってたのと違うのになってた。

10日くらい前に使ったときは問題なかったので、キャンペーンのせいとかだったら良いのだけど。

恒久的に変わるといろいろやり直しになるので面倒。。

urfave/cliその2

v2がエラーになる件、Codespacesでも問題なかった。いよいよWindowsの問題な気がしてきた。

→上位ディレクトリのgo.workに追加したら、go run時のエラーは解消した。

VS Code再起動したら、ソースのエラー表示も消えた。

go.workに原因あるとかわかりにくすぎる。。

go.sumを消してみた

go.sum消したのにまたGitHubからメールが来た。

古い情報をもとにセキュリティチェックしているのかなぁ。

どうするのが正解なんだろう。

go.sumを消してみる

GitHubのセキュリティメールが最近頻繁に来て、古いテスト用のリポジトリだったので、アラート対象になっているgo.sumファイルを消してみた。

これが正しい対応なのかわからないけど、go.modで指定しているバージョンより古いもののsumが書かれていて、go mod tidyしても消えず、ファイルを消してgo mod tidyしたら復活するうえに、それがアラート対象になるのだから納得いかない。

Read more

GoReleaser

GoReleaser - GoReleaser使ってみた。

うまく動かなかった。

$ go install github.com/goreleaser/goreleaser@latest
$ goreleaser init
$ goreleaser release --snapshot --rm-dist
  • starting release...
  • loading config file                              file=.goreleaser.yaml
  • loading environment variables
  • getting and validating git state
    • ignoring errors because this is a snapshot     error=git doesn't contain any tags. Either add a tag or use --snapshot
    • building...                                    commit=c555bfd95c67f41425d8155510f376d0015665eb latest tag=v0.0.0
    • pipe skipped                                   reason=disabled during snapshot mode
  • parsing tag
  • setting defaults
  • running before hooks
    • running                                        hook=go mod tidy
    • running                                        hook=go generate ./...
    • took: 6s
  • snapshotting
    • building snapshot...                           version=0.0.1-next
  • checking distribution directory
  • loading go mod information
  • build prerequisites
  • writing effective config file
    • writing                                        config=dist\config.yaml
  • building binaries
    • building                                       binary=dist\asin2md_linux_386\asin2md
    • building                                       binary=dist\asin2md_linux_amd64_v1\asin2md
    • building                                       binary=dist\asin2md_windows_amd64_v1\asin2md.exe
    • building                                       binary=dist\asin2md_darwin_amd64_v1\asin2md
    • building                                       binary=dist\asin2md_linux_arm64\asin2md
    • building                                       binary=dist\asin2md_windows_arm64\asin2md.exe
    • building                                       binary=dist\asin2md_darwin_arm64\asin2md
    • building                                       binary=dist\asin2md_windows_386\asin2md.exe
  ⨯ release failed after 6s                  error=build for asin2md does not contain a main function
Learn more at https://goreleaser.com/errors/no-main

ドキュメントによると、mainパッケージがルート以外のときはパスを指定しないといけないらしい。

Read more

gRPC Connect

bufbuild/connect-go: Simple, reliable, interoperable. A better gRPC.

テスト用にgRPCのサーバーが欲しかったので、使ってみた。

READMEに書いてあるサンプルのように作ったら、grpcurlでリフレクションのエラーになったので、次世代gRPC?『connect-go』やってみたを参考にリフレクションを入れたら動いた。

ついでにクライアントもConnectで書いてみた。

サーバーの指定をプロトコル込み(http://~/)で指定しないといけないのと、RequestとResponceにMsgを挟まないといけないので少しハマったけど、おおむね問題なさそう。

Read more

goでmissing go.sum entry cacheエラー

go buildしようとするとmissing go.sum entry cacheなエラーが出る。

ググってもgo mod tidyすれば直る的なものしかヒットせず。

go clean --modcacheしてみてもダメ。

go runだと実行できてしまうので余計訳が分からない。