Some checks failed
Test Collection / Sanity Tests (Ansible devel) (push) Failing after 12s
Test Collection / Sanity Tests (Ansible stable-2.15) (push) Failing after 29s
Test Collection / Sanity Tests (Ansible stable-2.16) (push) Failing after 29s
Test Collection / Documentation Check (push) Successful in 7s
Test Collection / Unit Tests (push) Successful in 7s
Test Collection / Sanity Tests (Ansible stable-2.17) (push) Failing after 27s
Test Collection / Python Syntax Check (push) Successful in 6s
Test Collection / Build Collection (push) Failing after 8s
Test Collection / YAML and Ansible Lint (push) Successful in 11s
183 lines
4.7 KiB
YAML
183 lines
4.7 KiB
YAML
name: Test Collection
|
|
|
|
on:
|
|
push:
|
|
branches: [main, master, develop]
|
|
pull_request:
|
|
branches: [main, master, develop]
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
sanity:
|
|
name: Sanity Tests (Ansible ${{ matrix.ansible-version }})
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
ansible-version:
|
|
- stable-2.15
|
|
- stable-2.16
|
|
- stable-2.17
|
|
- devel
|
|
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v4
|
|
with:
|
|
path: ansible_collections/valid/nsupdate_zone
|
|
|
|
- name: Set up Python
|
|
uses: actions/setup-python@v5
|
|
with:
|
|
python-version: '3.11'
|
|
|
|
- name: Install Ansible
|
|
run: pip install https://github.com/ansible/ansible/archive/${{ matrix.ansible-version }}.tar.gz --disable-pip-version-check
|
|
|
|
- name: Install collection dependencies
|
|
run: pip install -r requirements.txt
|
|
working-directory: ansible_collections/valid/nsupdate_zone
|
|
|
|
- name: Run sanity tests
|
|
run: ansible-test sanity --docker -v --color
|
|
working-directory: ansible_collections/valid/nsupdate_zone
|
|
|
|
syntax:
|
|
name: Python Syntax Check
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Set up Python
|
|
uses: actions/setup-python@v5
|
|
with:
|
|
python-version: '3.11'
|
|
|
|
- name: Check Python syntax
|
|
run: |
|
|
python -m py_compile plugins/modules/nsupdate_zone.py
|
|
python -m py_compile plugins/module_utils/deps.py
|
|
echo "✓ All Python files have valid syntax"
|
|
|
|
build:
|
|
name: Build Collection
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Set up Python
|
|
uses: actions/setup-python@v5
|
|
with:
|
|
python-version: '3.11'
|
|
|
|
- name: Install Ansible
|
|
run: pip install ansible-core
|
|
|
|
- name: Build collection
|
|
run: ansible-galaxy collection build
|
|
|
|
- name: Verify tarball
|
|
run: |
|
|
if [ -f valid-nsupdate_zone-*.tar.gz ]; then
|
|
echo "✓ Collection built successfully"
|
|
ls -lh valid-nsupdate_zone-*.tar.gz
|
|
tar -tzf valid-nsupdate_zone-*.tar.gz | head -20
|
|
else
|
|
echo "✗ Collection build failed"
|
|
exit 1
|
|
fi
|
|
|
|
- name: Upload collection artifact
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: collection
|
|
path: valid-nsupdate_zone-*.tar.gz
|
|
retention-days: 7
|
|
|
|
lint:
|
|
name: YAML and Ansible Lint
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v4
|
|
with:
|
|
path: ansible_collections/valid/nsupdate_zone
|
|
|
|
- name: Set up Python
|
|
uses: actions/setup-python@v5
|
|
with:
|
|
python-version: '3.11'
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
pip install ansible-core ansible-lint yamllint
|
|
|
|
- name: Run yamllint
|
|
run: yamllint .
|
|
working-directory: ansible_collections/valid/nsupdate_zone
|
|
continue-on-error: true
|
|
|
|
- name: Run ansible-lint
|
|
run: ansible-lint
|
|
working-directory: ansible_collections/valid/nsupdate_zone
|
|
continue-on-error: true
|
|
|
|
documentation:
|
|
name: Documentation Check
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v4
|
|
with:
|
|
path: ansible_collections/valid/nsupdate_zone
|
|
|
|
- name: Set up Python
|
|
uses: actions/setup-python@v5
|
|
with:
|
|
python-version: '3.11'
|
|
|
|
- name: Install Ansible
|
|
run: pip install ansible-core
|
|
|
|
- name: Validate module documentation
|
|
run: |
|
|
ansible-doc valid.nsupdate_zone.nsupdate_zone
|
|
working-directory: ansible_collections/valid/nsupdate_zone
|
|
|
|
unit:
|
|
name: Unit Tests
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v4
|
|
with:
|
|
path: ansible_collections/valid/nsupdate_zone
|
|
|
|
- name: Set up Python
|
|
uses: actions/setup-python@v5
|
|
with:
|
|
python-version: '3.11'
|
|
|
|
- name: Install Ansible and dependencies
|
|
run: |
|
|
pip install ansible-core
|
|
pip install -r requirements.txt
|
|
working-directory: ansible_collections/valid/nsupdate_zone
|
|
|
|
- name: Run unit tests
|
|
run: |
|
|
if [ -d "tests/unit/plugins/modules" ] && [ "$(ls -A tests/unit/plugins/modules)" ]; then
|
|
ansible-test units --docker -v --color
|
|
else
|
|
echo "⚠ No unit tests found - skipping"
|
|
fi
|
|
working-directory: ansible_collections/valid/nsupdate_zone
|
|
continue-on-error: true
|