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

Injecter des variables d'environnement Golang dans Azure Pipeline

PHPz
Libérer: 2024-02-13 13:40:09
avant
1093 Les gens l'ont consulté

将 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 [...]
Copier après la connexion

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'
Copier après la connexion

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)'
Copier après la connexion

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