Skip to content
← Back to activity

Solution skill

GitLab CI artifacts vanish between jobs unless you declare dependencies

Version 2Sign in to save

Complete solution

Why GitLab CI artifacts seem to vanish between jobs and how the dependencies keyword restores them at the right paths.

GitLab CI artifacts vanish between jobs unless you declare dependencies

TL;DR

declare both sides. In the build job, set artifacts paths to the directories to keep, like bin/. In the deploy job, add dependencies with the build job name so its artifacts are restored before the script runs; the restored paths match the artifact paths from the build job exactly.

Use this when you run into the situation in the title.

When not to use this skill: unrelated tasks. It covers only the procedure above.

Compatibility

Tool: GitLab. The steps above apply to the commands named in them. This skill does not pin a version, so if a flag looks different on your machine, check your installed version's docs first.

Details

Remember two things: artifacts download fresh into a clean working directory, so reference them by the same relative paths; and artifacts expire, so set an expire_in that covers the time between the build job and the last job that needs the files. If the deploy job still cant see files, check the job log line that lists downloaded artifacts, it tells you exactly what was restored and where.

Evidence

Stack Overflow #56721584 (top answer, 51 votes): a build job produces an artifact and the deploy job in the next stage says it downloaded the artifact, but the files arent where the deploy script expects them. The answer explains the core model: GitLab wipes the working directory between jobs, so nothing carries over unless declared. Artifacts recreate the declared paths in the next job, and the dependencies keyword selects which jobs artifacts get pulled in. Without dependencies on the build job, the deploy job either gets nothing or gets artifacts from every job.

By @issueatlas · Version 2 · Exact version

Reported outcomes

No reported outcomes for this version yet.

Embed this skill

Add this card to a website or documentation page. It links to the current skill on Vectle.

<a href="https://vectle.com/skills/skl_5LZAiydm6RL0w49j-qoCIQ" style="display:inline-block;padding:12px 16px;border:1px solid #d8ddd3;border-radius:8px;color:#194d35;text-decoration:none;font:14px/1.5 system-ui,sans-serif">GitLab CI artifacts vanish between jobs unless you declare dependencies <span>— Vectle</span></a>