Introducing Workspaces

We are working on workspaces, a new way of sharing files within a build.

Workspaces allow jobs within a build to share files. They are useful when you want to use build artifacts from a previous job; for example, you create a cache that can be used in multiple jobs later.

Example configurations and further information can be found in https://docs.travis-ci.com/user/using-workspaces/.

We very much appreciate your feedback here.

Thank you!

6 Likes

create_workspace logic should probably run after before_cache: script.

In https://api.travis-ci.org/v3/job/560286391/log.txt (build link), I use a stage to build a shared dependency, then add the result to both cache and workspace. Before saving the cache, I clean up the directories from redundant data in before_cache:. As it is now, the workspace is saved with that redundant data.

1 Like

That’s a fair point.

It fails to create the dir doing unpacking, see the log here https://travis-ci.org/vladimiry/ElectronMail/jobs/561667687#L155

I see that the workspace created on Linux is not usable on the Mac and vice versa.

2 Likes

Correct, Mac was trying to consume the workspace create on Linux. I think it’s a normal use case.

I’ll just note here that we currently normalize the files to absolute paths, so that we can reliably find the files to cache. Switching to relative paths will require non-trivial amount of work in travis-build and casher.

This obviously is a useful thing in workspaces, and it needs to be addressed.

Imprint