Submit Your Ideas

We want to hear from you - vote for the features and improvements you'd most like to see, or submit your own ideas if you don't find them already listed.

Select workspace by build to use in fan in/out workflow

Ability to select a specific job(s) to use workspace from when workflow fans back in. For example:

Start workflow with a `pre-build job` that splits into two streams (one for Linux, one for MacOS). These then fan back in for the Deploy job, which requires that all previous jobs have succeeded, but only needs to attach workspaces from specific jobs. 

 

*Example*

1. macOS XCode preparation (checkout, build frameworks)
  1.1. iOS Testsuite I
  1.2. iOS Testsuite II
  1.3. iOS Testsuite III
2. node.js preparation (checkout, running npm install)
  2.1. run tests + coverage
  2.2. run e2e tests on linux/node.js
 

I need to add a job to deploy the stuff which needs to wait for all to end successfully, but does not need the upstream from all. In the workflow description, the requires keyword/configuration is fine to describe, that this jobs needs to wait for jobs 1.1, 1.2, 1.3, 2.1 and 2.2.!

But for the deployment job, the attach_workspace is not configurable. It assumes, that the required jobs/containers are my workspace upstreams. This could still be the default, but adding an optional configuration to select the job where I want to get my workspaces from OR adding a name to workspaces to select them somehow when attaching or persisting them would help in my case.

  • Avatar32.5fb70cce7410889e661286fd7f1897de Guest
  • Sep 13 2018
  • Attach files
  • Avatar40.8f183f721a2c86cd98fddbbe6dc46ec9
    Guest commented
    16 Sep 16:03

    I don't have precisely the same issue, but the solution here would be beneficial to my organization. We generate very large (2.4GB) workspaces during our build phase, then fan-out to many jobs that have different dependencies from the workspace. For example, one job may require unit test executables (the bulk of the size), another job may require the original git repo, and another job may require the installer artifacts. The ability to select which objects I get from the workspace would both speed up my builds substantially and mitigate issues like 

    Error applying workspace layer for job XXXX: Error extracting tarball /tmp/workspace-layer-XXXX: exit status 2
    
     which appear when the workspace gets very large.