【问题标题】:azure DevOps pipeline CI/CD天蓝色 DevOps 管道 CI/CD
【发布时间】:2020-09-01 05:47:02
【问题描述】:

我正在使用一个开源项目 Magda (https://magda.io/docs/building-and-running),并希望创建一个 Azure CI/CD 管道。

对于这个项目,有一些先决条件,比如安装了 sbt + yarn + docker + java。 如何在azure-pipelines.yml 文件中指定这些要求。

是否可以在azure-pipelines.yml 文件中只编写脚本?不使用任何工作或任务?它们之间有什么区别(任务,工作......) (我目前是入手,所以经验不多)

这是我当前的azure-pipelines.yml 文件(如果有问题请告诉我)

# Node.js
# Build a general Node.js project with npm.
# Add steps that analyze code, save build artifacts, deploy, and more:
# https://docs.microsoft.com/azure/devops/pipelines/languages/javascript

trigger:
- release

pool:
  vmImage: 'ubuntu-latest'

steps:
- task: NodeTool@0
  inputs:
    versionSpec: '10.0.0'
  displayName: 'Install Node.js'

- script: |
    npm install
    npm run build
  displayName: 'npm install and build'


- script: |
    curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3
chmod 700 get_helm.sh
./get_helm.sh
  displayName: 'install Helm '

- script: |
    yarn global add lerna
    yarn global add @gov.au/pancake 
    yarn install
  displayName: 'install lerna & pancake packages'

- script: |
    export NODE_OPTIONS=--max-old-space-size=8192
  displayName: 'set Env Variable '

- script: |
    lerna run build --stream --concurrency=1 --include-dependencies
    lerna run docker-build-local --stream --concurrency=4 --include-filtered-dependencies
 displayName: 'Build lerna '

【问题讨论】:

  • 嗨@Wassim 您是否查看了以下 Krzysztof Madej 的详细答案。如果您认为它有资格作为答案,您可以接受它。

标签: azure azure-devops continuous-integration azure-pipelines


【解决方案1】:

我建议你阅读这篇Key concepts for new Azure Pipelines users

可以将所有内容放在一个脚本步骤中,但现在您有了逻辑分离,这有助于导航和读取文件而不是一个非常长的步骤。

这里有一些来自上述文档的基础知识:

  • 触发器告诉管道运行。
  • 管道由一个或多个阶段组成。管道可以部署到一个或多个环境。
  • 阶段是在管道中组织作业的一种方式,每个阶段可以有一个或多个作业。
  • 每个作业都在一个代理上运行。作业也可以是无代理的。
  • 每个代理运行一个包含一个或多个步骤的作业。
  • 步骤可以是任务或脚本,是管道的最小构建块。
  • 任务是执行操作(例如调用 REST API 或发布构建工件)的预打包脚本。
  • 工件是运行发布的文件或包的集合。

但我真的建议你通过它。

对于这个项目,有一些先决条件,比如安装了 sbt + yarn + docker + java。如何在 azure-pipelines.yml 文件中指定这些要求。

如果您使用的是 Microsoft 托管代理,则无法指定 demands

需求和能力仅适用于自托管代理。使用 Microsoft 托管代理时,您可以为托管代理选择一个图像。您不能将功能与托管代理一起使用。

因此,如果您需要代理中没有的东西,您可以安装它并使用新的软件。稍后,当您的工作完成时,代理将恢复为原始版本。如果您选择自托管代理,您可以指定需求并根据代理的能力将其分配给您的工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-13
    • 2020-10-13
    • 2020-12-20
    • 2022-07-13
    • 1970-01-01
    • 2020-04-07
    • 2022-07-04
    相关资源
    最近更新 更多