This GitHub Action installs the Cloudsmith CLI and pre-authenticates it using OIDC or API Key. 🚀
⚠️ Notice: If you are running on self-hosted runners, Python version 3.9 or higher is required. Please ensure your runner meets this requirement to avoid any issues. We recommend using setup-python action for installing Python. 🐍
- cli-version(action.yml): A specific version of the Cloudsmith CLI to install (optional). 📦
- api-key(action.yml): API Key for Cloudsmith (optional). 🔑
- oidc-namespace(action.yml): Cloudsmith organisation/namespace for OIDC (optional). 🌐
- oidc-service-slug(action.yml): Cloudsmith service account slug for OIDC (optional). 🐌
- oidc-auth-only(action.yml): Only perform OIDC authentication without installing the CLI (optional, default: false). 🔐
- oidc-auth-retry(action.yml): Number of retry attempts for OIDC authentication (0-10), 5 seconds delay between retries (optional, default: 3). 🔄
- oidc-audience(action.yml): Audience to request when retrieving the GitHub OIDC token. Defaults to- api://AzureADTokenExchangefor backward compatibility. Set to- https://github.com/<org-name>(e.g.- https://github.com/cloudsmith-io) to use the standard GitHub audience. 🎯
- pip-install(action.yml): Install the Cloudsmith CLI via pip (optional). 🐍
- executable-path(action.yml): Path to the Cloudsmith CLI executable (optional, default:- GITHUB_WORKSPACE/bin/). 🛠️
CLI Configuration Inputs (documentation)
- api-host: API Host for Cloudsmith (optional). 🌐
- api-proxy: API Proxy for Cloudsmith (optional). 🔗
- api-ssl-verify: Verify SSL certificates for Cloudsmith API (optional). 🔒
- api-user-agent: User Agent for Cloudsmith API (optional). 🕵️♂️
Cloudsmith OIDC documentation 📚
uses: cloudsmith-io/cloudsmith-cli-action@v1
with:
  oidc-namespace: 'your-oidc-namespace'
  oidc-service-slug: 'your-service-account-slug'Personal API Key can be found here. For CI-CD deployments we recommend using Service Accounts. 🔒
uses: cloudsmith-io/cloudsmith-cli-action@v1
with:
  api-key: 'your-api-key'If you only need to authenticate with Cloudsmith's API without installing the CLI:
uses: cloudsmith-io/cloudsmith-cli-action@v1
with:
  oidc-namespace: 'your-oidc-namespace'
  oidc-service-slug: 'your-service-account-slug'
  oidc-auth-only: 'true'This will:
- Perform OIDC authentication
- Set the OIDC token as CLOUDSMITH_API_KEYenvironment variable
- Skip CLI installation
Full CLI feature list can be found here 📖
For all supported package formats and upload commands please visit our Supported Formats page. 📦
name: Publish Python Package
on:
  push:
    branches:
      - main
permissions:
  id-token: write
  contents: read
jobs:
  publish:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v4
      - name: Install Cloudsmith CLI
        uses: cloudsmith-io/cloudsmith-cli-action@v1
        with:
          oidc-namespace: 'your-oidc-namespace'
          oidc-service-slug: 'your-service-account-slug'
      - name: Push package to Cloudsmith
        run: |
          cloudsmith push python your-namespace/your-repository dist/*.tar.gzPlease check our CONTRIBUTION doc for more information. 🤝
This project is licensed under the MIT License - see the LICENSE file for details. 📄
If you have any questions or need further assistance, please open an issue on GitHub. We're here to help! 💬 Alternatively, you can contact us at support.cloudsmith.com.