Bitbucket Pipeline: How to keep artifacts for next steps even if current is skipped?
Asked by Asif Baig:

I have pipeline setup that looks similar to that of the pseudo code pasted below.

I am facing a problem with availability of \`artifacts.txt\` file in the Third step if in-case the Second step is skipped, which is a valid scenario for us.

But looks like whenever the second step is skipped, the artifacts file are not available for third step as well.

How can we get this enabled? Because as per the official documentation:
> Artifacts that are created in a step are available to all the following steps.

But it doesn't mentioned what happens if one of the steps in between is skipped, do we have a way around this?

```
pipelines:
  branches:
    develop:
      - step:
         name: Generate Artifacts
         script:
           - echo "Generate Some Artifact" > artifacts.txt
         artifacts:
           - artifacts.txt
      - step:
         name: Optional Build Step
         condition:
           changesets:
             includePaths:
               - "build_dir/**"
           script:
             - echo "Only build if changes made in specific directory"
      - step:
         name: Mandatory Final Step
         script:
           - echo "Use artifacts.txt generated in step 1"
           - DATA=$(cat artifacts.txt)
           - echo "Some final steps of build"
```


Answers:
author: Theodora Boudale
body: Hi Asif and welcome to the community!

I ran a build using the bitbucket-pipelines.yml file you provided in your post but I am unable to reproduce this error. The file artifacts.txt is available in the third step of my build regardless of whether the second step runs or not.

I would suggest the following:

* On Bitbucket website, open a build with the issue you reported, select the first step, and then select **Build teardown** in the build log. Is there a message there "Successfully uploaded artifact" or is there any error about the artifact upload?  

* On the same build, select the third step and then select **Build setup** in the build log. Do you see a message there about artifacts being downloaded and extracted?  

* You can add the command **ls -lah** in the third step's script to see if the artifact file is listed.

If you still cannot figure it out, you can post the build URL in the support ticket you created and the engineer working on your ticket can help with troubleshooting.

Please feel free to reach out if you have any questions!

Kind regards,  
Theodora

comments: author: Asif Baig
body: Thank you [@Theodora Boudale](/t5/user/viewprofilepage/user-id/818086) !

Your comment made me take another look at the code and failed builds, realized that there was an **exit 0** line left over in an *IF-ELSE* block just above the code where the build is supposed to generate the artifact file.

The step was exiting with success status but without generating the artifact file itself!

Thank you for your suggestions!

- Asif


author: Theodora Boudale
body: Thank you for the update Asif, it's good to hear that you figured this out!

Please feel free to reach out if you ever need anything else!

Kind regards,  
Theodora


Tags: bitbucket-cloud

bitbucket-pipelines

cloud