Add pre-commit script and job for syncing scripts to ansible playbooks #6
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Check Script and Playbook Updates | |
on: | |
pull_request: | |
paths: | |
- 'scripts/**' | |
jobs: | |
check-updates: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- name: Check if scripts/ were updated without corresponding updates in playbooks/ | |
run: | | |
#!/bin/bash | |
BASE_COMMIT=${{ github.event.pull_request.base.sha }} | |
HEAD_COMMIT=${{ github.event.pull_request.head.sha }} | |
changed_files=$(git diff --name-only "$BASE_COMMIT" "$HEAD_COMMIT") | |
# Check if any files in scripts/ were updated (excluding wrap_scripts_in_yaml.py) | |
scripts_updated=$(echo "$changed_files" | grep -v 'wrap_scripts_in_yaml.py' | grep 'scripts/') | |
# Check if any files in playbooks/ were updated | |
playbooks_updated=$(echo "$changed_files" | grep 'playbooks/') | |
if [[ -n "$scripts_updated" && -z "$playbooks_updated" ]]; then | |
echo "Files in scripts/ were updated without corresponding updates in playbooks/" | |
exit 1 | |
fi | |
echo "Check passed" |