From 51650da2723f04adaed139a713dc841036bd66e5 Mon Sep 17 00:00:00 2001 From: Robert de Bock Date: Wed, 24 Jul 2024 08:44:07 +0200 Subject: [PATCH] Test maintained versions of ansible-core. --- .ansible-lint | 1 + .github/workflows/molecule.yml | 58 ++++++++++++++++++++++++++++------ .gitlab-ci.yml | 17 ++++++++-- meta/preferences.yml | 7 ++++ requirements.txt | 8 ++--- tox.ini | 48 ++++++++++++++++++++++++++++ 6 files changed, 121 insertions(+), 18 deletions(-) create mode 100644 meta/preferences.yml create mode 100644 tox.ini diff --git a/.ansible-lint b/.ansible-lint index 8115c55..f179ac0 100644 --- a/.ansible-lint +++ b/.ansible-lint @@ -3,6 +3,7 @@ # Ansible managed # exclude_paths: + - meta/preferences.yml - molecule/default/prepare.yml - molecule/default/converge.yml - molecule/default/verify.yml diff --git a/.github/workflows/molecule.yml b/.github/workflows/molecule.yml index bfecc23..0b33841 100644 --- a/.github/workflows/molecule.yml +++ b/.github/workflows/molecule.yml @@ -21,10 +21,13 @@ jobs: uses: actions/checkout@v4 - name: ansible-lint uses: ansible-community/ansible-lint-action@main - test: + + python-3-9: needs: - lint runs-on: ubuntu-20.04 + container: + image: python:3.9 strategy: fail-fast: false matrix: @@ -49,18 +52,53 @@ jobs: - name: checkout uses: actions/checkout@v4 - - name: Set up Python 3. - uses: actions/setup-python@v5 - with: - python-version: '3.x' - - - name: Install dependencies + - name: molecule run: | - python -m pip install --upgrade pip - pip install -r requirements.txt + apt-get update -qq + apt-get -y -qq install yamllint docker.io + pip install --no-cache-dir tox + if [ -f tox.ini ] ; then tox ; fi + if [ ! -f tox.ini ] ; then pip install -r requirements.yml ; pip install ansible-lint ansible-core ; molecule test ; fi + env: + image: ${{ matrix.config.image }} + tag: ${{ matrix.config.tag }} + python-3-10: + needs: + - lint + runs-on: ubuntu-20.04 + container: + image: python:3.10 + strategy: + fail-fast: false + matrix: + config: + - image: "enterpriselinux" + tag: "latest" + - image: "debian" + tag: "latest" + - image: "debian" + tag: "bullseye" + - image: "fedora" + tag: "39" + - image: "fedora" + tag: "latest" + - image: "fedora" + tag: "rawhide" + - image: "ubuntu" + tag: "jammy" + - image: "ubuntu" + tag: "focal" + steps: + - name: checkout + uses: actions/checkout@v4 - name: molecule - run: molecule converge + run: | + apt-get update -qq + apt-get -y -qq install yamllint docker.io + pip install --no-cache-dir tox + if [ -f tox.ini ] ; then tox ; fi + if [ ! -f tox.ini ] ; then pip install -r requirements.yml ; pip install ansible-lint ansible-core ; molecule test ; fi env: image: ${{ matrix.config.image }} tag: ${{ matrix.config.tag }} diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 73bf5b8..e220f3f 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,33 +1,44 @@ --- -image: "robertdebock/github-action-molecule:6.0.1" variables: - PY_COLORS: 1 + DEBIAN_FRONTEND: noninteractive molecule: + image: $python script: + - apt-get update -qq + - apt-get -y -qq install yamllint docker.io + - pip install --no-cache-dir tox - if [ -f tox.ini ] ; then tox ; fi - - if [ ! -f tox.ini ] ; then molecule test ; fi + - if [ ! -f tox.ini ] ; then pip install -r requirements.yml ; pip install ansible-lint ansible-core ; molecule test ; fi rules: - if: $CI_COMMIT_REF_NAME == "master" parallel: matrix: - image: "enterpriselinux" tag: "latest" + python: ['python:3.9', 'python:3.10'] - image: "debian" tag: "latest" + python: ['python:3.9', 'python:3.10'] - image: "debian" tag: "bullseye" + python: ['python:3.9', 'python:3.10'] - image: "fedora" tag: "39" + python: ['python:3.9', 'python:3.10'] - image: "fedora" tag: "latest" + python: ['python:3.9', 'python:3.10'] - image: "fedora" tag: "rawhide" + python: ['python:3.9', 'python:3.10'] - image: "ubuntu" tag: "jammy" + python: ['python:3.9', 'python:3.10'] - image: "ubuntu" tag: "focal" + python: ['python:3.9', 'python:3.10'] galaxy: script: diff --git a/meta/preferences.yml b/meta/preferences.yml new file mode 100644 index 0000000..45cf879 --- /dev/null +++ b/meta/preferences.yml @@ -0,0 +1,7 @@ +--- + +matrix_overrides: + amazonlinux: + python: + - python:3.9 + - python:3.10 diff --git a/requirements.txt b/requirements.txt index 4d7adb3..e377941 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,3 @@ -ansible-compat == 24.* -molecule == 24.* -molecule-plugins[docker] == 23.* -ansible-lint == 24.* -paramiko == 3.* +molecule +molecule-plugins[docker] +paramiko diff --git a/tox.ini b/tox.ini new file mode 100644 index 0000000..ed6d0aa --- /dev/null +++ b/tox.ini @@ -0,0 +1,48 @@ +[tox] +envlist = ansible-2.{15,16,17} +skipsdist = true + +[testenv] +commands = molecule test + +setenv = + TOX_ENVNAME={envname} + PY_COLORS=1 + ANSIBLE_FORCE_COLOR=1 + ANSIBLE_ROLES_PATH=../ + +passenv = namespace, image, tag, DOCKER_HOST + +# Test supported releases of ansible-core. See: +# https://docs.ansible.com/ansible/latest/reference_appendices/release_and_maintenance.html#ansible-core-support-matrix + +[testenv:ansible-2.15] +basepython = python3.9 +deps = + -rrequirements.txt + ansible-core==2.15.* + ansible-lint==6.* + +[testenv:ansible-2.16] +basepython = python3.10 +deps = + -rrequirements.txt + ansible-core==2.16.* + ansible-lint==24.* + +[testenv:ansible-2.17] +basepython = python3.10 +deps = + -rrequirements.txt + ansible-core==2.17.* + ansible-lint==24.* + +# Future work, not releases, just prepared. See: +# https://docs.ansible.com/ansible/devel//roadmap/ROADMAP_2_18.html +# Note: enable python3.13 in `vars/main.yml` as well. +# [testenv:ansible-2.18] +# basepython = python3.13 +# deps = +# -rrequirements.txt +# ansible-core==2.18.* +# ansible-lint==24.*