Add sanity check on PRs #20
Workflow file for this run
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: Ansible Sanity Check | |
on: | |
pull_request: | |
jobs: | |
sanity: | |
name: Sanity Check | |
strategy: | |
matrix: | |
ansible: | |
# 2.9 fails due to https://github.com/ansible/ansible/issues/68819 | |
- stable-2.10 | |
- stable-2.15 | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
path: ${{ matrix.ansible }}/ansible_collections/redhatci/ocp | |
- name: Set up Python | |
uses: actions/setup-python@v3 | |
with: | |
python-version: 3.11 | |
- name: Install ansible-base ${{ matrix.ansible }} | |
run: pip install https://github.com/ansible/ansible/archive/${{ matrix.ansible }}.tar.gz --disable-pip-version-check | |
# Fail when new errors appear | |
- name: Run sanity test | |
run: | | |
set -ex | |
git checkout -b branch | |
git fetch --unshallow origin main | |
git config user.name 'Fake' && git config user.email 'fake@localhost' | |
git merge origin/main --no-edit | |
cmd="ansible-test sanity --verbose --color --docker --coverage --failure-ok" | |
$cmd 2>&1 | tee branch.output | |
git checkout main | |
$cmd > main.output 2>&1 | |
for key in branch main; do | |
grep -E "(ERROR|FATAL):" "$key.output" | \ | |
grep -v "issue(s) which need to be resolved\|See error output above for details." > "$key.errors" | |
done | |
set +x | |
echo "============================================================" | |
if diff -u main.errors branch.errors|grep '^+'; then | |
echo "Fix the regressions listed above (starting with a '+')" | |
exit 1 | |
fi | |
working-directory: ${{ matrix.ansible }}/ansible_collections/redhatci/ocp |