web-dev-qa-db-ja.com

Goモジュールのソースキャッシュを見つけるにはどうすればよいですか?

プロジェクトをGo 1.11にアップグレードし、プロジェクトのモジュールサポートを有効にしましたが、CircleCIはすべてのビルドの依存関係を再ダウンロードしているようです。 CircleCIはリビルド間でキャッシュを許可することを知っているので、Goモジュールのドキュメントを見てきました。

Goモジュールのソースキャッシュはどこにありますか?

15
Rob G.

1.11の最終リリースでは、gomodule cache(ダウンロードしたモジュールとソースコードの保存に使用)は、$GOPATH/pkg/modの場所(ドキュメントを参照してください here )。明確にするために、gobuild cache(最近のコンパイル結果の保存に使用)は別の場所にあります。

この記事$GOPATH/src/modにあることを示していますが、最近の〜40日間の期間で、golangチームはそのターゲットの場所を変更したはずです。 このメッセージスレッド では、ダウンロードしたアイテムが$GOPATH/pkgになった理由について説明しています。

go mod download -jsonコマンドを使用して、ダウンロードしたモジュール/ソースメタデータとローカルディスク上のそれらの場所を確認することもできます。以下の出力例:

$ go mod download -json
go: finding github.com/aws/aws-sdk-go v1.14.5
go: finding github.com/aws/aws-lambda-go v1.2.0
{
    "Path": "github.com/aws/aws-lambda-go",
    "Version": "v1.2.0",
    "Info": "/go/pkg/mod/cache/download/github.com/aws/aws-lambda-go/@v/v1.2.0.info",
    "GoMod": "/go/pkg/mod/cache/download/github.com/aws/aws-lambda-go/@v/v1.2.0.mod",
    "Zip": "/go/pkg/mod/cache/download/github.com/aws/aws-lambda-go/@v/v1.2.0.Zip",
    "Dir": "/go/pkg/mod/github.com/aws/[email protected]",
    "Sum": "h1:2f0pbAKMNNhvOkjI9BCrwoeIiduSTlYpD0iKEN1neuQ=",
    "GoModSum": "h1:zUsUQhAUjYzR8AuduJPCfhBuKWUaDbQiPOG+ouzmE1A="
}
{
    "Path": "github.com/aws/aws-sdk-go",
    "Version": "v1.14.5",
    "Info": "/go/pkg/mod/cache/download/github.com/aws/aws-sdk-go/@v/v1.14.5.info",
    "GoMod": "/go/pkg/mod/cache/download/github.com/aws/aws-sdk-go/@v/v1.14.5.mod",
    "Zip": "/go/pkg/mod/cache/download/github.com/aws/aws-sdk-go/@v/v1.14.5.Zip",
    "Dir": "/go/pkg/mod/github.com/aws/[email protected]",
    "Sum": "h1:+l1m6QH6LypE2kL0p/G0Oh7ceCv+IVQ1h5UEBt2xjjU=",
    "GoModSum": "h1:ZRmQr0FajVIyZ4ZzBYKG5P3ZqPz9IHG41ZoMu1ADI3k="
}

この出力は、CircleCI 2.0の公式circleci/golang:1.11イメージを使用したビルドからのものです。これは、新しいgolangモジュールキャッシュの場所にrestore_cacheおよびsave_cacheステップをどのように含めるかを示すための不自然な例です。

steps:
    - checkout
    - restore_cache:
       keys:
         - gomod-cache-{{ checksum "go.sum" }}
    - run: go vet ./...
    - save_cache:
        key: gomod-cache-{{ checksum "go.sum" }}
        paths:
          - /go/pkg/mod
22
amcelwee