Skip to content

Remove stable-2.9 and stable-2.13 support and add stable-2.16 support. #8

Remove stable-2.9 and stable-2.13 support and add stable-2.16 support.

Remove stable-2.9 and stable-2.13 support and add stable-2.16 support. #8

Workflow file for this run

name: Sanity tests
on:
workflow_call:
inputs:
collection_pre_install:
required: false
type: string
default: ""
matrix_exclude:
# https://docs.ansible.com/ansible/latest/reference_appendices/release_and_maintenance.html#ansible-core-support-matrix
# 2.14 supports Python 3.9-3.11
# 2.15 supports Python 3.9-3.11
# 2.16 supports Python 3.10-3.12
# https://docs.ansible.com/ansible/devel/roadmap/ROADMAP_2_17.html
# milestone is 2.17 until after 2.17 branches from devel
# devel is 2.17 until 2024-04-01
default: >-
[
{
"ansible-version": "stable-2.14",
"python-version": "3.12"
},
{
"ansible-version": "stable-2.15",
"python-version": "3.12"
},
{
"ansible-version": "stable-2.16",
"python-version": "3.9"
},
{
"ansible-version": "milestone",
"python-version": "3.9"
},
{
"ansible-version": "devel",
"python-version": "3.9"
}
]
required: false
type: string
matrix_include:
default: []
required: false
type: string
unstable:
default: >-
[
"devel",
]
required: false
type: string
jobs:
sanity:
env:
PY_COLORS: "1"
source_directory: "./source"
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
ansible-version:
- stable-2.14
- stable-2.15
- stable-2.16
- milestone
- devel
python-version:
- "3.9"
- "3.10"
- "3.11"
- "3.12"
exclude: ${{ fromJSON(inputs.matrix_exclude) }}
include: ${{ fromJSON(inputs.matrix_include) }}
runs-on: ${{ matrix.os }}
continue-on-error: ${{ contains(fromJSON(inputs.unstable), matrix.ansible-version) }}
name: "py${{ matrix.python-version }} / ${{ matrix.os }} / ${{ matrix.ansible-version }}"
steps:
- name: Checkout the collection repository
uses: ansible-network/github_actions/.github/actions/checkout_dependency@main
with:
path: ${{ env.source_directory }}
ref: ${{ github.event.pull_request.head.sha }}
fetch-depth: "0"
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install ansible-core (${{ matrix.ansible-version }})
run: python3 -m pip install https://github.com/ansible/ansible/archive/${{ matrix.ansible-version }}.tar.gz --disable-pip-version-check
- name: Pre install collections dependencies first so the collection install does not
run: ansible-galaxy collection install --pre ${{ inputs.collection_pre_install }} -p /home/runner/collections/
if: ${{ inputs.collection_pre_install != '' && matrix.ansible-version != 'stable-2.9' }}
- name: Read collection metadata from galaxy.yml
id: identify
uses: ansible-network/github_actions/.github/actions/identify_collection@main
with:
source_path: ${{ env.source_directory }}
- name: Build and install the collection
uses: ansible-network/github_actions/.github/actions/build_install_collection@main
with:
install_python_dependencies: false
source_path: ${{ env.source_directory }}
collection_path: ${{ steps.identify.outputs.collection_path }}
tar_file: ${{ steps.identify.outputs.tar_file }}
ansible_version: ${{ matrix.ansible-version }}
- name: Print the ansible version
run: ansible --version
- name: Print the python dependencies
run: python3 -m pip list
- name: Run sanity tests
run: ansible-test sanity --requirements --color --python ${{ matrix.python-version }}
working-directory: ${{ steps.identify.outputs.collection_path }}