Access artifact in next task to deploy


Hello everyone,

I’ve recently started with GitLab and setup the following tasks in my gitlab-ci.yml:

  • task build
  • task deploy_test
  • task deploy_production

Now my task build creates an artifact(jar) which I can download from the UI but I want to access this artifact in my deploy_test and deploy_production. In I read that artifacts are automatically available in the next job if that job depends the job creating the artifact. But how do I access it? I want to grab this artifact and use it in my deploying task.

Thanks in regards for any help provided,


1 Like

Believe that I found the solution, when adding dependencies to a task all artifacts created by that task are downloaded and extracted in the build folder used by the next runner as documented in


Another way, you can describe dependencies in .gitlab-ci.yml
May be it will be useful for googlers


The artifacts are extracted in the working directory of the runner, which is also where your Git repository is checked out. So you don’t have to look for a special build directory, or an archive, it’s just right there in front of you.

So if you have a repository like this:


And your build job turns it into this:


And you only specify build/ in the artifacts (of this first job), then your will contain this:


And for the next job you will start with this structure:


Which is your Git repository, with the unzipped in it.

It selects all artifacts from jobs from previous stages, unless you define dependencies, then you can select from which jobs you want to re-use the artifacts. You can use this to skip downloading artifacts you don’t need, or to make jobs in the same stage sequential (otherwise they might run in parallel).