Skip to content

revert an accidential change #843

revert an accidential change

revert an accidential change #843

Workflow file for this run

# Copyright (c) 2020-2022 Markus Falb <markus.falb@mafalb.at>
# GNU General Public License v3.0+
# see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt
---
name: CI
on: # yamllint disable-line rule:truthy
push:
branches:
- '**'
tags-ignore:
- '*'
schedule:
- cron: '40 12 * * 6'
jobs:
ansible-test:
# don't run on pull request from ourselves
if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository
runs-on: ubuntu-22.04
strategy:
fail-fast: false
matrix:
include:
- ansible_version: '2.12'
python_version: '3.9'
- ansible_version: '2.12'
python_version: '3.10'
- ansible_version: '2.14'
python_version: '3.9'
- ansible_version: '2.14'
python_version: '3.10'
- ansible_version: '2.14'
python_version: '3.11'
- ansible_version: '2.15'
python_version: '3.9'
- ansible_version: '2.15'
python_version: '3.10'
- ansible_version: '2.15'
python_version: '3.11'
- ansible_version: '2.16'
python_version: '3.10'
- ansible_version: '2.16'
python_version: '3.11'
# not working for now
#
#- ansible_version: '2.16'
# python_version: '3.12'
env:
PY_COLORS: 1
ANSIBLE_FORCE_COLOR: 1
# necessary ?
ANSIBLE_PYTHON_INTERPRETER: python${{ matrix.python_version }}
defaults:
run:
working-directory: ansible_collections/mafalb/ansible
steps:
- name: setup python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python_version }}
- name: checkout collection mafalb.ansible
uses: actions/checkout@v3
with:
path: ansible_collections/mafalb/ansible
- name: install ansible
run: |
ansible-playbook -D playbooks/install-ansible.yml -e '{"virtualenv_packages":["_ansible==${{ matrix.ansible_version }}", "ansible-lint${{ matrix.ansible_lint_specifier }}", "_ansible_test", "flake8"]}' -e virtualenv_interpreter=python${{ matrix.python_version }} -t all,debug
env:
ANSIBLE_COLLECTIONS_PATHS: ../../..
- name: install shellcheck
run: sudo apt-get install shellcheck
- name: check ansible version
run: |
source ~/.virtualenvs/ansible/bin/activate
ansible --version
ansible --version | grep "^ansible.* ${{ matrix.ansible_version }}"
- name: check python version
run: |
source ~/.virtualenvs/ansible/bin/activate
ansible --version | grep "^\s*python.* ${{ matrix.python_version }}"
- name: lint
run: |
source ~/.virtualenvs/ansible/bin/activate
if ansible-lint --version --nocolor|grep "^ansible-lint 6.8.6"
then
ANSIBLE_LINT_VERSION=686
ANSIBLE_COLLECTIONS_PATHS=../../..
elif ansible-lint --version|grep "^ansible-lint 4"
then
ANSIBLE_LINT_VERSION=4
fi
. tests/lint.sh requirements ${{ matrix.python_version }}
- name: sanity
run: |
source ~/.virtualenvs/ansible/bin/activate
if test "${{ matrix.ansible_version }}" = "2.12"
then
# I dont know how to set collections path for ansible-doc
# so i skip ansible-doc test
#
ansible-test sanity --skip-test ansible-doc --requirements --python ${{ matrix.python_version }}
else
ansible-test sanity --requirements --python ${{ matrix.python_version }}
fi
- name: unit tests
run: |
source ~/.virtualenvs/ansible/bin/activate
ansible-test units --coverage --requirements --python ${{ matrix.python_version }}
- name: integration tests
run: |
source ~/.virtualenvs/ansible/bin/activate
ansible-test integration --requirements --python ${{ matrix.python_version }}
controlnode:
# don't run on pull request from ourselves
if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository
runs-on: ubuntu-22.04
needs:
- ansible-test
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu22
ansible_version: '2.12'
- os: alma9
ansible_version: '2.14'
- os: rocky9
ansible_version: '2.14'
- os: debian12
ansible_version: '2.14'
- os: fedora39
ansible_version: '2.16'
env:
ANSIBLE_VERSION: ${{ matrix.ansible_version }}
CI_IMAGE: ${{ matrix.image }}
CI_HOSTNAME: ci-${{ matrix.os }}
CI_DRIVER: podman
PY_COLORS: 1
ANSIBLE_FORCE_COLOR: 1
defaults:
run:
working-directory: ansible_collections/mafalb/ansible
steps:
- name: checkout collection ansible
uses: actions/checkout@v3
with:
path: ansible_collections/mafalb/ansible
- name: install molecule
run: ansible-playbook -e ansible_python_interpreter=python3 -D playbooks/install-molecule.yml -t all,debug -e molecule_ansible_version=${{ matrix.ansible_version }}
env:
ANSIBLE_COLLECTIONS_PATHS: '../../..'
# why?
#
- name: install community.docker
if: false
run: |
source ~/.virtualenvs/molecule/bin/activate
ansible-galaxy collection install community.docker
# necessary for molecule and for mafalb.ansible
ansible-galaxy collection install community.general
- name: check ansible version
run: |
source ~/.virtualenvs/molecule/bin/activate
ansible --version | grep "^ansible.* ${{ matrix.ansible_version }}"
- name: molecule controlnode scenario
run: |
source ~/.virtualenvs/molecule/bin/activate
# dont destroy, next task needs it
molecule -e .env-${{ matrix.os }}.yml test -s controlnode --destroy never
# why does this exist?
- name: run install-ansible.sh
if: false
run: |
source ~/.virtualenvs/molecule/bin/activate
# this finds some errors when dependendencies differ from ansible-test's
podman exec -t ci-${{ matrix.os }} ansible-playbook /root/install-ansible.yml
virtualenv:
runs-on: ubuntu-22.04
needs: ansible-test
strategy:
fail-fast: false
matrix:
os:
#- arch
- debian12
- ubuntu22
- fedora38
- fedora39
- c9s
- rocky9
- alma9
ansible_version:
- '2.12'
- '2.14'
- '2.15'
- '2.16'
python_version:
- '3.9'
- '3.10'
- '3.11'
- '3.12'
exclude:
# impossible ansible - python combinations
- ansible_version: '2.12'
python_version: '3.11'
- ansible_version: '2.12'
python_version: '3.12'
- ansible_version: '2.14'
python_version: '3.12'
- ansible_version: '2.15'
python_version: '3.12'
- ansible_version: '2.16'
python_version: '3.9'
# no python3.x-setuptool package
# therefore only ansible that support 3.11 are possible
#
- os: fedora38
ansible_version: '2.12'
# no python3.x-setuptool package
# therefore only ansible that support 3.12 are possible
#
- os: fedora39
ansible_version: '2.12'
- os: fedora39
ansible_version: '2.14'
- os: fedora39
ansible_version: '2.15'
# c9s has 3.9, 3.11
- os: c9s
python_version: '3.10'
- os: c9s
ansible_version: '2.16'
# alma9 has 3.9, 3.11
- os: alma9
python_version: '3.10'
- os: alma9
ansible_version: '2.16'
# rocky9 has 3.9, 3.11
- os: rocky9
python_version: '3.10'
- os: alma9
ansible_version: '2.16'
# arch has 2.7 and 3.9
#- os: arch
# python_version: '3.5'
#- os: arch
# python_version: '3.6'
#- os: arch
# python_version: '3.7'
#- os: arch
# python_version: '3.8'
#- os: arch
# python_version: '3.10'
# debian12 has only 3.11
- os: debian12
python_version: '3.9'
- os: debian12
python_version: '3.10'
- os: debian12
python_version: '3.12'
# ubuntu22 has 3.10, 3.11
- os: ubuntu22
python_version: '3.9'
- os: ubuntu22
python_version: '3.12'
env:
ANSIBLE_VERSION: ${{ matrix.ansible_version }}
PYTHON_VERSION: ${{ matrix.python_version }}
CI_IMAGE: ${{ matrix.image }}
CI_HOSTNAME: ci-${{ matrix.os }}
CI_DRIVER: podman
PY_COLORS: 1
ANSIBLE_FORCE_COLOR: 1
defaults:
run:
working-directory: ansible_collections/mafalb/ansible
steps:
- name: setup python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python_version }}
- name: checkout collection ansible
uses: actions/checkout@v3
with:
path: ansible_collections/mafalb/ansible
- name: install molecule
run: |
ansible-playbook -D playbooks/install-molecule.yml -e molecule_python_version=python${{ matrix.python_version }} -e molecule_ansible_version=${{ matrix.ansible_version }} -t all,debug
env:
ANSIBLE_COLLECTIONS_PATHS: ../../..
- name: check ansible version
run: |
source ~/.virtualenvs/molecule/bin/activate
ansible --version | grep "^ansible.* ${{ matrix.ansible_version }}"
- name: check python version
run: |
source ~/.virtualenvs/molecule/bin/activate
ansible --version | grep "^\s*python.* ${{ matrix.python_version }}"
- name: molecule scenario virtualenv
run: |
source ~/.virtualenvs/molecule/bin/activate
molecule -e .env-${{ matrix.os }}.yml test -s virtualenv
...