Skip to content

update(CENG-750): Refresh Circle Orb for Cloudsmith#17

Merged
BartoszBlizniak merged 9 commits intocloudsmith-io:masterfrom
BartoszBlizniak:ceng-750-circleci-orb-update
Apr 6, 2026
Merged

update(CENG-750): Refresh Circle Orb for Cloudsmith#17
BartoszBlizniak merged 9 commits intocloudsmith-io:masterfrom
BartoszBlizniak:ceng-750-circleci-orb-update

Conversation

@BartoszBlizniak
Copy link
Copy Markdown
Member

@BartoszBlizniak BartoszBlizniak commented Apr 1, 2026

Description

This PR brings our CircleCI orb to the same feature parity as GitHub Actions + Azure AD. This includes installing the Cloudsmith CLI directly onto the runner so all commands can be used instead of maintaining wrapper commands, and OIDC is now fully integrated as a command.

Testing

This orb was tested manually with each feature under my fork/personal CircleCi project

image

CI Pipeline

  • Migrated from circleci-cli@0.1.5 + orb-tools@8.27.3 with a custom publish-orb job to orb-tools@12.4.0 with built-in lint, pack, review, and publish jobs.
  • Separate dev and production publish workflows with proper tag/branch filtering.
  • Dev releases published on every branch push; production releases triggered by v-prefixed semver tags (e.g. v2.0.0).

OIDC Authentication (authenticate-with-oidc)

  • Added configurable retry logic (oidc-auth-retry, default 3 attempts with 5 s delay).
  • Added optional oidc-audience parameter for custom audience values.
  • Added dependency checks (curl, jq) and CIRCLE_OIDC_TOKEN_V2 validation with actionable error messages.

CLI Installation (install-cli)

  • Default install method changed to zipapp downloaded from dl.cloudsmith.io (previously tried pip first, then fell back to GitHub releases; this ensures consistency across GitHub Actions and Azure AD).
  • Added cli-version parameter to pin a specific CLI release.
  • Added install-path parameter for zipapp destination directory, defaulting to $HOME/bin.
  • Added safer zipapp installation logic: install path is added to PATH, with a sudo fallback for non-writable locations.
  • Added CLI configuration via ~/.cloudsmith/config.ini: api-host, api-proxy, api-ssl-verify, api-user-agent.

Executor

  • Updated from deprecated circleci/python:3.7.4 to cimg/python:3.10.

Other Commands

  • publish: Marked as deprecated with migration guidance in the description.

Examples

  • Added authenticate-with-oidc example (auth-only, no CLI install).
  • Added cli-with-oidc example (recommended full workflow: OIDC + CLI + push).
  • Updated command-publish example orb version from 1.0.3 to 2.0.0.

Documentation

  • Rewrote README with commands reference (parameter tables), executor docs, two usage examples (OIDC recommended + API key), and updated development/release management sections.

Type of Change

  • Bug fix
  • New feature
  • Breaking change
  • Documentation update
  • Refactoring
  • Other (please describe)

Additional Notes

Breaking changes:

  • Default executor image changed from circleci/python:3.7.4 to cimg/python:3.10 — jobs relying on the old default may need to pin the tag parameter.
  • CLI installation now defaults to zipapp instead of pip.
  • Production releases now require a v-prefixed semver tag (e.g. v2.0.0) instead of a bare version number (2.0.0).

@BartoszBlizniak BartoszBlizniak marked this pull request as ready for review April 1, 2026 16:47
Copilot AI review requested due to automatic review settings April 1, 2026 16:47
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Refreshes the Cloudsmith CircleCI orb to reach feature parity with other CI integrations by adding first-class OIDC auth, switching to a zipapp-based CLI install, updating the default executor image, and modernizing the orb’s publish pipeline + docs.

Changes:

  • Add/expand orb commands for OIDC authentication and CLI installation (zipapp by default), and deprecate the publish wrapper command.
  • Update the default executor to cimg/python:3.12 and add new usage examples aligned with the recommended OIDC + direct CLI pattern.
  • Migrate CI release tooling to circleci/orb-tools@12.4.0, add .yamllint, and rewrite/extend README documentation.

Reviewed changes

Copilot reviewed 13 out of 13 changed files in this pull request and generated 7 comments.

Show a summary per file
File Description
src/executors/default.yml Switch default executor to cimg/python and update tag default/documentation.
src/examples/command-publish.yml Bump example orb version to 2.0.0 and add YAML document start.
src/examples/cli-with-oidc.yml Add recommended end-to-end OIDC + CLI + direct cloudsmith usage example.
src/examples/authenticate-with-oidc.yml Add auth-only OIDC example (no CLI install required).
src/commands/publish.yml Mark publish command as deprecated and add migration guidance.
src/commands/install-cli.yml Implement zipapp-first CLI install with optional pip install and config.ini writing.
src/commands/ensure-api-key.yml Minor messaging/formatting update and add YAML document start.
src/commands/authenticate-with-oidc.yml Add retries, audience support, dependency checks, and improved curl handling.
src/@orb.yml Add orb metadata file (document start + description + display links).
src/@orb.yaml Remove prior orb metadata file (renamed to .yml).
README.md Rewrite README with command reference, executor docs, usage examples, and updated dev/release docs.
.yamllint Add yamllint configuration (including requiring YAML document start).
.circleci/config.yml Replace custom publish job with orb-tools lint/pack/review/publish workflows and dev/prod release filtering.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 13 out of 13 changed files in this pull request and generated 2 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@BartoszBlizniak BartoszBlizniak added documentation Improvements or additions to documentation enhancement New feature or request labels Apr 2, 2026
@BartoszBlizniak BartoszBlizniak self-assigned this Apr 2, 2026
@BartoszBlizniak BartoszBlizniak marked this pull request as draft April 2, 2026 08:36
@BartoszBlizniak BartoszBlizniak marked this pull request as ready for review April 2, 2026 10:13
Copy link
Copy Markdown
Member

@mrtam mrtam left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM Bart 🙌

@BartoszBlizniak BartoszBlizniak merged commit 52915b0 into cloudsmith-io:master Apr 6, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation enhancement New feature or request

Development

Successfully merging this pull request may close these issues.

3 participants