Maison  >  Article  >  développement back-end  >  Injecter des variables d'environnement Golang dans Azure Pipeline

Injecter des variables d'environnement Golang dans Azure Pipeline

PHPz
PHPzavant
2024-02-13 13:40:091015parcourir

将 Golang 环境变量注入 Azure Pipeline

l'éditeur php Xiaoxin vous propose un article sur l'injection de variables d'environnement Golang dans Azure Pipeline. Dans le développement de logiciels modernes, l’utilisation de processus d’intégration et de livraison continues est devenue une pratique courante. Azure Pipeline est un outil puissant qui aide les développeurs à automatiser la création, les tests et le déploiement d'applications. Cet article explique comment injecter des variables d'environnement Golang dans Azure Pipeline pour faciliter l'utilisation des outils et bibliothèques liés à Golang pendant le processus de création et de déploiement. En comprenant ces étapes, vous serez en mesure d’exploiter Azure Pipeline plus efficacement pour créer et déployer des applications Golang.

Contenu de la question

Je migre actuellement certains composants de construction vers pipelines Azure et j'essaie de définir certaines variables d'environnement pour tous les processus liés à Golang. Je souhaite exécuter la commande suivante dans un pipeline :

cgo_enabled=0 goos=linux goarch=amd64 go build [...]

Lorsque vous exploitez l'intégration golang fournie, il est facile d'ajouter des paramètres pour les processus liés à go, mais définir une variable d'environnement pour tous (ou chaque) processus >go semble impossible. Ni gotool ni les tâches go par défaut ne semblent le prendre en charge, et il ne semble pas non plus y avoir de prise en charge pour l'exécution de tâches script avec l'exécution du shell.

J'ai également essayé d'ajouter une variable d'environnement à l'ensemble du processus de pipeline pour définir les indicateurs requis, mais ceux-ci semblent être ignorés par la tâche go fournie par Azure Pipelines lui-même.

Existe-t-il un moyen d'ajouter ces indicateurs à chaque processus go (ou individuel), comme je le fais dans le bloc de code suivant (où la ligne d'entrée flags est créée par moi) ?

- task: Go@0
  inputs:
    flags: 'CGO_ENABLED=0 GOOS=linux GOARCH=amd64'
    command: 'build'
    arguments: '[...]'
    workingDirectory: '$(System.DefaultWorkingDirectory)'
  displayName: 'Build the application'

Solution de contournement

Sur la base des informations que j'ai pu trouver et d'une longue période de débogage, j'ai fini par utiliser une solution de contournement qui était possible dans la golang 任务中运行 cmdline@2 命令。由于 gotool@0 manière de configurer le pipeline et l'environnement.

L'extrait de code ci-dessous répond donc à mon objectif.

steps: 
- task: GoTool@0
  inputs:
    version: '1.19.0'
- task: CmdLine@2
  inputs:
    script: 'CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build'
    workingDirectory: '$(System.DefaultWorkingDirectory)'

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer