Skip to content

Module Release

Module Release #18

Workflow file for this run

# This is a generic workflow for releasing a Puppet module.
# It requires that the caller sets `secrets: inherit` to ensure
# that secrets are visible from steps in this workflow.
name: "Module Release"
on:
workflow_dispatch:
jobs:
release:
name: "Release"
runs-on: "ubuntu-latest"
steps:
- name: "Set up Ruby"
uses: "actions/setup-ruby@v1"
with:
ruby-version: "3.1"
- name: "Checkout"
uses: "actions/checkout@v4"
with:
ref: "${{ github.ref }}"
clean: true
fetch-depth: 0
- name: "Get version"
id: "get_version"
run: |
require 'json'
# Read metadata.json
version = JSON.parse(File.read('metadata.json'))['version']
# Version string matching regex
semver_regex = /\A(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-([0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?(?:\+([0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?\z/
if version&.match?(semver_regex)
`echo "version=#{version}" >> $GITHUB_OUTPUT`
else
raise "Version #{version} is invalid. Exiting workflow."
end
- name: "print version"
run: |
echo ${{ steps.get_version.outputs.version }}