Maison > développement back-end > Golang > Pourquoi puis-je exécuter des tests et des builds Go dans un environnement CI sans installer au préalable les dépendances ?

Pourquoi puis-je exécuter des tests et des builds Go dans un environnement CI sans installer au préalable les dépendances ?

WBOY
Libérer: 2024-02-13 08:42:19
avant
659 Les gens l'ont consulté

为什么可以在 CI 环境中运行 Go 测试和构建而无需先安装依赖项?

La raison pour laquelle vous n'avez pas besoin d'installer d'abord les dépendances lors de l'exécution de tests et de builds Go dans un environnement CI est que les outils CI (intégration continue) peuvent automatiquement télécharger et installer les dépendances requises sur chaque build. L’avantage est que cela réduit la charge des développeurs et ne nécessite pas de maintenance manuelle de l’installation et des mises à jour des dépendances. Dans le même temps, les outils CI peuvent également garantir que chaque build est effectué dans le même environnement, évitant ainsi les échecs de build ou les résultats incohérents dus à des versions de dépendances incohérentes. Par conséquent, lors de l’exécution de tests et de builds Go dans un environnement CI, le travail de développement et de test peut être effectué de manière plus pratique et plus efficace.

Contenu de la question

J'ai un projet en cours avec makefile

test:
    @go test -cover ./...
Copier après la connexion

et un fichier mod

module path/to/repo

go 1.19

require github.com/go-chi/chi/v5 v5.0.8
Copier après la connexion

J'ai créé un exemple d'action github pour exécuter des tests sur github pr

name: QA on pull request

on: pull_request

jobs:
  run-tests:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v3
        with:
          fetch-depth: 0

      - name: Setup Go
        uses: actions/setup-go@v3
        with:
          go-version: 1.19

      - name: Run tests
        run: make test
Copier après la connexion

Je me demande pourquoi ce workflow n'a pas l'étape install dependency 步骤的情况下工作。项目本身正在使用外部依赖项,我认为应该有一个运行 go get ./...

S'ils n'existent pas, allez-vous les installer en arrière-plan ? Ou l'action actions/setup-go@v3 installe-t-elle les dépendances ? actions/setup-go@v3 操作是否安装依赖项?

解决方法

根据 go test 文档(或者您可以运行 go help test

Solution de contournement

Selon la documentation

(ou vous pouvez exécuter go help test Lire sa description en local) : go test "Go test" recompile chaque package et tout fichier dont le nom correspond au modèle de fichier "*_test.go".

actions/setup-go@v3 不依赖于代码本身。它只是设置您要求的 go 环境。在您的设置中,如果您交换 setup-gocheckoutIl installe également toutes les dépendances ; cela se produit donc lorsque l'opération est exécutée

. Vous pourrez peut-être l'observer dans les journaux. 🎜 🎜🎜, ça marche toujours. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:stackoverflow.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal