Repository permanency between stages in an Azure DevOps pipeline

I have an Azure DevOps pipeline with 3 stages in it.

Stage 1: Checkout the self repository. Create folders. Push the changes back to the repo

Stage 2: Checkout the self repository. Create files in the above mentioned folders. Push the changes.

Stage 3: Checkout the self repo. Read the previously created files.

My issue is that even though I push the changes back in Stage 1, when Stage 2 makes the checkout it cannot see these new folders.

So when I run my pipeline it creates the folders, but Stage 2 fails because it cannot see the folders. If I rerun the pipeline the folders are there, so Stage 2 can also succeed, create the files and push them, but Stage 3 won’t see these files yet so it will fail. So, I have to run my pipeline 3 times to make it succeed.

It looks like even though the three stages run after one another, and I do separate checkout in all of them, somehow they still download the same initial version of the repository. So even though the checkout of Stage 2 happens after the push of Stage 1, Stage 2 still cannot see the changes made by Stage 1.

Is this a normal behavior? I assumed there are some caching that makes the stages use the same version of the files. If so, is it possible to change this behavior? I don’t really have any other idea of what could be the issue here.

I can reproduce the same situation. And I can confirm that this is an expected behavior.

When a pipeline is queued the ref is set. All Stages/jobs in the pipeline will checkout the same reference. This is how Pipeline works.

We can get the ref info in the Pipeline summary Page:

is it possible to change this behavior?

I am afraid that there is no out-of-box method can directly change this behavior.

For a workaround, you can add git pull or git fetch command in stage to sync the changes in remote azure repo.

For example: git pull origin HEAD:main

- stage: stagename
  jobs:
  - job: 
    steps:
    - checkout: self
      persistCredentials: true
    - powershell: |
  
       git pull origin HEAD:main
       git config --global user.email "[email protected]"
       git config --global user.name "Your Name"
       xxxx
       git add .
       git commit -m "123"
       git push  origin HEAD:main

1

Your pipeline should not be changing the repo. If you need to persist files between stages, use the PublishArtifacts step.

Recognized by CI/CD Collective

Trang chủ Giới thiệu Sinh nhật bé trai Sinh nhật bé gái Tổ chức sự kiện Biểu diễn giải trí Dịch vụ khác Trang trí tiệc cưới Tổ chức khai trương Tư vấn dịch vụ Thư viện ảnh Tin tức - sự kiện Liên hệ Chú hề sinh nhật Trang trí YEAR END PARTY công ty Trang trí tất niên cuối năm Trang trí tất niên xu hướng mới nhất Trang trí sinh nhật bé trai Hải Đăng Trang trí sinh nhật bé Khánh Vân Trang trí sinh nhật Bích Ngân Trang trí sinh nhật bé Thanh Trang Thuê ông già Noel phát quà Biểu diễn xiếc khỉ Xiếc quay đĩa Dịch vụ tổ chức sự kiện 5 sao Thông tin về chúng tôi Dịch vụ sinh nhật bé trai Dịch vụ sinh nhật bé gái Sự kiện trọn gói Các tiết mục giải trí Dịch vụ bổ trợ Tiệc cưới sang trọng Dịch vụ khai trương Tư vấn tổ chức sự kiện Hình ảnh sự kiện Cập nhật tin tức Liên hệ ngay Thuê chú hề chuyên nghiệp Tiệc tất niên cho công ty Trang trí tiệc cuối năm Tiệc tất niên độc đáo Sinh nhật bé Hải Đăng Sinh nhật đáng yêu bé Khánh Vân Sinh nhật sang trọng Bích Ngân Tiệc sinh nhật bé Thanh Trang Dịch vụ ông già Noel Xiếc thú vui nhộn Biểu diễn xiếc quay đĩa Dịch vụ tổ chức tiệc uy tín Khám phá dịch vụ của chúng tôi Tiệc sinh nhật cho bé trai Trang trí tiệc cho bé gái Gói sự kiện chuyên nghiệp Chương trình giải trí hấp dẫn Dịch vụ hỗ trợ sự kiện Trang trí tiệc cưới đẹp Khởi đầu thành công với khai trương Chuyên gia tư vấn sự kiện Xem ảnh các sự kiện đẹp Tin mới về sự kiện Kết nối với đội ngũ chuyên gia Chú hề vui nhộn cho tiệc sinh nhật Ý tưởng tiệc cuối năm Tất niên độc đáo Trang trí tiệc hiện đại Tổ chức sinh nhật cho Hải Đăng Sinh nhật độc quyền Khánh Vân Phong cách tiệc Bích Ngân Trang trí tiệc bé Thanh Trang Thuê dịch vụ ông già Noel chuyên nghiệp Xem xiếc khỉ đặc sắc Xiếc quay đĩa thú vị
Trang chủ Giới thiệu Sinh nhật bé trai Sinh nhật bé gái Tổ chức sự kiện Biểu diễn giải trí Dịch vụ khác Trang trí tiệc cưới Tổ chức khai trương Tư vấn dịch vụ Thư viện ảnh Tin tức - sự kiện Liên hệ Chú hề sinh nhật Trang trí YEAR END PARTY công ty Trang trí tất niên cuối năm Trang trí tất niên xu hướng mới nhất Trang trí sinh nhật bé trai Hải Đăng Trang trí sinh nhật bé Khánh Vân Trang trí sinh nhật Bích Ngân Trang trí sinh nhật bé Thanh Trang Thuê ông già Noel phát quà Biểu diễn xiếc khỉ Xiếc quay đĩa
Thiết kế website Thiết kế website Thiết kế website Cách kháng tài khoản quảng cáo Mua bán Fanpage Facebook Dịch vụ SEO Tổ chức sinh nhật