CircleCI-Public / orb-tools-orb

Various tools for authoring and publishing CircleCI orbs
https://circleci.com/orbs/registry/orb/circleci/orb-tools
MIT License
50 stars 74 forks source link

Unable to publish and pack multiple orbs within single workflow. #195

Closed adomaskizogian closed 1 year ago

adomaskizogian commented 1 year ago

Orb version 11.6.1:

What happened:

Packing and publishing multiple orbs within a single workflow does not work.

Pack produces an orb file that is later stored on the workspace. Publish job attaches the workspace and publishes the file.

In case multiple pack jobs were run, workspace cannot be successfully attached due to multiple files with the same filename were stored on the workspace.

Downloading workspace layers
  workspaces/ed1e4069-e3ce-4e8a-98d6-5beebd13986d/fd9d2277-73d4-4686-ba7b-080c284bc9b7/587e1c44-1efc-441a-8feb-5ee64dde4570/0/104.tar.gz - 7.5 kB
  workspaces/ed1e4069-e3ce-4e8a-98d6-5beebd13986d/fd9d2277-73d4-4686-ba7b-080c284bc9b7/e76bd927-9091-459d-98a1-9b906927e441/0/104.tar.gz - 2.0 kB
Total size downloaded: 9.2 KiB
Applying workspace layers
  587e1c44-1efc-441a-8feb-5ee64dde4570
Concurrent upstream jobs persisted the same file(s) into the workspace:
  - orb.yml

Error applying workspace layer for job 587e1c44-1efc-441a-8feb-5ee64dde4570: Concurrent upstream jobs persisted the same file(s)

Our use case is that we've set up a monorepo containing source of multiple orbs. On pipeline runs we use matrix jobs to lint, pack and publish orbs.

There is a workaround to use multiple workflows but this results in a lot of duplication within configuration as workflows cannot be parameterized.

For a potential solution I've created a pull request that introduces new parameters for pack and publish jobs - orb filename param. https://github.com/CircleCI-Public/orb-tools-orb/pull/194

KyleTryon commented 1 year ago

I have added your suggestion as a part of orb tools 12, thank you! https://github.com/CircleCI-Public/orb-tools-orb/pull/181