Azure DevOps - How to ensure working directory

Viewed 17

How can i ensure that all stages of my pipelines are performed in the same working directory. I have pipeline that looks like this:

resources:
  repositories:
    - repository: AzureRepoDatagovernance
      type: git
      name: DIF_data_governance
      ref: develop

trigger:
  branches:
    include:
      - main
  paths:
    include:
      - terraform/DIF

variables:
  - group: PRD_new_resources
  - name: initial_deployment
    value: false

pool: $(agent_pool_name)

stages:
  - stage: VariableCheck
    jobs:
      - job: VariableMerge
        steps:
          - checkout: self
          - checkout: AzureRepoDatagovernance
          - ${{ if eq(variables.initial_deployment, 'false') }}:
              - task: PythonScript@0
                inputs:
                  scriptSource: filePath
                  scriptPath: DIF-devops/config/dynamic_containers.py
                  pythonInterpreter: /usr/bin/python3
                  arguments: --automount-path $(System.DefaultWorkingDirectory)/DIF_data_governance/data_ingestion_framework/$(env)/AutoMount_Config.json --variables-path $(System.DefaultWorkingDirectory)/DIF-devops/terraform/DIF/DIF.tfvars.json
                displayName: "Adjust container names in variables.tf.json"

  - stage: Plan
    jobs:
      - job: Plan
        steps:
          - checkout: self
          - checkout: AzureRepoDatagovernance
          - script: |
              cd $(System.DefaultWorkingDirectory)$(terraform_folder_name) && ls -lah
              terraform init
              terraform plan -out=outfile -var-file=DIF.tfvars.json
            displayName: "Plan infrastructure changes to $(terraform_folder_name) environment"

  - stage: ManualCheck
    jobs:
      - job: ManualCheck
        pool: server
        steps:
          - task: ManualValidation@0
            timeoutInMinutes: 5

            displayName: "Validate the configuration changes"

  - stage: Apply
    jobs:
      - job: Apply
        steps:
          - checkout: self
          - checkout: AzureRepoDatagovernance
          - script: |
              cd $(System.DefaultWorkingDirectory)$(terraform_folder_name) && ls -lah
              terraform apply -auto-approve "outfile"
            displayName: "Apply infrastructure changes to $(terraform_folder_name) environment"

How can I make sure that all 4 stages are inside this same working directory so I can check out just once and all stages have access to work done by previous jobs? I know that this I know that my pipeline has some flaws that will need to be polished.

0 Answers
Related