CircleCI-Archived / circleci-orbs

The source code for some of the orbs published by CircleCI
https://circleci.com/orbs/registry
78 stars 70 forks source link

Provide way to automate larger releases #69

Closed iynere closed 4 years ago

iynere commented 5 years ago

We should be able to use git tags + workflow filters to sometimes automatically publish minor or major releases if folks tag a commit in a particular way. this would be awesome, so we don't just continually push patch releases forever

hutson commented 5 years ago

@iynere kind of shameless plug here, but I documented on the Circle CI Discord site about an Orb I wrote which exports a job for automating the release process for Circle CI Orbs (including proper tagging of PATCH, MINOR, and MAJOR, based on the contents of the commit messages) - https://discuss.circleci.com/t/orbs-sneak-peaks-share-your-orbs-in-progress/26008/3?u=hutson

iynere commented 5 years ago

@hutson ahh cool, i remember this discuss thread 😄

i'm working on this right this second, too—ideally, we have a way to do integration testing—ie, at the end of a regular dev release workflow, a new commit is triggered with a specific tag so that integration testing jobs can run on the new commit & pull in the version of the orb that was just published previously

@hutson i'd love to see links to repos where this orb is being used, if it's open source

hutson commented 5 years ago

@hutson i'd love to see links to repos where this orb is being used, if it's open source

Since you asked :smile: :

integration testing

Yeah... I have a todo for adding tests to validate my Orb prior to tagging a deliverable.

iynere commented 5 years ago

thank you !! @hutson

nmiyake commented 5 years ago

I ran into the issue of publishing orbs from a monorepo as well. The semantic delivery orb looked interesting, but in my brief read through it I couldn't figure out how (if at all) it could apply to monoprepos, and also didn't want to opt in to the entire semantic release framework.

For now, I wanted something for my org that was more focused on just handling publishing CircleCI orbs from a monorepo, so I wrote an orb that handles orb monorepo publishing using tag prefixes -- for example, in this repository, if the aws-s3/v1.2.0 tag was added, it would publish 1.2.0 of the aws-s3 orb. This does require an external process (human or automated) to create the tag, but my organization already has such a mechanism so I think this approach will work well for us (it also doesn't address the integration testing story).

For reference, here's the orb definition and CircleCI config that uses it (the repository uses it to publish its own definitions). As of this writing, this is published as nmiyake/orb-publisher@0.0.4.

This should probably work for us for now, but would love it if there was first-class support/orbs for this kind of monorepo publish workflow!

iynere commented 5 years ago

oh that's a smart approach ! @nmiyake

we are working on monorepo support in general, which should provide a first-class solution, but in the interim some combination of circleci-created or community-created orbs should be able to serve us.

for longer discussion, please post on discuss rather than here—its a much better place for conversation 😄

https://discuss.circleci.com/c/orbs

KyleTryon commented 4 years ago

Hello,

We have completed our transition of moving each orb within this Mono repository into a separate repository. 🎉

This issue has been resolved by our OSK https://github.com/CircleCI-Public/orb-starter-kit