Skip to content

Restore gated release pipeline and adopt RubyGems trusted publishing action#47

Draft
Copilot wants to merge 25 commits into
masterfrom
copilot/create-release-pipeline
Draft

Restore gated release pipeline and adopt RubyGems trusted publishing action#47
Copilot wants to merge 25 commits into
masterfrom
copilot/create-release-pipeline

Conversation

Copy link
Copy Markdown

Copilot AI commented Nov 5, 2025

The release workflow had been simplified in a way that removed core safeguards and outputs: tag/version validation, test/build gating, and GitHub release publishing. This change restores the full release pipeline and updates RubyGems publication to use the official rubygems/release-gem trusted publishing flow.

  • Release pipeline restored

    • Reintroduced validate, test, build, release-rubygems, and release-github jobs.
    • Re-established job dependencies so publishing is gated by validation, tests, and artifact build.
  • Version safety checks reinstated

    • Restored extraction of version from refs/tags/v*.
    • Restored strict check that git tag version matches Cyclonedx::Ruby::VERSION.
    • Restored prerelease detection output for downstream release behavior.
  • RubyGems release modernized (official pattern)

    • release-rubygems now uses rubygems/release-gem@v1.
    • Uses trusted publishing permissions (id-token: write) and release environment.
    • Uses actions/checkout@v5 with persist-credentials: false and ruby/setup-ruby@v1.
  • GitHub release behavior restored and hardened

    • Restored release asset publishing via gh release create.
    • Artifact download path is now explicit and asset discovery is deterministic.
    • Added guard to require exactly one .gem and one .sha512 before creating the GitHub release.
release-rubygems:
  needs: [validate, build]
  permissions:
    contents: write
    id-token: write
  environment: release
  steps:
    - uses: actions/checkout@v5
      with:
        persist-credentials: false
    - uses: ruby/setup-ruby@v1
      with:
        bundler-cache: true
        ruby-version: ruby
    - uses: rubygems/release-gem@v1
Original prompt

This section details on the original issue you should resolve

<issue_title>chore: create a release pipeline</issue_title>
<issue_description>goal: have a working, state-of-the-art pipeline for building and releasing this package to rubygems.

Requirements:

  • supports prereleases
  • tags releases in git

optional:

  • have releases on github with the build results as release artifacts.
    </issue_description>

Comments on the Issue (you are @copilot in this section)


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

Copilot AI and others added 3 commits November 5, 2025 12:11
Co-authored-by: jkowalleck <2765863+jkowalleck@users.noreply.github.com>
Co-authored-by: jkowalleck <2765863+jkowalleck@users.noreply.github.com>
Co-authored-by: jkowalleck <2765863+jkowalleck@users.noreply.github.com>
Copilot AI changed the title [WIP] Create a release pipeline for Rubygems package Add automated release pipeline with prerelease support Nov 5, 2025
Copilot AI requested a review from jkowalleck November 5, 2025 12:24
Co-authored-by: jkowalleck <2765863+jkowalleck@users.noreply.github.com>
Comment thread .github/workflows/release.yml Fixed
Comment thread .github/workflows/release.yml Outdated
- 'v*'

# see https://docs.github.com/en/actions/how-tos/writing-workflows/choosing-what-your-workflow-does/controlling-permissions-for-github_token
permissions:

This comment was marked as resolved.

Comment thread .github/workflows/release.yml Outdated
Comment thread .github/workflows/release.yml
Co-authored-by: jkowalleck <2765863+jkowalleck@users.noreply.github.com>
Comment thread .github/workflows/release.yml
Comment thread .github/workflows/release.yml
Comment thread .github/workflows/release.yml
Comment thread .github/workflows/release.yml Outdated
Co-authored-by: jkowalleck <2765863+jkowalleck@users.noreply.github.com>
Comment thread .github/workflows/release.yml Outdated
Comment thread .github/workflows/release.yml Outdated
Comment thread .github/workflows/release.yml Outdated
jkowalleck and others added 3 commits December 4, 2025 09:17
Co-authored-by: Olle Jonsson <olle.jonsson@gmail.com>
Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com>
Co-authored-by: Olle Jonsson <olle.jonsson@gmail.com>
Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com>
Co-authored-by: Olle Jonsson <olle.jonsson@gmail.com>
Signed-off-by: Jan Kowalleck <jan.kowalleck@gmail.com>
Copilot AI changed the title Stop tracking Gemfile.lock and enforce ignore behavior Enable RubyGems trusted publishing and remove tracked Gemfile.lock May 30, 2026
Copilot AI changed the title Enable RubyGems trusted publishing and remove tracked Gemfile.lock Align release pipeline with RubyGems trusted publishing and gate GitHub release on gem publish May 30, 2026
Copilot AI changed the title Align release pipeline with RubyGems trusted publishing and gate GitHub release on gem publish Align release gating on RubyGems publish and replace maintainer manual release docs with automated flow May 30, 2026
Copilot AI changed the title Align release gating on RubyGems publish and replace maintainer manual release docs with automated flow Align gem release workflow with RubyGems trusted publishing May 30, 2026
Copilot AI changed the title Align gem release workflow with RubyGems trusted publishing Restore gated release pipeline and adopt RubyGems trusted publishing action May 30, 2026
@extern-c
Copy link
Copy Markdown
Contributor

@extern-c this PR is not intended to become merged soon. It is just a show-case of how AI thinks this ticket #46 might be resolved. I'd rather prefer a human-written workflow for this

Hi @jkowalleck ,

That makes sense. I see that you've assigned #59 to yourself. Please let me know if you need any help with the implementation or review. I'd be happy to assist.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

chore: create a release pipeline

5 participants