# Sharing code checkout step between jobs

**URL:** <https://discuss.circleci.com/t/sharing-code-checkout-step-between-jobs/29918>\
**Category:** Caching Dependencies\
**Created:** [April 22, 2019, 11:19am UTC](https://discuss.circleci.com/t/sharing-code-checkout-step-between-jobs/29918 "2019-04-22T11:19:15Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![abitrolly](https://sea2.discourse-cdn.com/circleci/user_avatar/discuss.circleci.com/abitrolly/32/12911_2.png) [@abitrolly](https://discuss.circleci.com/u/abitrolly)\
**Post date:** [April 22, 2019, 11:19am UTC](https://discuss.circleci.com/t/sharing-code-checkout-step-between-jobs/29918/1 "2019-04-22T11:19:15Z")

</div>

Every job in my workflow needs access to source code, and I have to repeat `- checkout` step every time. Is it possible to checkout out code once and then just share it among the jobs?

I tried to use workspaces

```auto
        steps:
            - checkout
            - persist_to_workspace:
                root: .

```

Which fails with `The specified paths did not match any files in /root/project`.

```auto
            - persist_to_workspace:
                root: $CIRCLE_WORKING_DIRECTORY

```

Fails with `Error locating workspace root directory: stat /root/project/$CIRCLE_WORKING_DIRECTORY: no such file or directory`

---

<div class="post-metadata">

**Author:** ![drazisil](https://sea2.discourse-cdn.com/circleci/user_avatar/discuss.circleci.com/drazisil/32/24029_2.png) [@drazisil](https://discuss.circleci.com/u/drazisil)\
**Post date:** [April 22, 2019, 1:12pm UTC](https://discuss.circleci.com/t/sharing-code-checkout-step-between-jobs/29918/2 "2019-04-22T13:12:53Z")

</div>

You can’t use an env here, as the config parser can not interpolate it. What happens if you put the working directory path specifically?

---

<div class="post-metadata">

**Author:** ![abitrolly](https://sea2.discourse-cdn.com/circleci/user_avatar/discuss.circleci.com/abitrolly/32/12911_2.png) [@abitrolly](https://discuss.circleci.com/u/abitrolly)\
**Post date:** [April 23, 2019, 12:44pm UTC](https://discuss.circleci.com/t/sharing-code-checkout-step-between-jobs/29918/3 "2019-04-23T12:44:37Z")

</div>

I tried different ways for `root` including `*` and absolute paths, which did not work, and then I found the solution here.

> **[CircleCI Ideas](https://ideas.circleci.com/ideas/CCI-I-898)**
>
> Post your ideas and vote on those you would most like to see in CircleCI.

```auto
        - persist_to_workspace:
            root: .
            paths:
                - .

```

---

<div class="post-metadata">

**Author:** ![system](https://global.discourse-cdn.com/circleci/original/3X/5/1/511608acda8e85906e15909b57bd0a46c1dbe291.png) [@system](https://discuss.circleci.com/u/system)\
**Post date:** [May 3, 2019, 12:44pm UTC](https://discuss.circleci.com/t/sharing-code-checkout-step-between-jobs/29918/4 "2019-05-03T12:44:42Z")

</div>

Closed on May 3, 2019, 12:44pm UTC

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.
