Skip to content

(MODULES-11700) module_ci: source Puppet 9 gem over Twingate for the spec lane#182

Open
imaqsood wants to merge 1 commit into
mainfrom
MODULES-11700-puppet9-gem-source
Open

(MODULES-11700) module_ci: source Puppet 9 gem over Twingate for the spec lane#182
imaqsood wants to merge 1 commit into
mainfrom
MODULES-11700-puppet9-gem-source

Conversation

@imaqsood

Copy link
Copy Markdown
Contributor

What

Wire the reusable module_ci spec job so the Puppet 9 (8.99.x prerelease) lane can resolve its gem from the internal Artifactory:

  • Pass PUPPET_GEM_SOURCE and TWINGATE_PUBLIC_REPO_KEY (from the calling repo's secrets) into the spec job env. The consuming module's Gemfile reads PUPPET_GEM_SOURCE to fetch the 8.99.x prerelease.
  • Add an Install Twingate step + a Fix DNS step so the runner can reach artifactory.delivery.puppetlabs.net.

Why

Puppet 9 prereleases aren't on the public/puppetcore feeds yet — they live in an internal Artifactory reachable only over Twingate. This lets the Puppet 9 spec lane build against them.

Safety / blast radius

Both new steps are gated on matrix.puppet_version == '~> 9.0' and env.TWINGATE_PUBLIC_REPO_KEY != '':

  • Puppet 7/8 spec runs are completely unaffected (steps skipped).
  • Repos that don't set the TWINGATE_PUBLIC_REPO_KEY / PUPPET_GEM_SOURCE secrets are unaffected — PUPPET_GEM_SOURCE is empty and the module Gemfile falls back to puppetcore.

Context

Unblocks the Puppet 9 support work in puppetlabs-apache (MODULES-11700), which currently pins its ci.yml Spec job at this branch.

🤖 Generated with Claude Code

…Puppet 9 spec lane

Lets the Puppet 9 (8.99.x) spec lane fetch its gem from the internal rubygems
repo: pass PUPPET_GEM_SOURCE (inherited from the caller's secret) into the spec
job env so the module Gemfile can source it, and add the existing Twingate setup
gated to the puppet9 lane + key presence so Puppet 7/8 lanes and repos without the
key are unaffected.

Co-Authored-By: Claude <noreply@anthropic.com>

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Updates the reusable module_ci.yml workflow so the Puppet 9 spec-test lane can reach an internal Artifactory (via Twingate) to install the Puppet prerelease gem when a calling repository provides the necessary secrets.

Changes:

  • Adds PUPPET_GEM_SOURCE and TWINGATE_PUBLIC_REPO_KEY environment variables to the spec job (sourced from caller secrets).
  • Adds Twingate installation and DNS reconfiguration steps, gated to the Puppet 9 matrix lane and key presence.

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

Comment on lines +104 to +108
# Puppet 9 (8.99.x) prereleases live in an internal rubygems repo; the module Gemfile
# reads PUPPET_GEM_SOURCE to fetch them. Inherited from the calling repo's secret; empty
# for repos that don't set it, in which case the Gemfile falls back to puppetcore.
PUPPET_GEM_SOURCE: ${{ secrets.PUPPET_GEM_SOURCE }}
TWINGATE_PUBLIC_REPO_KEY: ${{ secrets.TWINGATE_PUBLIC_REPO_KEY }}
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.

3 participants