Skip to content

CI

CI #1004

Workflow file for this run

---
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"
]