Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

Next challenges

Recent achievements

  • Global
  • Personal

Recognition

  • Give kudos
  • Received
  • Given

Leaderboard

  • Global

Trophy case

Kudos (beta program)

Kudos logo

You've been invited into the Kudos (beta program) private group. Chat with others in the program, or give feedback to Atlassian.

View group

It's not the same without you

Join the community to find out what other Atlassian users are discussing, debating and creating.

Atlassian Community Hero Image Collage

Is there a way of sharing data between steps in bitbucket pipelines

I'm currently trying to use Bitbucket pipelines to deploy a docker container to Kubernetes. I've read the example that's already out there, but it doesn't completely fit our needs.

The step of building the container and putting it in it's registry works fine from the pipelines, as well is the deployment step that connects to Kubernetes to create a deployment, but not yet completely.

Because the build step knows the name of the container, which is constructed by Gradle, sharing this information to the deployment step would be convenient, so the kubectl commands can be executed using this information. Is there a way of sharing information between these steps?

2 answers

1 accepted

4 votes
Answer accepted
davina Atlassian Team Apr 19, 2018

Hi @Bram Wiekens

A way you can share data between steps is using artifacts which is configured in your bitbucket-pipelines.yml You could create a file that saves the data, and then pass it on. This is currently the only thing that is passed to and from steps that can be accessed.

Hope this helps!

Thank you @davina,that certainly helped give some direction for an alternative solution, which now works. I write a little file now during the build process and pass this file on as an artifact to the deployment step.

The only issue I had was to remember that the artifacts use relative paths to be shared so "/data/**" won't work while "data/**" will work. Other than that this is a working solution.

Deleted user Sep 01, 2018

Is there an example of how this works anywhere? How do you know the artifact's filename? Or path? Will it be automatically compressed? I don't see this documented anywhere.

Like Damien JARRY likes this

In your bitbucket-pipelines.yaml file, use something like this example:

pipelines:
  branches:
    master:
      - step:
        caches:
          - node
        script:
          - npm install
          - npm run fulltest
          - npm run get-version --silent > ./version.txt
        artifacts:
          - version.txt
      - step:
        script:
          - VERSION=$(cat ./version.txt)

 

The above configuration runs npm install, runs a full set of tests (custom npm task), and then uses get-version (a custom npm task to get the version of the package) and places the SemVer number into a file called version.txt.

This file is then stored as an artifact, which allows you to open it up in the next step (via cat, for example) and store it into a variable to be used further down in the step's script.

Like # people like this

hi,
asking for help!

Im in a weird issue where I use artifacts to export 2 file (.txt and .tar) from the 1st step and I am not being able to get the .tar in the 2nd step. I can access the .txt file but not the .tar file. In both steps I use different docker images to process the data.


Is there anything to do with the docker image and artifacts exported in the 1st step? Asking this question because, if I use some different docker image in the 2nd step I can see the .tar file available.

Suggest an answer

Log in or Sign up to answer
TAGS
Community showcase
Published in Bitbucket

Powering DevOps with Bitbucket Server & Data Center

Hi everyone, The Cloud team recently announced 12 new DevOps features that help developers ship better code, faster   ! While we’re all excited about the new improvements to Bitbucket ...

1,926 views 0 7
Read article

Community Events

Connect with like-minded Atlassian users at free events near you!

Find an event

Connect with like-minded Atlassian users at free events near you!

Unfortunately there are no Community Events near you at the moment.

Host an event

You're one step closer to meeting fellow Atlassian users at your local event. Learn more about Community Events

Events near you