web-dev-qa-db-fra.com

Comment trouver le cache source du module Go?

J'ai mis à niveau un projet vers Go 1.11 et activé la prise en charge des modules pour mon projet, mais il semble que CircleCI re-télécharge les dépendances sur chaque build. Je sais que CircleCI autorise la mise en cache entre les reconstructions, j'ai donc regardé la documentation des modules Go, et bien qu'il mentionne un cache, je n'arrive pas à trouver où il existe réellement.

Où se trouve le cache source des modules Go?

15
Rob G.

Depuis la version 1.11 finale, le cache du module go (utilisé pour stocker les modules téléchargés et le code source), se trouve dans le $GOPATH/pkg/mod emplacement (voir la documentation ici ). Pour plus de précision, le cache de construction go (utilisé pour stocker les résultats de compilation récents) se trouve à un emplacement différent.

Cet article , a indiqué qu'il se trouve dans le $GOPATH/src/mod, mais au cours des 40 derniers jours environ, l'équipe de golang a dû modifier cet emplacement cible. Ce fil de message a une discussion sur la raison pour laquelle les éléments téléchargés se sont retrouvés dans $GOPATH/pkg.

Vous pouvez également utiliser le go mod download -json commande pour voir les modules/métadonnées source téléchargés et leur emplacement sur votre disque local. Exemple de sortie ci-dessous:

$ 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="
}

Cette sortie provient d'une version de CircleCI 2.0, utilisant leur circleci/golang:1.11 image. Ceci est un exemple artificiel pour montrer comment vous incluriez le restore_cache et save_cache étapes pour le nouvel emplacement du cache du module golang:

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