LoginSignup
4
0

More than 1 year has passed since last update.

Go 1.15 → 1.19

Last updated at Posted at 2022-12-11

この記事はHowtelevision Advent Calendar 2022の12日目の記事です。

弊社が運営する外資就活ドットコムではバックエンドにGoを採用しています。
Goのバージョンが1.15のままとなっていたので1.19にバージョンを上げたのですが、本記事ではバージョンアップの際に行った変更を備忘録的なものとしてまとめておこうと思います。

Goのバージョンアップ(1.15->1.19)

手始めにDockerfile

FROM golang:1.15.3

から

FROM golang:1.19.3

にバージョンの指定を変更しました。

これだけでうまく動いてくれればよかったのですが、そううまく事は運ばずmodule関連の変更も必要でした。
具体的には

  • go getがDeprecatedされたことへの対応
    • go getからgo installへの変更
  • go.modの変更
    • 1.161.17でmodule関連に変更があったらしく、go.modファイルに変更を反映させるためにgo mod tidyを行う必要がありました

を行いました。

CircleCIの変更

CIにCircleCIを利用しているので、CircleCIの設定ファイルを書き換える必要がありました。
Dockerfileと同じようにバージョンの指定を変えるだけかと思ったのですが...

Starting container circleci/golang:1.19.3
Warning: No authentication provided, using CircleCI credentials for pulls from Docker Hub.
  image cache not found on this host, downloading circleci/golang:1.19.3

どうやら、go:1.19は次世代イメージしかないようです
https://circleci.com/docs/ja/circleci-images/#next-generation-convenience-images

ということで、CircleCIの設定ファイルを

image: circleci/golang:1.15.3

から

image: cimg/go:1.19.3

に変更して再チャレンジしてみると

ln: failed to create symbolic link '/go/src/app': No such file or directory

設定ファイル内でシンボリックリンクを貼るコマンドがあるのですが、ディレクトリが存在せず失敗してしまいました。

調査してみると、CicleCIの次世代イメージではPATHが変わったようです。

environment:
 - APP_DIR: /go/src/app

から

environment:
 - APP_DIR: /home/circleci/go/src/app

に変更することで、無事CIを実行することができました。

CircleCIの設定ファイルを変更するにあたって下記のブログを参考にさせていただきました:pray:
[Go]次世代イメージcimg/goとcircleci/go Orbsを使った2020年版CircleCIの環境構築

最後に

ハウテレビジョンでは、一緒に働いてくれるエンジニアを募集しています。

4
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0