Skip to content

ci: Add Chocolatey and Winget publish workflows #29

Description

@rianjs

Summary

Add GitHub Actions workflows for publishing to Chocolatey and Winget package managers, following the established patterns in google-readonly and atlassian-cli.

Files to Create

Publish Workflows

  • .github/workflows/chocolatey-publish.yml - Manual workflow to publish to Chocolatey
  • .github/workflows/winget-publish.yml - Manual workflow to publish to Winget

Test Workflows

  • .github/workflows/test-chocolatey.yml - CI workflow to validate Chocolatey packaging on PR/push
  • .github/workflows/test-winget.yml - CI workflow to validate Winget manifests on PR/push

Implementation Notes

Reference implementations:

  • google-readonly/.github/workflows/chocolatey-publish.yml
  • google-readonly/.github/workflows/winget-publish.yml
  • google-readonly/.github/workflows/test-chocolatey.yml
  • google-readonly/.github/workflows/test-winget.yml

Key patterns:

  • Publish workflows are workflow_dispatch triggered with version input
  • Test workflows trigger on packaging/** path changes
  • Chocolatey uses choco pack and choco push
  • Winget uses wingetcreate to submit to microsoft/winget-pkgs

Required Secrets

  • CHOCOLATEY_API_KEY - API key for pushing to chocolatey.org
  • WINGET_GITHUB_TOKEN - GitHub PAT for creating PRs to winget-pkgs

Existing Files

The packaging structure already exists:

  • packaging/chocolatey/hubspot-cli.nuspec
  • packaging/chocolatey/tools/
  • packaging/winget/OpenCLICollective.hubspot-cli.yaml
  • packaging/winget/OpenCLICollective.hubspot-cli.installer.yaml
  • packaging/winget/OpenCLICollective.hubspot-cli.locale.en-US.yaml

Effort

Low-Medium - Copy and adapt from google-readonly

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions