Mengapa saya boleh menjalankan ujian Go dan membina dalam persekitaran CI tanpa memasang kebergantungan terlebih dahulu?

WBOY
Lepaskan: 2024-02-13 08:42:19
ke hadapan
601 orang telah melayarinya

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

Sebab anda tidak perlu memasang dependensi terlebih dahulu semasa menjalankan ujian dan binaan Go dalam persekitaran CI adalah kerana alatan CI (Continuous Integration) boleh memuat turun dan memasang dependensi yang diperlukan secara automatik pada setiap binaan. Kelebihan ini ialah ia mengurangkan beban pemaju dan tidak memerlukan penyelenggaraan manual pemasangan dan kemas kini pergantungan. Pada masa yang sama, alatan CI juga boleh memastikan bahawa setiap binaan dilakukan dalam persekitaran yang sama, mengelakkan kegagalan binaan atau hasil yang tidak konsisten disebabkan oleh versi pergantungan yang tidak konsisten. Oleh itu, apabila menjalankan ujian dan binaan Go dalam persekitaran CI, kerja pembangunan dan ujian boleh dilakukan dengan lebih mudah dan cekap.

Kandungan soalan

Saya ada projek go dengan makefile

test:
    @go test -cover ./...
Salin selepas log masuk

dan fail mod

module path/to/repo

go 1.19

require github.com/go-chi/chi/v5 v5.0.8
Salin selepas log masuk

Saya mencipta contoh tindakan github untuk menjalankan ujian pada 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
Salin selepas log masuk

Saya tertanya-tanya mengapa aliran kerja ini tidak mempunyai langkah install dependency 步骤的情况下工作。项目本身正在使用外部依赖项,我认为应该有一个运行 go get ./...

Jika ia tidak wujud, adakah ia akan memasangnya di latar belakang? Atau adakah tindakan actions/setup-go@v3 memasang kebergantungan? . Baca penerangannya secara setempat): actions/setup-go@v3 操作是否安装依赖项?

解决方法

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

"Go test" menyusun semula setiap pakej dan mana-mana fail yang namanya sepadan dengan corak fail "*_test.go".

Ia juga memasang semua kebergantungan; oleh itu, ini berlaku apabila operasi dilaksanakan

. Anda mungkin boleh memerhatikannya dalam log. go test

, ia masih berfungsi. actions/setup-go@v3 不依赖于代码本身。它只是设置您要求的 go 环境。在您的设置中,如果您交换 setup-gocheckout

Atas ialah kandungan terperinci Mengapa saya boleh menjalankan ujian Go dan membina dalam persekitaran CI tanpa memasang kebergantungan terlebih dahulu?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:stackoverflow.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!