Aller au contenu
Build depuis les sources

Build depuis les sources

Compilez depuis les sources lorsque vous avez besoin de correctifs personnalisés, de binaires de développement ou de travaux de packaging.

Prérequis

  • Go, tel que déclaré dans mise.toml et go.mod.
  • Git, pour le versionnement et les opérations sur le dépôt.

Utilisez mise pour installer la chaîne d’outils du projet :

mise install

Compiler avec le script

Le script de build écrit la sortie dans dist/<os>_<arch>/ et génère des sommes de contrôle lorsque sha256sum est disponible :

sh scripts/build/binaries.sh

Sur Linux, il compile :

  • composia
  • composia-controller
  • composia-agent

Sur macOS et Windows, il compile uniquement la CLI.

Variables de build

VariableValeur par défautRôle
VERSIONgit describe --tags --always --dirtyVersion intégrée dans les binaires.
OUTPUT_DIRdistRépertoire de sortie.
GOOSOS hôteOS cible.
GOARCHArchitecture hôteArchitecture cible.
GOARMVideVariante ARM, comme 7.
CGO_ENABLED0Compilations croisées statiques.

Exemples :

GOOS=linux GOARCH=arm64 sh scripts/build/binaries.sh
GOOS=linux GOARCH=arm GOARM=7 sh scripts/build/binaries.sh

Build Go manuel

LDFLAGS="-s -w -X forgejo.alexma.top/alexma233/composia/internal/version.Value=$(git describe --tags --always --dirty)"

CGO_ENABLED=0 go build -trimpath -ldflags "$LDFLAGS" -o composia ./cmd/composia
CGO_ENABLED=0 go build -trimpath -ldflags "$LDFLAGS" -o composia-controller ./cmd/composia-controller
CGO_ENABLED=0 go build -trimpath -ldflags "$LDFLAGS" -o composia-agent ./cmd/composia-agent

Build des images de conteneur

Le Dockerfile racine a des cibles pour chaque runtime :

docker build --target cli -t composia-cli:local .
docker build --target controller -t composia-controller:local .
docker build --target agent -t composia-agent:local .
docker build --target dev -t composia-dev:local .

L’image dev inclut Go, Air, Docker CLI, Docker Buildx, Docker Compose et Git.

Dernière modification • Renovate Bot