CI #987
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: CI | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | |
cancel-in-progress: true | |
# yamllint disable-line rule:truthy | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
workflow_dispatch: | |
# Run CI once per day (at 06:00 UTC) | |
# This ensures that even if there haven't been commits that we are still | |
# testing against latest version of ansible-test for each ansible-base version | |
schedule: | |
- cron: "0 6 * * *" | |
jobs: | |
check-tree-clean: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check out code | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: 3.x | |
cache: pip | |
- name: Install tox | |
run: | | |
python -m pip install --upgrade pip | |
pip install tox | |
- name: Run make format | |
run: | | |
make format | |
- name: Check if tree is clean | |
run: | | |
if [ -n "$(git status --porcelain)" ]; then | |
echo "There are uncommitted changes!" | |
exit 1 | |
fi | |
linter: | |
runs-on: ubuntu-latest | |
env: | |
collection_dir: ansible_collections/kubevirt/core | |
steps: | |
- name: Check out code | |
uses: actions/checkout@v4 | |
with: | |
path: ${{ env.collection_dir }} | |
fetch-depth: 0 | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: 3.x | |
cache: pip | |
- name: Install yamllint, ansible, shellcheck | |
run: | | |
python -m pip install --upgrade pip | |
pip install yamllint ansible-core ansible-lint | |
sudo apt install -y shellcheck | |
- name: Run yamllint | |
run: | | |
yamllint . | |
working-directory: ${{ env.collection_dir }} | |
- name: Run ansible-lint | |
run: | | |
ansible-lint --version | |
ansible-lint -v | |
working-directory: ${{ env.collection_dir }} | |
- name: Run shellcheck | |
run: | | |
find . -type f -iname '*.sh' -exec shellcheck {} \; | |
working-directory: ${{ env.collection_dir }} | |
needs: | |
- check-tree-clean | |
sanity: | |
uses: ansible-network/github_actions/.github/workflows/sanity.yml@main | |
needs: | |
- linter | |
with: | |
matrix_exclude: >- | |
[ | |
{ | |
"ansible-version": "stable-2.15", | |
"python-version": "3.12" | |
}, | |
{ | |
"ansible-version": "stable-2.15", | |
"python-version": "3.13" | |
}, | |
{ | |
"ansible-version": "stable-2.16", | |
"python-version": "3.9" | |
}, | |
{ | |
"ansible-version": "stable-2.16", | |
"python-version": "3.13" | |
}, | |
{ | |
"ansible-version": "stable-2.17", | |
"python-version": "3.9" | |
}, | |
{ | |
"ansible-version": "stable-2.17", | |
"python-version": "3.13" | |
}, | |
{ | |
"ansible-version": "stable-2.18", | |
"python-version": "3.9" | |
}, | |
{ | |
"ansible-version": "stable-2.18", | |
"python-version": "3.10" | |
}, | |
{ | |
"ansible-version": "milestone", | |
"python-version": "3.9" | |
}, | |
{ | |
"ansible-version": "milestone", | |
"python-version": "3.10" | |
}, | |
{ | |
"ansible-version": "devel", | |
"python-version": "3.9" | |
}, | |
{ | |
"ansible-version": "devel", | |
"python-version": "3.10" | |
} | |
] | |
unit-source: | |
uses: ansible-network/github_actions/.github/workflows/unit_source.yml@main | |
needs: | |
- linter | |
with: | |
matrix_exclude: >- | |
[ | |
{ | |
"ansible-version": "stable-2.15", | |
"python-version": "3.12" | |
}, | |
{ | |
"ansible-version": "stable-2.15", | |
"python-version": "3.13" | |
}, | |
{ | |
"ansible-version": "stable-2.16", | |
"python-version": "3.9" | |
}, | |
{ | |
"ansible-version": "stable-2.16", | |
"python-version": "3.13" | |
}, | |
{ | |
"ansible-version": "stable-2.17", | |
"python-version": "3.9" | |
}, | |
{ | |
"ansible-version": "stable-2.17", | |
"python-version": "3.13" | |
}, | |
{ | |
"ansible-version": "stable-2.18", | |
"python-version": "3.9" | |
}, | |
{ | |
"ansible-version": "stable-2.18", | |
"python-version": "3.10" | |
}, | |
{ | |
"ansible-version": "milestone", | |
"python-version": "3.9" | |
}, | |
{ | |
"ansible-version": "milestone", | |
"python-version": "3.10" | |
}, | |
{ | |
"ansible-version": "devel", | |
"python-version": "3.9" | |
}, | |
{ | |
"ansible-version": "devel", | |
"python-version": "3.10" | |
} | |
] | |
integration: | |
uses: ./.github/workflows/integration.yml | |
needs: | |
- linter | |
with: | |
ansible_test_targets: >- | |
[ | |
"kubevirt_vm", | |
"kubevirt_vm_info", | |
"kubevirt_vmi_info", | |
"inventory_kubevirt" | |
] |