azure devops 发布阶段 bash 脚本

azure devops release stage bash script

我在我的 azure devops 版本中定义了以下阶段: 步骤:

- bash: |
   # Write your commands here
   
   echo 'Hello world'
   
   curl -X POST -H "Authorization: Bearer dapiXXXXXXXX"  -d @conf/dbfs_api.json  https://adb-YYYYYYYY.X.azuredatabricks.net/api/2.0/jobs/create > file.json
   
  displayName: 'Bash Script'

我的 repo 有一个名为 conf 的文件夹,里面有文件 dbfs_api.json,不幸的是,在这个阶段的部署过程中找不到这个文件,我收到以下错误:

Couldn't read data from file "D:ar1a/conf/dbfs_api.json", this makes an empty POST.

The release stages of an Azure Pipelines workflow don't perform a checkout by default.您可以在发布阶段手动添加checkout任务来执行checkout:

A deployment job doesn't automatically clone the source repo. You can checkout the source repo within your job with checkout: self. Deployment jobs only support one checkout step.

jobs:
- deployment:
  environment: 'prod'
  strategy:
    runOnce:
      deploy:
        steps:
        - checkout: self 

或者你可以create a pipeline artifact in the build stage and consume the artifact in a later artifact.

stages:
- stage: build
  jobs:
  - job:
    steps:
    - publish: '$(Build.ArtifactStagingDirectory)/scripts'
      artifact: drop

- stage: test
  dependsOn: build
  jobs:
  - job:
    steps:
    - download: current
      artifact: drop

参见: