Skip to content

Commit

Permalink
Add a job to warn about modulesync changes
Browse files Browse the repository at this point in the history
01cfc20 added headers, but this isn't
really a good experience for users. It's actually much better to fail in
CI if a diff is detected. That gives them also a way to verify their
changes to .sync.yml are correct.

This takes the approach of checking out the modulesync config with the
version from .msync.yml and running a one off change in offline mode.
Then it uses git diff to see if there are differences. That should fail
the build and also show the actual differences, which makes debugging
easier.
  • Loading branch information
ekohl committed Jul 14, 2021
1 parent 8faa0b8 commit 03c07b1
Showing 1 changed file with 52 additions and 0 deletions.
52 changes: 52 additions & 0 deletions moduleroot/.github/workflows/modulesync.yml.erb
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
---
# Managed by modulesync - DO NOT EDIT
# https://voxpupuli.org/docs/updating-files-managed-with-modulesync/

name: Modulesync

on: pull_request

jobs:
compare_with_repo:
name: 'Compare with config'
runs-on: ubuntu-latest
steps:
- name: Checkout Puppet module repository
uses: actions/checkout@v2
with:
path: modules/${{ github.repository }}

- name: Setup ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: '3.0'

- name: Set modulesync version
run: ruby -ryaml -e 'puts "MSYNC_VER=#{YAML.safe_load(File.read(".msync.yml"))["modulesync_config_version"]}"' >> $GITHUB_ENV
working-directory: modules/${{ github.repository }}

- name: Checkout modulesync configuration repository
uses: actions/checkout@v2
with:
# TODO: is there a modulesync variable for this?
repository: voxpupuli/modulesync_config
ref: ${{ env.MSYNC_VER }}
path: msync_config

- name: Create a temporary managed modules file
run: echo "- $GITHUB_REPOSITORY" > msync_config/pr-managed-modules.yaml

- name: Setup ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: '3.0'
bundler-cache: true
working-directory: msync_config

- name: Run modulesync
run: bundle exec msync update --offline --managed-modules-conf=pr-managed-modules.yaml --project-root=../modules
working-directory: msync_config

- name: Check for differences
run: git diff --exit-code
working-directory: modules/${{ github.repository }}

0 comments on commit 03c07b1

Please sign in to comment.