Go Academy · Pelajaran

Mengedar Alat CLI

Penyusunan silang, goreleaser dan tap homebrew

Pelajaran 4 daripada 413 langkah

Mengedar Alat CLI ialah pelajaran Go Academy percuma di CoddyKit. Ini ialah pelajaran 4 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Go Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Go Academy merangkumi sejumlah 4 pelajaran.

go install untuk pengedaran setempat

go install github.com/user/tool@latest menyusun dan memasang binari ke dalam $GOPATH/bin. Pengguna perlu memasang Go.

Kompilasi silang

Go menyokong kompilasi silang secara asli. Tetapkan GOOS dan GOARCH untuk menyasarkan sistem pengendalian yang berbeza:

GOOS=linux  GOARCH=amd64 go build -o myapp-linux-amd64
GOOS=darwin GOARCH=arm64 go build -o myapp-darwin-arm64
GOOS=windows GOARCH=amd64 go build -o myapp-windows-amd64.exe

Bendera binaan untuk keluaran

Buang maklumat nyahpepijat dan lumpuhkan CGO untuk binari yang lebih kecil dan statik:

CGO_ENABLED=0 go build -ldflags="-s -w" -o myapp

Menyematkan maklumat versi

Suntik maklumat masa binaan dengan ldflags:

var version = "dev"
var commit  = "none"
// Build: go build -ldflags="-X main.version=1.2.3 -X main.commit=abc1234"

GoReleaser

GoReleaser mengautomasikan kompilasi silang, pembungkusan (tar.gz, .zip), penjanaan jumlah semak dan pemuatan naik keluaran ke GitHub. Konfigurasikannya dalam .goreleaser.yaml.

# .goreleaser.yaml
builds:
  - env: [CGO_ENABLED=0]
    goos: [linux, darwin, windows]
    goarch: [amd64, arm64]

Tap Homebrew

Terbitkan formula Homebrew supaya pengguna macOS/Linux boleh memasang dengan brew install. GoReleaser boleh menjana formula itu secara automatik.

CI/CD GitHub Actions

Gunakan GitHub Action untuk membina dan menerbitkan keluaran pada setiap tolakan tag. GoReleaser mempunyai GitHub Action rasmi.

- name: Run GoReleaser
  uses: goreleaser/goreleaser-action@v5
  with: { version: latest, args: release --clean }
  env: { GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" }

Pengedaran Docker

Letakkan CLI sebagai imej Docker untuk pengguna yang lebih menggemari bekas. Gunakan binaan berbilang peringkat untuk memastikan imej akhir minimum.

FROM golang:1.22 AS build
WORKDIR /app
COPY . .
RUN CGO_ENABLED=0 go build -o myapp

FROM scratch
COPY --from=build /app/myapp /myapp
ENTRYPOINT ["/myapp"]

go:embed untuk aset

Benamkan fail statik (templat, skema konfigurasi) ke dalam binari dengan //go:embed supaya binari itu sepenuhnya kendiri.

//go:embed templates/*
var templates embed.FS

Modul berversi

Terbitkan modul CLI anda mengikut pensiaran versi modul Go. Untuk v2+, laluan import mesti mengandungi /v2 dan laluan modul go.mod mesti sepadan.

Keserasian ke belakang

Ikuti semver. Keluaran kecil boleh menambah bendera tetapi tidak boleh membuang atau menamakan semula bendera sedia ada. Perubahan yang memecahkan keserasian memerlukan kenaikan versi utama.

Semakan Pantas

Bagaimanakah anda membina binari Go statik untuk Linux pada mesin macOS?

Imbas Kembali: Pengedaran Alat CLI

Perkara utama:

  • Kompilasi silang dengan GOOS/GOARCH; CGO_ENABLED=0 untuk binari statik
  • GoReleaser untuk saluran paip keluaran automatik
  • Suntik versi dengan -ldflags "-X main.version=..."
  • go:embed untuk binari kendiri dengan aset terbenam
Percuma untuk bermula

Pelajari Go dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
51
Pelajaran
203

Soalan Lazim

Adakah pelajaran “Mengedar Alat CLI” percuma?

Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Go Academy, termasuk “Mengedar Alat CLI”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Go Academy merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Mengedar Alat CLI”?

Penyusunan silang, goreleaser dan tap homebrew Anda berlatih Go Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Go Academy?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Go Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 4 daripada 4.

Berapa lamakah pelajaran “Mengedar Alat CLI” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Go Academy ini?

Ya. Setiap pelajaran Go Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Asas Cobra
  2. Bendera dan Bendera Kekal
  3. Subperintah dan Kumpulan Perintah
  4. Mengedar Alat CLI
← Kembali ke Go Academy