Should trigger-pipeline pipe complete if pipeline has a manual deployment step

Jay Seletz September 26, 2019

I have been successfully using the atlassian/trigger-pipeline:4.0.2 pipe to trigger and run multiple pipelines, waiting for success or failure.  I have a "master build" that runs a list of pipelines in several other repos.  My steps invoking the trigger specify WAIT: 'true'

The default pipelines are being triggered and typically take 1-3 minutes to run to completion.   This has all been working fine.

I recently added a manual deployment step to some of the pipelines.  Now the trigger-pipeline steps for the repos where I've added the manual deployment step to those pipelines never get's back a successful completion.  The following lines repeat forever, even though I can verify the triggered pipeline has successfully completed:

INFO: Attempt number 22: Getting build info.
INFO: Attempt number 22: Build number 10 for MyBuild is IN_PROGRESS,
waiting for pipeline to finish...

The pipelines without the added deployment steps continue to work, but those with the manual deployment steps do not.  Should this pipe support waiting for pipelines with manual deployment steps?  For example, triggering the pipeline with this step never comes back as successful:

pipelines:
default:
- step:
caches:
- gradle
script:
- ./gradlew build
artifacts:
- dist/*.jar
- step:
name: Deploy to test
deployment: Test
trigger: manual
script:
- /deploy.sh

I am only expecting that the ./gradlew build step needs to complete successfully, and in this case the pipeline shows a status of Successful in the UI. However the trigger-pipeline pipe waits forever.  I tried updating to use atlassian/trigger-pipeline:4.0.3 but that didn't help.  

Looking at the api made to check status in the source code, if I make the api call

/repositories/{account}/{repo}/pipelines/{build_number}

for the completed pipeline with the manual deployment step, it returns:

"state": {"name": "IN_PROGRESS", "type": "pipeline_state_in_progress", 
"stage": {"name": "PAUSED", "type": "pipeline_state_in_progress_paused"}}

 I can't move the manual deployment step to another pipeline because it needs access to the artifact produced in the prior step.  

2 answers

1 accepted

1 vote
Answer accepted
Oleksandr Kyrdan
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
October 7, 2019

Hi @Jay Seletz ,

new version of the pipe atlassian/trigger-pipeline:4.0.5 with fix is released!

Jay Seletz October 7, 2019

Thanks, works great!

0 votes
Alexander Zhukov
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
October 2, 2019

Hey @Jay Seletz , thanks for such a detailed issue report. As it turns out, there is a bug in the current version of the trigger-pipeline. As a temporary workaround I suggest setting WAIT parameter to 'false' so the source build doesn't wait for the downstream with the manual step. We'll fix the bug asap and will notify you here.

As a side note, your upstream pipeline should continue to run when you trigger the manual step in your downstream build, but I guess this is not something that helps you.

Jay Seletz October 2, 2019

Thanks @Alexander Zhukov - I actually do need to wait.  I have forked the trigger-pipeline and implemented a workaround to optionally allow paused pipelines to be considered successfully run if waiting.  I look forward to being able to revert back to the official version once it's fixed, thanks!

Alexander Zhukov
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
October 2, 2019

Great! @Jay Seletz you're also welcome to contribute to the trigger-pipeline by creating a pull request with the changes to our trigger-pipeline repository. 

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events