mirror of
https://github.com/freeipa/ansible-freeipa.git
synced 2026-08-01 20:34:41 +00:00
Merge pull request #1300 from rjeffman/update_upstream_ci
Fix upstream CI and remove molecule
This commit is contained in:
@@ -7,7 +7,6 @@ exclude_paths:
|
|||||||
- .tox/
|
- .tox/
|
||||||
- .venv/
|
- .venv/
|
||||||
- .yamllint
|
- .yamllint
|
||||||
- molecule/
|
|
||||||
- tests/azure/
|
- tests/azure/
|
||||||
- meta/runtime.yml
|
- meta/runtime.yml
|
||||||
- requirements-docker.yml
|
- requirements-docker.yml
|
||||||
|
|||||||
@@ -15,8 +15,9 @@ stages:
|
|||||||
- template: templates/group_tests.yml
|
- template: templates/group_tests.yml
|
||||||
parameters:
|
parameters:
|
||||||
build_number: $(Build.BuildNumber)
|
build_number: $(Build.BuildNumber)
|
||||||
scenario: fedora-latest
|
distro: fedora-latest
|
||||||
ansible_version: "-core"
|
ansible_version: "-core"
|
||||||
|
skip_git_test: true
|
||||||
|
|
||||||
# Fedora
|
# Fedora
|
||||||
|
|
||||||
@@ -26,8 +27,9 @@ stages:
|
|||||||
- template: templates/group_tests.yml
|
- template: templates/group_tests.yml
|
||||||
parameters:
|
parameters:
|
||||||
build_number: $(Build.BuildNumber)
|
build_number: $(Build.BuildNumber)
|
||||||
scenario: fedora-latest
|
distro: fedora-latest
|
||||||
ansible_version: "-core <2.14"
|
ansible_version: "-core <2.16"
|
||||||
|
skip_git_test: true
|
||||||
|
|
||||||
# Fedora
|
# Fedora
|
||||||
|
|
||||||
@@ -37,19 +39,22 @@ stages:
|
|||||||
- template: templates/group_tests.yml
|
- template: templates/group_tests.yml
|
||||||
parameters:
|
parameters:
|
||||||
build_number: $(Build.BuildNumber)
|
build_number: $(Build.BuildNumber)
|
||||||
scenario: fedora-latest
|
distro: fedora-latest
|
||||||
ansible_version: "-core >=2.14,<2.15"
|
skip_git_test: true
|
||||||
|
ansible_version: "-core >=2.16,<2.17"
|
||||||
|
|
||||||
# Galaxy on Fedora
|
# Galaxy on Fedora
|
||||||
|
|
||||||
- stage: Galaxy_Fedora_Latest
|
- stage: Galaxy_Fedora_Latest
|
||||||
dependsOn: []
|
dependsOn: []
|
||||||
jobs:
|
jobs:
|
||||||
- template: templates/galaxy_tests.yml
|
- template: templates/group_tests.yml
|
||||||
parameters:
|
parameters:
|
||||||
build_number: $(Build.BuildNumber)
|
build_number: $(Build.BuildNumber)
|
||||||
scenario: fedora-latest
|
distro: fedora-latest
|
||||||
ansible_version: "-core >=2.14,<2.15"
|
ansible_version: "-core >=2.16,<2.17"
|
||||||
|
skip_git_test: true
|
||||||
|
test_galaxy: true
|
||||||
|
|
||||||
# CentOS 9 Stream
|
# CentOS 9 Stream
|
||||||
|
|
||||||
@@ -59,8 +64,9 @@ stages:
|
|||||||
- template: templates/group_tests.yml
|
- template: templates/group_tests.yml
|
||||||
parameters:
|
parameters:
|
||||||
build_number: $(Build.BuildNumber)
|
build_number: $(Build.BuildNumber)
|
||||||
scenario: c9s
|
distro: c9s
|
||||||
ansible_version: "-core >=2.14,<2.15"
|
ansible_version: "-core >=2.16,<2.17"
|
||||||
|
skip_git_test: true
|
||||||
|
|
||||||
# CentOS 8 Stream
|
# CentOS 8 Stream
|
||||||
|
|
||||||
@@ -70,16 +76,6 @@ stages:
|
|||||||
- template: templates/group_tests.yml
|
- template: templates/group_tests.yml
|
||||||
parameters:
|
parameters:
|
||||||
build_number: $(Build.BuildNumber)
|
build_number: $(Build.BuildNumber)
|
||||||
scenario: c8s
|
distro: c8s
|
||||||
ansible_version: "-core >=2.14,<2.15"
|
ansible_version: "-core <2.17"
|
||||||
|
skip_git_test: true
|
||||||
# CentOS 7
|
|
||||||
|
|
||||||
- stage: CentOS_7
|
|
||||||
dependsOn: []
|
|
||||||
jobs:
|
|
||||||
- template: templates/group_tests.yml
|
|
||||||
parameters:
|
|
||||||
build_number: $(Build.BuildNumber)
|
|
||||||
scenario: centos-7
|
|
||||||
ansible_version: "-core >=2.14,<2.15"
|
|
||||||
@@ -11,20 +11,10 @@ schedules:
|
|||||||
trigger: none
|
trigger: none
|
||||||
|
|
||||||
pool:
|
pool:
|
||||||
vmImage: 'ubuntu-22.04'
|
vmImage: 'ubuntu-24.04'
|
||||||
|
|
||||||
stages:
|
stages:
|
||||||
|
|
||||||
# Currently, it's not possible to use CentOS container
|
|
||||||
#
|
|
||||||
# - stage: CentOS_7
|
|
||||||
# dependsOn: []
|
|
||||||
# jobs:
|
|
||||||
# - template: templates/build_container.yml
|
|
||||||
# parameters:
|
|
||||||
# job_name_suffix: Centos7
|
|
||||||
# distro: centos-7
|
|
||||||
|
|
||||||
- stage: CentOS_8_Stream
|
- stage: CentOS_8_Stream
|
||||||
dependsOn: []
|
dependsOn: []
|
||||||
jobs:
|
jobs:
|
||||||
@@ -43,6 +33,14 @@ stages:
|
|||||||
job_name_suffix: C9S
|
job_name_suffix: C9S
|
||||||
distro: c9s
|
distro: c9s
|
||||||
|
|
||||||
|
- stage: CentOS_10_Stream
|
||||||
|
dependsOn: []
|
||||||
|
jobs:
|
||||||
|
- template: templates/build_container.yml
|
||||||
|
parameters:
|
||||||
|
job_name_suffix: C10S
|
||||||
|
distro: c10s
|
||||||
|
|
||||||
- stage: Fedora_Latest
|
- stage: Fedora_Latest
|
||||||
dependsOn: []
|
dependsOn: []
|
||||||
jobs:
|
jobs:
|
||||||
126
infra/azure/nightly.yml
Normal file
126
infra/azure/nightly.yml
Normal file
@@ -0,0 +1,126 @@
|
|||||||
|
---
|
||||||
|
schedules:
|
||||||
|
- cron: "0 19 * * *"
|
||||||
|
displayName: Nightly Builds
|
||||||
|
branches:
|
||||||
|
include:
|
||||||
|
- master
|
||||||
|
always: true
|
||||||
|
|
||||||
|
trigger: none
|
||||||
|
|
||||||
|
pool:
|
||||||
|
vmImage: 'ubuntu-20.04'
|
||||||
|
|
||||||
|
stages:
|
||||||
|
|
||||||
|
# Fedora
|
||||||
|
|
||||||
|
- stage: fedora_latest_Ansible_Core_2_15
|
||||||
|
dependsOn: []
|
||||||
|
jobs:
|
||||||
|
- template: templates/group_tests.yml
|
||||||
|
parameters:
|
||||||
|
build_number: $(Build.BuildNumber)
|
||||||
|
distro: fedora-latest
|
||||||
|
ansible_version: "-core >=2.15,<2.16"
|
||||||
|
skip_git_test: true
|
||||||
|
|
||||||
|
- stage: fedora_latest_Ansible_Core_2_16
|
||||||
|
dependsOn: []
|
||||||
|
jobs:
|
||||||
|
- template: templates/group_tests.yml
|
||||||
|
parameters:
|
||||||
|
build_number: $(Build.BuildNumber)
|
||||||
|
distro: fedora-latest
|
||||||
|
ansible_version: ""
|
||||||
|
skip_git_test: true
|
||||||
|
|
||||||
|
- stage: fedora_latest_Ansible_Core_2_17
|
||||||
|
dependsOn: []
|
||||||
|
jobs:
|
||||||
|
- template: templates/group_tests.yml
|
||||||
|
parameters:
|
||||||
|
build_number: $(Build.BuildNumber)
|
||||||
|
distro: fedora-latest
|
||||||
|
ansible_version: "-core >=2.17"
|
||||||
|
skip_git_test: true
|
||||||
|
|
||||||
|
# Galaxy on Fedora
|
||||||
|
|
||||||
|
- stage: Galaxy_fedora_latest_Ansible_Core_2_17
|
||||||
|
dependsOn: []
|
||||||
|
jobs:
|
||||||
|
- template: templates/group_tests.yml
|
||||||
|
parameters:
|
||||||
|
build_number: $(Build.BuildNumber)
|
||||||
|
distro: fedora-latest
|
||||||
|
ansible_version: "-core >=2.17,<2.18"
|
||||||
|
skip_git_test: true
|
||||||
|
test_galaxy: true
|
||||||
|
|
||||||
|
# Fedora Rawhide
|
||||||
|
|
||||||
|
- stage: fedora_rawhide_Ansible_Core_2_17
|
||||||
|
dependsOn: []
|
||||||
|
jobs:
|
||||||
|
- template: templates/group_tests.yml
|
||||||
|
parameters:
|
||||||
|
build_number: $(Build.BuildNumber)
|
||||||
|
distro: fedora-rawhide
|
||||||
|
ansible_version: "-core >=2.17,<2.18"
|
||||||
|
skip_git_test: true
|
||||||
|
|
||||||
|
# CentoOS 9 Stream
|
||||||
|
|
||||||
|
- stage: c9s_Ansible_Core_2_15
|
||||||
|
dependsOn: []
|
||||||
|
jobs:
|
||||||
|
- template: templates/group_tests.yml
|
||||||
|
parameters:
|
||||||
|
build_number: $(Build.BuildNumber)
|
||||||
|
distro: c9s
|
||||||
|
ansible_version: "-core >=2.15,<2.16"
|
||||||
|
skip_git_test: true
|
||||||
|
|
||||||
|
- stage: c9s_Ansible_Core_2_16
|
||||||
|
dependsOn: []
|
||||||
|
jobs:
|
||||||
|
- template: templates/group_tests.yml
|
||||||
|
parameters:
|
||||||
|
build_number: $(Build.BuildNumber)
|
||||||
|
distro: c9s
|
||||||
|
ansible_version: "-core >=2.16,<2.17"
|
||||||
|
skip_git_test: true
|
||||||
|
|
||||||
|
- stage: c9s_Ansible_Core_2_17
|
||||||
|
dependsOn: []
|
||||||
|
jobs:
|
||||||
|
- template: templates/group_tests.yml
|
||||||
|
parameters:
|
||||||
|
build_number: $(Build.BuildNumber)
|
||||||
|
distro: c9s
|
||||||
|
ansible_version: "-core >=2.17,<2.18"
|
||||||
|
skip_git_test: true
|
||||||
|
|
||||||
|
# CentOS 8 Stream only works up to ansible-core 2.16.z
|
||||||
|
|
||||||
|
- stage: c8s_Ansible_Core_2_15
|
||||||
|
dependsOn: []
|
||||||
|
jobs:
|
||||||
|
- template: templates/group_tests.yml
|
||||||
|
parameters:
|
||||||
|
build_number: $(Build.BuildNumber)
|
||||||
|
distro: c8s
|
||||||
|
ansible_version: "-core >=2.15,<2.16"
|
||||||
|
skip_git_test: true
|
||||||
|
|
||||||
|
- stage: c8s_Ansible_Core_2_16
|
||||||
|
dependsOn: []
|
||||||
|
jobs:
|
||||||
|
- template: templates/group_tests.yml
|
||||||
|
parameters:
|
||||||
|
build_number: $(Build.BuildNumber)
|
||||||
|
distro: c8s
|
||||||
|
ansible_version: "-core >=2.16,<2.17"
|
||||||
|
skip_git_test: true
|
||||||
@@ -12,67 +12,58 @@ stages:
|
|||||||
- stage: Fedora_Latest
|
- stage: Fedora_Latest
|
||||||
dependsOn: []
|
dependsOn: []
|
||||||
jobs:
|
jobs:
|
||||||
- template: templates/fast_tests.yml
|
- template: templates/run_tests.yml
|
||||||
parameters:
|
parameters:
|
||||||
build_number: $(Build.BuildNumber)
|
build_number: $(Build.BuildNumber)
|
||||||
distro: fedora-latest
|
distro: fedora-latest
|
||||||
ansible_version: "-core >=2.15,<2.16"
|
ansible_version: "-core >=2.15,<2.16"
|
||||||
|
skip_git_test: false
|
||||||
|
|
||||||
# Galaxy on Fedora
|
# Galaxy on Fedora
|
||||||
|
|
||||||
- stage: Galaxy_Fedora_Latest
|
- stage: Galaxy_Fedora_Latest
|
||||||
dependsOn: []
|
dependsOn: []
|
||||||
jobs:
|
jobs:
|
||||||
- template: templates/fast_tests.yml
|
- template: templates/run_tests.yml
|
||||||
parameters:
|
parameters:
|
||||||
build_number: $(Build.BuildNumber)
|
build_number: $(Build.BuildNumber)
|
||||||
distro: fedora-latest
|
distro: fedora-latest
|
||||||
ansible_version: "-core >=2.15,<2.16"
|
ansible_version: "-core >=2.15,<2.16"
|
||||||
|
skip_git_test: false
|
||||||
|
test_galaxy: true
|
||||||
|
|
||||||
# CentOS 9 Stream
|
# CentOS 9 Stream
|
||||||
|
|
||||||
- stage: CentOS_9_Stream
|
- stage: CentOS_9_Stream
|
||||||
dependsOn: []
|
dependsOn: []
|
||||||
jobs:
|
jobs:
|
||||||
- template: templates/fast_tests.yml
|
- template: templates/run_tests.yml
|
||||||
parameters:
|
parameters:
|
||||||
build_number: $(Build.BuildNumber)
|
build_number: $(Build.BuildNumber)
|
||||||
distro: c9s
|
distro: c9s
|
||||||
ansible_version: "-core >=2.15,<2.16"
|
ansible_version: "-core >=2.15,<2.16"
|
||||||
|
skip_git_test: false
|
||||||
|
|
||||||
# CentOS 8 Stream
|
# CentOS 8 Stream
|
||||||
|
|
||||||
- stage: CentOS_8_Stream
|
- stage: CentOS_8_Stream
|
||||||
dependsOn: []
|
dependsOn: []
|
||||||
jobs:
|
jobs:
|
||||||
- template: templates/fast_tests.yml
|
- template: templates/run_tests.yml
|
||||||
parameters:
|
parameters:
|
||||||
build_number: $(Build.BuildNumber)
|
build_number: $(Build.BuildNumber)
|
||||||
distro: c8s
|
distro: c8s
|
||||||
ansible_version: "-core >=2.15,<2.16"
|
ansible_version: "-core >=2.15,<2.16"
|
||||||
target_python: "/usr/libexec/platform-python"
|
skip_git_test: false
|
||||||
|
|
||||||
# CentOS 7 cannot be used with current systemd
|
|
||||||
#
|
|
||||||
# CentOS 7
|
|
||||||
#
|
|
||||||
# - stage: CentOS_7
|
|
||||||
# dependsOn: []
|
|
||||||
# jobs:
|
|
||||||
# - template: templates/fast_tests.yml
|
|
||||||
# parameters:
|
|
||||||
# build_number: $(Build.BuildNumber)
|
|
||||||
# distro: centos-7
|
|
||||||
# ansible_version: "-core >=2.15,<2.16"
|
|
||||||
# target_python: "/usr/bin/python2"
|
|
||||||
|
|
||||||
# Rawhide
|
# Rawhide
|
||||||
|
|
||||||
- stage: Fedora_Rawhide
|
- stage: Fedora_Rawhide
|
||||||
dependsOn: []
|
dependsOn: []
|
||||||
jobs:
|
jobs:
|
||||||
- template: templates/fast_tests.yml
|
- template: templates/run_tests.yml
|
||||||
parameters:
|
parameters:
|
||||||
build_number: $(Build.BuildNumber)
|
build_number: $(Build.BuildNumber)
|
||||||
distro: fedora-rawhide
|
distro: fedora-rawhide
|
||||||
ansible_version: "-core >=2.15,<2.16"
|
ansible_version: "-core >=2.15,<2.16"
|
||||||
|
skip_git_test: false
|
||||||
@@ -22,18 +22,15 @@ jobs:
|
|||||||
retryCountOnTaskFailure: 5
|
retryCountOnTaskFailure: 5
|
||||||
displayName: Install tools
|
displayName: Install tools
|
||||||
|
|
||||||
- script: |
|
|
||||||
rm -rf ~/.ansible
|
|
||||||
mkdir -p ~/.ansible
|
|
||||||
ln -snf $(readlink -f roles) ~/.ansible/roles
|
|
||||||
ln -snf $(readlink -f plugins) ~/.ansible/plugins
|
|
||||||
displayName: Setup ansible-freeipa using Git repository
|
|
||||||
|
|
||||||
- script: ansible-galaxy collection install containers.podman
|
- script: ansible-galaxy collection install containers.podman
|
||||||
displayName: Install Ansible Galaxy collections
|
displayName: Install Ansible Galaxy collections
|
||||||
|
|
||||||
- script: infra/image/build.sh -s ${{ parameters.distro }}
|
- script: infra/image/build.sh -s ${{ parameters.distro }}
|
||||||
displayName: Build ${{ parameters.distro }} base image
|
displayName: Build ${{ parameters.distro }} base image
|
||||||
|
env:
|
||||||
|
ANSIBLE_ROLES_PATH: "${PWD}/roles"
|
||||||
|
ANSIBLE_LIBRARY: "${PWD}/plugins/modules"
|
||||||
|
ANSIBLE_MODULE_UTILS: "${PWD}/plugins/module_utils"
|
||||||
|
|
||||||
- script: podman login -u="$QUAY_ROBOT_USERNAME" -p="$QUAY_ROBOT_TOKEN" quay.io
|
- script: podman login -u="$QUAY_ROBOT_USERNAME" -p="$QUAY_ROBOT_TOKEN" quay.io
|
||||||
displayName: Registry login
|
displayName: Registry login
|
||||||
30
infra/azure/templates/group_tests.yml
Normal file
30
infra/azure/templates/group_tests.yml
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
---
|
||||||
|
parameters:
|
||||||
|
- name: distro
|
||||||
|
type: string
|
||||||
|
default: fedora-latest
|
||||||
|
- name: build_number
|
||||||
|
type: string
|
||||||
|
- name: ansible_version
|
||||||
|
type: string
|
||||||
|
default: ""
|
||||||
|
- name: skip_git_test
|
||||||
|
type: boolean
|
||||||
|
default: false
|
||||||
|
- name: test_galaxy
|
||||||
|
type: boolean
|
||||||
|
default: false
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
|
||||||
|
- ${{ each group in split('1,2,3', ',') }}:
|
||||||
|
- template: run_tests.yml
|
||||||
|
parameters:
|
||||||
|
group_number: ${{ group }}
|
||||||
|
number_of_groups: 3
|
||||||
|
build_number: ${{ parameters.build_number }}
|
||||||
|
distro: ${{ parameters.distro }}
|
||||||
|
ansible_version: ${{ parameters.ansible_version }}
|
||||||
|
python_version: '< 3.12'
|
||||||
|
skip_git_test: ${{ parameters.skip_git_test }}
|
||||||
|
test_galaxy: ${{ parameters.test_galaxy }}
|
||||||
30
infra/azure/templates/prepare_environment.yaml
Normal file
30
infra/azure/templates/prepare_environment.yaml
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
---
|
||||||
|
parameters:
|
||||||
|
- name: distro
|
||||||
|
type: string
|
||||||
|
default: fedora-latest
|
||||||
|
- name: ansible_version
|
||||||
|
type: string
|
||||||
|
default: ""
|
||||||
|
- name: python_version
|
||||||
|
type: string
|
||||||
|
default: 3.x
|
||||||
|
- name: build_number
|
||||||
|
type: string
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- task: UsePythonVersion@0
|
||||||
|
inputs:
|
||||||
|
versionSpec: '${{ parameters.python_version }}'
|
||||||
|
|
||||||
|
- script: |
|
||||||
|
pip install "ansible${{ parameters.ansible_version }}" -r requirements-tests.txt
|
||||||
|
retryCountOnTaskFailure: 5
|
||||||
|
displayName: Install test dependencies
|
||||||
|
|
||||||
|
- script: ansible-galaxy collection install -r requirements-podman.yml
|
||||||
|
retryCountOnTaskFailure: 5
|
||||||
|
displayName: Install Ansible collections
|
||||||
|
|
||||||
|
- script: infra/image/start.sh ${{ parameters.distro }}-server
|
||||||
|
displayName: Setup target container for ${{ parameters.distro }}
|
||||||
98
infra/azure/templates/run_tests.yml
Normal file
98
infra/azure/templates/run_tests.yml
Normal file
@@ -0,0 +1,98 @@
|
|||||||
|
---
|
||||||
|
parameters:
|
||||||
|
- name: group_number
|
||||||
|
type: number
|
||||||
|
default: 1
|
||||||
|
- name: number_of_groups
|
||||||
|
type: number
|
||||||
|
default: 1
|
||||||
|
- name: distro
|
||||||
|
type: string
|
||||||
|
default: fedora-latest
|
||||||
|
- name: ansible_version
|
||||||
|
type: string
|
||||||
|
default: ""
|
||||||
|
- name: python_version
|
||||||
|
type: string
|
||||||
|
default: 3.x
|
||||||
|
- name: build_number
|
||||||
|
type: string
|
||||||
|
- name: skip_git_test
|
||||||
|
type: boolean
|
||||||
|
default: true
|
||||||
|
- name: test_type
|
||||||
|
type: string
|
||||||
|
default: "playbook"
|
||||||
|
- name: test_galaxy
|
||||||
|
type: boolean
|
||||||
|
default: false
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
- job: Test_Group${{ parameters.group_number }}
|
||||||
|
displayName: Run playbook tests ${{ parameters.distro }} (${{ parameters.group_number }}/${{ parameters.number_of_groups }})
|
||||||
|
timeoutInMinutes: 360
|
||||||
|
variables:
|
||||||
|
- template: variables.yaml
|
||||||
|
- template: variables_${{ parameters.distro }}.yaml
|
||||||
|
steps:
|
||||||
|
- template: prepare_environment.yaml
|
||||||
|
parameters:
|
||||||
|
build_number: ${{ parameters.build_number }}
|
||||||
|
distro: ${{ parameters.distro }}
|
||||||
|
ansible_version: ${{ parameters.ansible_version }}
|
||||||
|
python_version: ${{ parameters.python_version }}
|
||||||
|
|
||||||
|
- bash: echo "##vso[task.setvariable variable=TOPDIR]${PWD}"
|
||||||
|
displayName: Set repo rootdir
|
||||||
|
|
||||||
|
- script: |
|
||||||
|
. "${TOPDIR}/utils/set_test_modules"
|
||||||
|
python3 utils/check_test_configuration.py ${{ parameters.distro }}
|
||||||
|
displayName: Check test configuration
|
||||||
|
env:
|
||||||
|
SKIP_GIT_TEST: ${{ parameters.skip_git_test }}
|
||||||
|
|
||||||
|
- script: |
|
||||||
|
git fetch --unshallow
|
||||||
|
utils/build-galaxy-release.sh -i
|
||||||
|
retryCountOnTaskFailure: 5
|
||||||
|
displayName: Build Galaxy release
|
||||||
|
condition: ${{ parameters.test_galaxy }}
|
||||||
|
|
||||||
|
- script: |
|
||||||
|
echo "PWD: ${PWD}"
|
||||||
|
echo "TOPDIR: ${TOPDIR}"
|
||||||
|
echo "ROLES: ${ANSIBLE_ROLES_PATH}"
|
||||||
|
echo "LIBRARY: ${ANSIBLE_LIBRARY}"
|
||||||
|
echo "MODULE_UTILS: ${ANSIBLE_MODULE_UTILS}"
|
||||||
|
. "${TOPDIR}/utils/set_test_modules"
|
||||||
|
[ "${{ parameters.test_galaxy }}" == "True" ] && cd ~/.ansible/collections/ansible_collections/freeipa/ansible_freeipa
|
||||||
|
pytest \
|
||||||
|
-m "${{ parameters.test_type }}" \
|
||||||
|
--verbose \
|
||||||
|
--color=yes \
|
||||||
|
--splits=${{ parameters.number_of_groups }} \
|
||||||
|
--group=${{ parameters.group_number }} \
|
||||||
|
--randomly-seed=$(date "+%Y%m%d") \
|
||||||
|
--suppress-no-test-exit-code \
|
||||||
|
--junit-xml=TEST-results-pr-check.xml
|
||||||
|
displayName: Run playbook tests
|
||||||
|
env:
|
||||||
|
SKIP_GIT_TEST: ${{ parameters.skip_git_test }}
|
||||||
|
${{ if not(parameters.test_galaxy) }}:
|
||||||
|
ANSIBLE_ROLES_PATH: "${PWD}/roles"
|
||||||
|
ANSIBLE_LIBRARY: "${PWD}/plugins"
|
||||||
|
ANSIBLE_MODULE_UTILS: "${PWD}/plugins/module_utils"
|
||||||
|
IPA_SERVER_HOST: ansible-freeipa-tests
|
||||||
|
RUN_TESTS_IN_DOCKER: podman
|
||||||
|
IPA_DISABLED_MODULES: ${{ variables.ipa_disabled_modules }}
|
||||||
|
IPA_DISABLED_TESTS: ${{ variables.ipa_disabled_tests }}
|
||||||
|
IPA_ENABLED_MODULES: ${{ variables.ipa_enabled_modules }}
|
||||||
|
IPA_ENABLED_TESTS: ${{ variables.ipa_enabled_tests }}
|
||||||
|
IPA_VERBOSITY: "-vvv"
|
||||||
|
|
||||||
|
- task: PublishTestResults@2
|
||||||
|
inputs:
|
||||||
|
mergeTestResults: true
|
||||||
|
testRunTitle: PlaybookTests-Build${{ parameters.build_number }}
|
||||||
|
condition: succeededOrFailed()
|
||||||
@@ -15,7 +15,7 @@ valid_distro() {
|
|||||||
usage() {
|
usage() {
|
||||||
local prog="${0##*/}"
|
local prog="${0##*/}"
|
||||||
cat << EOF
|
cat << EOF
|
||||||
usage: ${prog} [-h] [-s] distro
|
usage: ${prog} [-h] [-p] [-c HOSTNAME] [-s] distro
|
||||||
${prog} build a container image to test ansible-freeipa.
|
${prog} build a container image to test ansible-freeipa.
|
||||||
EOF
|
EOF
|
||||||
}
|
}
|
||||||
@@ -29,23 +29,26 @@ positional arguments:
|
|||||||
|
|
||||||
optional arguments:
|
optional arguments:
|
||||||
|
|
||||||
-s Deploy IPA server
|
-c HOSTNAME Container hostname
|
||||||
|
-p Give extended privileges to the container
|
||||||
|
-s Deploy IPA server
|
||||||
EOF
|
EOF
|
||||||
}
|
}
|
||||||
|
|
||||||
name="ansible-freeipa-image-builder"
|
name="ansible-freeipa-image-builder"
|
||||||
hostname="ipaserver.test.local"
|
hostname="ipaserver.test.local"
|
||||||
# Number of cpus is not available in usptream CI (Ubuntu 22.04).
|
cpus="2"
|
||||||
# cpus="2"
|
|
||||||
memory="3g"
|
memory="3g"
|
||||||
quayname="quay.io/ansible-freeipa/upstream-tests"
|
quayname="quay.io/ansible-freeipa/upstream-tests"
|
||||||
deploy_server="N"
|
deploy_server="N"
|
||||||
|
privileged=""
|
||||||
|
|
||||||
while getopts ":hs" option
|
while getopts ":hc:ps" option
|
||||||
do
|
do
|
||||||
case "${option}" in
|
case "${option}" in
|
||||||
h) help && exit 0 ;;
|
h) help && exit 0 ;;
|
||||||
|
c) hostname="${OPTARG}" ;;
|
||||||
|
p) privileged="privileged" ;;
|
||||||
s) deploy_server="Y" ;;
|
s) deploy_server="Y" ;;
|
||||||
*) die -u "Invalid option: ${option}" ;;
|
*) die -u "Invalid option: ${option}" ;;
|
||||||
esac
|
esac
|
||||||
@@ -82,13 +85,28 @@ container_remove_image_if_exists "${tag}"
|
|||||||
container_remove_image_if_exists "${server_tag}"
|
container_remove_image_if_exists "${server_tag}"
|
||||||
|
|
||||||
container_build "${tag}" "${BASEDIR}/dockerfile/${distro}" "${BASEDIR}"
|
container_build "${tag}" "${BASEDIR}/dockerfile/${distro}" "${BASEDIR}"
|
||||||
container_create "${name}" "${tag}" "${hostname}" "${memory}"
|
container_create "${name}" "${tag}" \
|
||||||
|
"hostname=${hostname}" \
|
||||||
|
"memory=${memory}" \
|
||||||
|
"cpus=${cpus}" \
|
||||||
|
"${privileged}"
|
||||||
container_commit "${name}" "${quayname}:${tag}"
|
container_commit "${name}" "${quayname}:${tag}"
|
||||||
|
|
||||||
if [ "${deploy_server}" == "Y" ]
|
if [ "${deploy_server}" == "Y" ]
|
||||||
then
|
then
|
||||||
deployed=false
|
deployed=false
|
||||||
|
|
||||||
|
# Set path to ansible-freeipa roles
|
||||||
|
[ -z "${ANSIBLE_ROLES_PATH:-""}" ] && export ANSIBLE_ROLES_PATH="${TOPDIR}/roles"
|
||||||
|
|
||||||
|
# Install collection containers.podman if not available
|
||||||
|
if [ -z "$(ansible-galaxy collection list containers.podman)" ]
|
||||||
|
then
|
||||||
|
tmpdir="$(mktemp -d)"
|
||||||
|
export ANSIBLE_COLLECTIONS_PATH="${tmpdir}"
|
||||||
|
ansible-galaxy collection install -p "${tmpdir}" containers.podman
|
||||||
|
fi
|
||||||
|
|
||||||
[ "${container_state}" != "running" ] && container_start "${name}"
|
[ "${container_state}" != "running" ] && container_start "${name}"
|
||||||
|
|
||||||
container_wait_for_journald "${name}"
|
container_wait_for_journald "${name}"
|
||||||
|
|||||||
@@ -9,24 +9,35 @@ TOPDIR="$(readlink -f "${SCRIPTDIR}/../..")"
|
|||||||
container_create() {
|
container_create() {
|
||||||
local name=${1}
|
local name=${1}
|
||||||
local image=${2}
|
local image=${2}
|
||||||
local hostname=${3}
|
shift 2
|
||||||
local memory=${4:-"3g"}
|
declare -a extra_opts=()
|
||||||
local cpus=${5:-"2"}
|
for opt in "$@"
|
||||||
|
do
|
||||||
|
[ -z "${opt}" ] && continue
|
||||||
|
case "${opt}" in
|
||||||
|
hostname=*) extra_opts+=("--${opt}") ;;
|
||||||
|
cpus=*) extra_opts+=("--${opt}") ;;
|
||||||
|
memory=*) extra_opts+=("--${opt}") ;;
|
||||||
|
privileged) extra_opts+=("--${opt}") ;;
|
||||||
|
*) log error "container_create: Invalid option: ${opt}" ;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
[ -n "${hostname}" ] || die "No hostname given"
|
# ensure default values are set
|
||||||
|
[[ " ${extra_opts[*]} " =~ " --cpus=" ]] || extra_opts+=("--cpus=2")
|
||||||
|
[[ " ${extra_opts[*]} " =~ " --hostname=" ]] \
|
||||||
|
|| extra_opts+=("--hostname=ipaserver.test.local")
|
||||||
|
|
||||||
log info "= Creating ${name} ="
|
log info "= Creating ${name} ="
|
||||||
podman create \
|
podman create \
|
||||||
--security-opt label=disable \
|
--security-opt label=disable \
|
||||||
--name "${name}" \
|
|
||||||
--hostname "${hostname}" \
|
|
||||||
--network bridge:interface_name=eth0 \
|
--network bridge:interface_name=eth0 \
|
||||||
--systemd true \
|
--systemd true \
|
||||||
--cpus "${cpus}" \
|
--name "${name}" \
|
||||||
--memory "${memory}" \
|
|
||||||
--memory-swap -1 \
|
--memory-swap -1 \
|
||||||
--no-hosts \
|
--no-hosts \
|
||||||
--replace \
|
--replace \
|
||||||
|
"${extra_opts[@]}" \
|
||||||
"${image}"
|
"${image}"
|
||||||
echo
|
echo
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ TOPDIR="$(readlink -f "${BASEDIR}/../..")"
|
|||||||
usage() {
|
usage() {
|
||||||
local prog="${0##*/}"
|
local prog="${0##*/}"
|
||||||
cat << EOF
|
cat << EOF
|
||||||
usage: ${prog} [-h] [-l] image
|
usage: ${prog} [-h] [-l] [-n HOSTNAME ] image
|
||||||
${prog} start a prebuilt ansible-freeipa test container image.
|
${prog} start a prebuilt ansible-freeipa test container image.
|
||||||
EOF
|
EOF
|
||||||
}
|
}
|
||||||
@@ -24,7 +24,14 @@ positional arguments:
|
|||||||
|
|
||||||
optional arguments:
|
optional arguments:
|
||||||
|
|
||||||
-l Try to use local image first, if not found download.
|
-h Show this message
|
||||||
|
-l Try to use local image first, if not found download.
|
||||||
|
-n HOSTNAME Set container hostname
|
||||||
|
|
||||||
|
NOTE:
|
||||||
|
- The hostname must be the same as the hostname of the container
|
||||||
|
when FreeIPA was deployed. Use only if you built the image and
|
||||||
|
defined its hostname.
|
||||||
|
|
||||||
EOF
|
EOF
|
||||||
}
|
}
|
||||||
@@ -45,11 +52,12 @@ name="ansible-freeipa-tests"
|
|||||||
hostname="ipaserver.test.local"
|
hostname="ipaserver.test.local"
|
||||||
try_local_first="N"
|
try_local_first="N"
|
||||||
|
|
||||||
while getopts ":hl" option
|
while getopts ":hln:" option
|
||||||
do
|
do
|
||||||
case "${option}" in
|
case "${option}" in
|
||||||
h) help && exit 0 ;;
|
h) help && exit 0 ;;
|
||||||
l) try_local_first="Y" ;;
|
l) try_local_first="Y" ;;
|
||||||
|
n) hostname="${OPTARG}" ;;
|
||||||
*) die -u "Invalid option: ${option}" ;;
|
*) die -u "Invalid option: ${option}" ;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
@@ -79,7 +87,7 @@ fi
|
|||||||
|
|
||||||
[ -z "${local_image}" ] && die "Image '${image}' is not valid"
|
[ -z "${local_image}" ] && die "Image '${image}' is not valid"
|
||||||
|
|
||||||
container_create "${name}" "${local_image}" "${hostname}"
|
container_create "${name}" "${local_image}" "hostname=${hostname}"
|
||||||
container_start "${name}"
|
container_start "${name}"
|
||||||
container_wait_for_journald "${name}"
|
container_wait_for_journald "${name}"
|
||||||
container_wait_up "${name}"
|
container_wait_up "${name}"
|
||||||
|
|||||||
@@ -1,30 +0,0 @@
|
|||||||
FROM quay.io/centos/centos:stream8
|
|
||||||
ENV container=docker
|
|
||||||
|
|
||||||
RUN rm -fv /var/cache/dnf/metadata_lock.pid; \
|
|
||||||
dnf makecache; \
|
|
||||||
dnf --assumeyes install \
|
|
||||||
/usr/bin/python3 \
|
|
||||||
/usr/bin/python3-config \
|
|
||||||
/usr/bin/dnf-3 \
|
|
||||||
sudo \
|
|
||||||
bash \
|
|
||||||
systemd \
|
|
||||||
procps-ng \
|
|
||||||
iproute && \
|
|
||||||
dnf clean all; \
|
|
||||||
(cd /lib/systemd/system/sysinit.target.wants/; for i in *; do [ $i == systemd-tmpfiles-setup.service ] || rm -f $i; done); \
|
|
||||||
rm -f /lib/systemd/system/multi-user.target.wants/*;\
|
|
||||||
rm -f /etc/systemd/system/*.wants/*;\
|
|
||||||
rm -f /lib/systemd/system/local-fs.target.wants/*; \
|
|
||||||
rm -f /lib/systemd/system/sockets.target.wants/*udev*; \
|
|
||||||
rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \
|
|
||||||
rm -f /lib/systemd/system/basic.target.wants/*;\
|
|
||||||
rm -f /lib/systemd/system/anaconda.target.wants/*; \
|
|
||||||
rm -rf /var/cache/dnf/;
|
|
||||||
|
|
||||||
STOPSIGNAL RTMIN+3
|
|
||||||
|
|
||||||
VOLUME ["/sys/fs/cgroup"]
|
|
||||||
|
|
||||||
CMD ["/usr/sbin/init"]
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
---
|
|
||||||
driver:
|
|
||||||
name: docker
|
|
||||||
platforms:
|
|
||||||
- name: c8s-build
|
|
||||||
image: "quay.io/centos/centos:stream8"
|
|
||||||
dockerfile: Dockerfile
|
|
||||||
hostname: ipaserver.test.local
|
|
||||||
dns_servers:
|
|
||||||
- 8.8.8.8
|
|
||||||
volumes:
|
|
||||||
- /sys/fs/cgroup:/sys/fs/cgroup:ro
|
|
||||||
command: /usr/sbin/init
|
|
||||||
privileged: true
|
|
||||||
provisioner:
|
|
||||||
name: ansible
|
|
||||||
playbooks:
|
|
||||||
prepare: ../resources/playbooks/prepare-build.yml
|
|
||||||
prerun: false
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
---
|
|
||||||
driver:
|
|
||||||
name: docker
|
|
||||||
platforms:
|
|
||||||
- name: c8s
|
|
||||||
image: quay.io/ansible-freeipa/upstream-tests:c8s
|
|
||||||
pre_build_image: true
|
|
||||||
hostname: ipaserver.test.local
|
|
||||||
dns_servers:
|
|
||||||
- 127.0.0.1
|
|
||||||
volumes:
|
|
||||||
- /sys/fs/cgroup:/sys/fs/cgroup:ro
|
|
||||||
command: /usr/sbin/init
|
|
||||||
privileged: true
|
|
||||||
provisioner:
|
|
||||||
name: ansible
|
|
||||||
playbooks:
|
|
||||||
prepare: ../resources/playbooks/prepare.yml
|
|
||||||
prerun: false
|
|
||||||
@@ -1,29 +0,0 @@
|
|||||||
FROM quay.io/centos/centos:stream9
|
|
||||||
ENV container=docker
|
|
||||||
|
|
||||||
RUN rm -fv /var/cache/dnf/metadata_lock.pid; \
|
|
||||||
dnf makecache; \
|
|
||||||
dnf --assumeyes install \
|
|
||||||
/usr/bin/python3 \
|
|
||||||
/usr/bin/dnf-3 \
|
|
||||||
sudo \
|
|
||||||
bash \
|
|
||||||
systemd \
|
|
||||||
procps-ng \
|
|
||||||
iproute && \
|
|
||||||
dnf clean all; \
|
|
||||||
(cd /lib/systemd/system/sysinit.target.wants/; for i in *; do [ $i == systemd-tmpfiles-setup.service ] || rm -f $i; done); \
|
|
||||||
rm -f /lib/systemd/system/multi-user.target.wants/*;\
|
|
||||||
rm -f /etc/systemd/system/*.wants/*;\
|
|
||||||
rm -f /lib/systemd/system/local-fs.target.wants/*; \
|
|
||||||
rm -f /lib/systemd/system/sockets.target.wants/*udev*; \
|
|
||||||
rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \
|
|
||||||
rm -f /lib/systemd/system/basic.target.wants/*;\
|
|
||||||
rm -f /lib/systemd/system/anaconda.target.wants/*; \
|
|
||||||
rm -rf /var/cache/dnf/;
|
|
||||||
|
|
||||||
STOPSIGNAL RTMIN+3
|
|
||||||
|
|
||||||
VOLUME ["/sys/fs/cgroup"]
|
|
||||||
|
|
||||||
CMD ["/usr/sbin/init"]
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
---
|
|
||||||
driver:
|
|
||||||
name: docker
|
|
||||||
platforms:
|
|
||||||
- name: c9s-build
|
|
||||||
image: "quay.io/centos/centos:stream9"
|
|
||||||
dockerfile: Dockerfile
|
|
||||||
hostname: ipaserver.test.local
|
|
||||||
dns_servers:
|
|
||||||
- 8.8.8.8
|
|
||||||
volumes:
|
|
||||||
- /sys/fs/cgroup:/sys/fs/cgroup:ro
|
|
||||||
command: /usr/sbin/init
|
|
||||||
privileged: true
|
|
||||||
provisioner:
|
|
||||||
name: ansible
|
|
||||||
playbooks:
|
|
||||||
prepare: ../resources/playbooks/prepare-build.yml
|
|
||||||
prerun: false
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
---
|
|
||||||
driver:
|
|
||||||
name: docker
|
|
||||||
platforms:
|
|
||||||
- name: c9s
|
|
||||||
image: quay.io/ansible-freeipa/upstream-tests:c9s
|
|
||||||
pre_build_image: true
|
|
||||||
hostname: ipaserver.test.local
|
|
||||||
dns_servers:
|
|
||||||
- 127.0.0.1
|
|
||||||
volumes:
|
|
||||||
- /sys/fs/cgroup:/sys/fs/cgroup:ro
|
|
||||||
command: /usr/sbin/init
|
|
||||||
privileged: true
|
|
||||||
provisioner:
|
|
||||||
name: ansible
|
|
||||||
playbooks:
|
|
||||||
prepare: ../resources/playbooks/prepare.yml
|
|
||||||
prerun: false
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
---
|
|
||||||
driver:
|
|
||||||
name: docker
|
|
||||||
platforms:
|
|
||||||
- name: centos-7-build
|
|
||||||
image: centos/systemd
|
|
||||||
pre_build_image: true
|
|
||||||
hostname: ipaserver.test.local
|
|
||||||
dns_servers:
|
|
||||||
- 8.8.8.8
|
|
||||||
volumes:
|
|
||||||
- /sys/fs/cgroup:/sys/fs/cgroup:ro
|
|
||||||
command: /usr/sbin/init
|
|
||||||
privileged: true
|
|
||||||
provisioner:
|
|
||||||
name: ansible
|
|
||||||
playbooks:
|
|
||||||
prepare: ../resources/playbooks/prepare-build.yml
|
|
||||||
prerun: false
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
---
|
|
||||||
driver:
|
|
||||||
name: docker
|
|
||||||
platforms:
|
|
||||||
- name: centos-7
|
|
||||||
image: quay.io/ansible-freeipa/upstream-tests:centos-7
|
|
||||||
pre_build_image: true
|
|
||||||
hostname: ipaserver.test.local
|
|
||||||
dns_servers:
|
|
||||||
- 127.0.0.1
|
|
||||||
volumes:
|
|
||||||
- /sys/fs/cgroup:/sys/fs/cgroup:ro
|
|
||||||
command: /usr/sbin/init
|
|
||||||
privileged: true
|
|
||||||
provisioner:
|
|
||||||
name: ansible
|
|
||||||
playbooks:
|
|
||||||
prepare: ../resources/playbooks/prepare.yml
|
|
||||||
prerun: false
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
fedora-latest
|
|
||||||
@@ -1,30 +0,0 @@
|
|||||||
FROM fedora:latest
|
|
||||||
ENV container=docker
|
|
||||||
|
|
||||||
RUN rm -fv /var/cache/dnf/metadata_lock.pid; \
|
|
||||||
dnf makecache; \
|
|
||||||
dnf --assumeyes install \
|
|
||||||
/usr/bin/python3 \
|
|
||||||
/usr/bin/python3-config \
|
|
||||||
/usr/bin/dnf-3 \
|
|
||||||
sudo \
|
|
||||||
bash \
|
|
||||||
systemd \
|
|
||||||
procps-ng \
|
|
||||||
iproute && \
|
|
||||||
dnf clean all; \
|
|
||||||
(cd /lib/systemd/system/sysinit.target.wants/; for i in *; do [ $i == systemd-tmpfiles-setup.service ] || rm -f $i; done); \
|
|
||||||
rm -f /lib/systemd/system/multi-user.target.wants/*;\
|
|
||||||
rm -f /etc/systemd/system/*.wants/*;\
|
|
||||||
rm -f /lib/systemd/system/local-fs.target.wants/*; \
|
|
||||||
rm -f /lib/systemd/system/sockets.target.wants/*udev*; \
|
|
||||||
rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \
|
|
||||||
rm -f /lib/systemd/system/basic.target.wants/*;\
|
|
||||||
rm -f /lib/systemd/system/anaconda.target.wants/*; \
|
|
||||||
rm -rf /var/cache/dnf/;
|
|
||||||
|
|
||||||
STOPSIGNAL RTMIN+3
|
|
||||||
|
|
||||||
VOLUME ["/sys/fs/cgroup"]
|
|
||||||
|
|
||||||
CMD ["/usr/sbin/init"]
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
---
|
|
||||||
driver:
|
|
||||||
name: docker
|
|
||||||
platforms:
|
|
||||||
- name: fedora-latest-build
|
|
||||||
image: "fedora:latest"
|
|
||||||
dockerfile: Dockerfile
|
|
||||||
hostname: ipaserver.test.local
|
|
||||||
dns_servers:
|
|
||||||
- 8.8.8.8
|
|
||||||
volumes:
|
|
||||||
- /sys/fs/cgroup:/sys/fs/cgroup:ro
|
|
||||||
command: /usr/sbin/init
|
|
||||||
privileged: true
|
|
||||||
provisioner:
|
|
||||||
name: ansible
|
|
||||||
playbooks:
|
|
||||||
prepare: ../resources/playbooks/prepare-build.yml
|
|
||||||
prerun: false
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
---
|
|
||||||
driver:
|
|
||||||
name: docker
|
|
||||||
platforms:
|
|
||||||
- name: fedora-latest
|
|
||||||
image: quay.io/ansible-freeipa/upstream-tests:fedora-latest
|
|
||||||
pre_build_image: true
|
|
||||||
hostname: ipaserver.test.local
|
|
||||||
dns_servers:
|
|
||||||
- 127.0.0.1
|
|
||||||
volumes:
|
|
||||||
- /sys/fs/cgroup:/sys/fs/cgroup:ro
|
|
||||||
command: /usr/sbin/init
|
|
||||||
privileged: true
|
|
||||||
provisioner:
|
|
||||||
name: ansible
|
|
||||||
playbooks:
|
|
||||||
prepare: ../resources/playbooks/prepare.yml
|
|
||||||
prerun: false
|
|
||||||
@@ -1,30 +0,0 @@
|
|||||||
FROM fedora:rawhide
|
|
||||||
ENV container=docker
|
|
||||||
|
|
||||||
RUN rm -fv /var/cache/dnf/metadata_lock.pid; \
|
|
||||||
dnf makecache; \
|
|
||||||
dnf --assumeyes install \
|
|
||||||
/usr/bin/python3 \
|
|
||||||
/usr/bin/python3-config \
|
|
||||||
/usr/bin/dnf-3 \
|
|
||||||
sudo \
|
|
||||||
bash \
|
|
||||||
systemd \
|
|
||||||
procps-ng \
|
|
||||||
iproute && \
|
|
||||||
dnf clean all; \
|
|
||||||
(cd /lib/systemd/system/sysinit.target.wants/; for i in *; do [ $i == systemd-tmpfiles-setup.service ] || rm -f $i; done); \
|
|
||||||
rm -f /lib/systemd/system/multi-user.target.wants/*;\
|
|
||||||
rm -f /etc/systemd/system/*.wants/*;\
|
|
||||||
rm -f /lib/systemd/system/local-fs.target.wants/*; \
|
|
||||||
rm -f /lib/systemd/system/sockets.target.wants/*udev*; \
|
|
||||||
rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \
|
|
||||||
rm -f /lib/systemd/system/basic.target.wants/*;\
|
|
||||||
rm -f /lib/systemd/system/anaconda.target.wants/*; \
|
|
||||||
rm -rf /var/cache/dnf/;
|
|
||||||
|
|
||||||
STOPSIGNAL RTMIN+3
|
|
||||||
|
|
||||||
VOLUME ["/sys/fs/cgroup"]
|
|
||||||
|
|
||||||
CMD ["/usr/sbin/init"]
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
---
|
|
||||||
driver:
|
|
||||||
name: docker
|
|
||||||
platforms:
|
|
||||||
- name: fedora-rawhide-build
|
|
||||||
image: "fedora:rawhide"
|
|
||||||
dockerfile: Dockerfile
|
|
||||||
hostname: ipaserver.test.local
|
|
||||||
dns_servers:
|
|
||||||
- 8.8.8.8
|
|
||||||
volumes:
|
|
||||||
- /sys/fs/cgroup:/sys/fs/cgroup:ro
|
|
||||||
command: /usr/sbin/init
|
|
||||||
privileged: true
|
|
||||||
provisioner:
|
|
||||||
name: ansible
|
|
||||||
playbooks:
|
|
||||||
prepare: ../resources/playbooks/prepare-build.yml
|
|
||||||
prerun: false
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
---
|
|
||||||
driver:
|
|
||||||
name: docker
|
|
||||||
platforms:
|
|
||||||
- name: fedora-rawhide
|
|
||||||
image: quay.io/ansible-freeipa/upstream-tests:fedora-rawhide
|
|
||||||
pre_build_image: true
|
|
||||||
hostname: ipaserver.test.local
|
|
||||||
dns_servers:
|
|
||||||
- 127.0.0.1
|
|
||||||
volumes:
|
|
||||||
- /sys/fs/cgroup:/sys/fs/cgroup:ro
|
|
||||||
command: /usr/sbin/init
|
|
||||||
privileged: true
|
|
||||||
provisioner:
|
|
||||||
name: ansible
|
|
||||||
playbooks:
|
|
||||||
prepare: ../resources/playbooks/prepare.yml
|
|
||||||
prerun: false
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
../../../plugins/modules/
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
../../../plugins/module_utils/
|
|
||||||
@@ -1,28 +0,0 @@
|
|||||||
---
|
|
||||||
- name: Converge
|
|
||||||
hosts: all
|
|
||||||
tasks:
|
|
||||||
- include_tasks: prepare-common.yml
|
|
||||||
|
|
||||||
- name: Ensure sudo package is installed
|
|
||||||
package:
|
|
||||||
name: sudo
|
|
||||||
|
|
||||||
- name: Ensure nss package is updated
|
|
||||||
package:
|
|
||||||
name: nss
|
|
||||||
state: latest # noqa 403
|
|
||||||
|
|
||||||
- include_role:
|
|
||||||
name: ipaserver
|
|
||||||
vars:
|
|
||||||
ipaserver_setup_dns: yes
|
|
||||||
ipaserver_setup_kra: yes
|
|
||||||
ipaserver_auto_forwarders: yes
|
|
||||||
ipaserver_no_dnssec_validation: yes
|
|
||||||
ipaserver_auto_reverse: yes
|
|
||||||
ipaadmin_password: SomeADMINpassword
|
|
||||||
ipadm_password: SomeDMpassword
|
|
||||||
ipaserver_domain: test.local
|
|
||||||
ipaserver_realm: TEST.LOCAL
|
|
||||||
ipaclient_no_ntp: yes
|
|
||||||
@@ -1,33 +0,0 @@
|
|||||||
---
|
|
||||||
# IPA depends on IPv6 and without it dirsrv service won't start.
|
|
||||||
- name: Ensure IPv6 is ENABLED
|
|
||||||
ansible.posix.sysctl:
|
|
||||||
name: "{{ item.name }}"
|
|
||||||
value: "{{ item.value }}"
|
|
||||||
sysctl_set: yes
|
|
||||||
state: present
|
|
||||||
reload: yes
|
|
||||||
with_items:
|
|
||||||
- name: net.ipv6.conf.all.disable_ipv6
|
|
||||||
value: 0
|
|
||||||
- name: net.ipv6.conf.lo.disable_ipv6
|
|
||||||
value: 0
|
|
||||||
- name: net.ipv6.conf.eth0.disable_ipv6
|
|
||||||
value: 1
|
|
||||||
|
|
||||||
# Set fs.protected_regular to 0
|
|
||||||
# This is needed in some IPA versions in order to get KRA enabled.
|
|
||||||
# See https://pagure.io/freeipa/issue/7906 for more information.
|
|
||||||
- name: stat protected_regular
|
|
||||||
ansible.builtin.stat:
|
|
||||||
path: /proc/sys/fs/protected_regular
|
|
||||||
register: result
|
|
||||||
|
|
||||||
- name: Ensure fs.protected_regular is disabled
|
|
||||||
ansible.posix.sysctl:
|
|
||||||
name: fs.protected_regular
|
|
||||||
value: 0
|
|
||||||
sysctl_set: yes
|
|
||||||
state: present
|
|
||||||
reload: yes
|
|
||||||
when: result.stat.exists
|
|
||||||
@@ -1,48 +0,0 @@
|
|||||||
---
|
|
||||||
- name: Converge
|
|
||||||
hosts: all
|
|
||||||
tasks:
|
|
||||||
- include_tasks: prepare-common.yml
|
|
||||||
|
|
||||||
# In some distros DS won't start up after reboot
|
|
||||||
# This is due to a problem in 389-ds. See tickets:
|
|
||||||
# * https://pagure.io/389-ds-base/issue/47429
|
|
||||||
# * https://pagure.io/389-ds-base/issue/51039
|
|
||||||
#
|
|
||||||
# To avoid this problem we create the directories before starting IPA.
|
|
||||||
- name: Ensure lock dirs for DS exists
|
|
||||||
ansible.builtin.file:
|
|
||||||
state: directory
|
|
||||||
owner: dirsrv
|
|
||||||
group: dirsrv
|
|
||||||
path: "{{ item }}"
|
|
||||||
mode: 0770
|
|
||||||
loop:
|
|
||||||
- /var/lock/dirsrv/
|
|
||||||
- /var/lock/dirsrv/slapd-TEST-LOCAL/
|
|
||||||
|
|
||||||
- name: Ensure IPA server is up an running
|
|
||||||
ansible.builtin.service:
|
|
||||||
name: ipa
|
|
||||||
state: started
|
|
||||||
|
|
||||||
- name: Wait for krb5dkc to be running
|
|
||||||
ansible.builtin.service_facts:
|
|
||||||
no_log: True
|
|
||||||
register: result
|
|
||||||
until: "'krb5kdc.service' in result.ansible_facts.services and \
|
|
||||||
result.ansible_facts.services['krb5kdc.service'].state == 'running'"
|
|
||||||
retries: 30
|
|
||||||
delay: 5
|
|
||||||
|
|
||||||
- name: Check if TGT is available for admin.
|
|
||||||
ansible.builtin.shell:
|
|
||||||
cmd: echo SomeADMINpassword | kinit -c ansible_freeipa_cache admin
|
|
||||||
register: result
|
|
||||||
until: not result.failed
|
|
||||||
retries: 30
|
|
||||||
delay: 5
|
|
||||||
|
|
||||||
- name: Cleanup TGT.
|
|
||||||
ansible.builtin.shell:
|
|
||||||
cmd: kdestroy -c ansible_freeipa_cache -A
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
../../../roles/
|
|
||||||
@@ -102,48 +102,16 @@ The pytests are tests that will execute small playbooks and then will verify the
|
|||||||
To select only these tests on a test execution use the option `-m "not playbook"`.
|
To select only these tests on a test execution use the option `-m "not playbook"`.
|
||||||
|
|
||||||
|
|
||||||
## Running tests in a docker container
|
## Running tests in a container
|
||||||
|
|
||||||
It's also possible to run the tests in a container.
|
It's also possible to run the tests in a container. Use the script `infra/image/start.sh` to start a container.
|
||||||
|
|
||||||
### Creating a container to run the tests
|
|
||||||
|
|
||||||
Before setting up a container you will need to install molecule framework:
|
|
||||||
|
|
||||||
```
|
|
||||||
pip install molecule-plugins[docker]
|
|
||||||
```
|
|
||||||
|
|
||||||
Now you can start a test container using the following command:
|
|
||||||
```
|
|
||||||
molecule create -s c8s
|
|
||||||
```
|
|
||||||
|
|
||||||
Note: Currently the containers available for running the tests are:
|
|
||||||
* fedora-latest
|
|
||||||
* centos-7
|
|
||||||
* c8s
|
|
||||||
* c9s
|
|
||||||
|
|
||||||
### Running the tests inside the container
|
|
||||||
|
|
||||||
To run the tests you will use pytest (works the same as for VMs).
|
To run the tests you will use pytest (works the same as for VMs).
|
||||||
|
|
||||||
```
|
```
|
||||||
RUN_TESTS_IN_DOCKER=1 IPA_SERVER_HOST=c8s pytest
|
RUN_TESTS_IN_DOCKER=podman IPA_SERVER_HOST=ansbile-freeipa-tests pytest -m "playbook"
|
||||||
```
|
```
|
||||||
|
|
||||||
### Cleaning up after tests
|
|
||||||
|
|
||||||
After running the tests you should probably destroy the test container using:
|
|
||||||
|
|
||||||
```
|
|
||||||
molecule destroy -s c8s
|
|
||||||
```
|
|
||||||
|
|
||||||
See [Running the tests](#running-the-tests) section for more information on available options.
|
|
||||||
|
|
||||||
|
|
||||||
## Running local tests with upstream CI images
|
## Running local tests with upstream CI images
|
||||||
|
|
||||||
To run tests locally using the same images used by upstream CI use `utils/run-tests.sh`.
|
To run tests locally using the same images used by upstream CI use `utils/run-tests.sh`.
|
||||||
@@ -172,8 +140,6 @@ By default the tests are executed against the latest version of the Fedora image
|
|||||||
utils/run-tests.sh -i c9s tests/host/test_host.yml
|
utils/run-tests.sh -i c9s tests/host/test_host.yml
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
## Upcoming/desired improvements:
|
## Upcoming/desired improvements:
|
||||||
|
|
||||||
* A script to pre-config the complete test environment using virsh.
|
* A test matrix to run tests against different distros in parallel.
|
||||||
* A test matrix to run tests against different distros in parallel (probably using tox).
|
|
||||||
|
|||||||
@@ -1,243 +0,0 @@
|
|||||||
---
|
|
||||||
schedules:
|
|
||||||
- cron: "0 19 * * *"
|
|
||||||
displayName: Nightly Builds
|
|
||||||
branches:
|
|
||||||
include:
|
|
||||||
- master
|
|
||||||
always: true
|
|
||||||
|
|
||||||
trigger: none
|
|
||||||
|
|
||||||
pool:
|
|
||||||
vmImage: 'ubuntu-20.04'
|
|
||||||
|
|
||||||
stages:
|
|
||||||
|
|
||||||
# Fedora
|
|
||||||
|
|
||||||
- stage: FedoraLatest_Ansible_Core_2_13
|
|
||||||
dependsOn: []
|
|
||||||
jobs:
|
|
||||||
- template: templates/group_tests.yml
|
|
||||||
parameters:
|
|
||||||
build_number: $(Build.BuildNumber)
|
|
||||||
scenario: fedora-latest
|
|
||||||
ansible_version: "-core >=2.13,<2.14"
|
|
||||||
|
|
||||||
- stage: FedoraLatest_Ansible_Core_2_14
|
|
||||||
dependsOn: []
|
|
||||||
jobs:
|
|
||||||
- template: templates/group_tests.yml
|
|
||||||
parameters:
|
|
||||||
build_number: $(Build.BuildNumber)
|
|
||||||
scenario: fedora-latest
|
|
||||||
ansible_version: "-core >=2.14,<2.15"
|
|
||||||
|
|
||||||
- stage: FedoraLatest_Ansible_Core_2_15
|
|
||||||
dependsOn: []
|
|
||||||
jobs:
|
|
||||||
- template: templates/group_tests.yml
|
|
||||||
parameters:
|
|
||||||
build_number: $(Build.BuildNumber)
|
|
||||||
scenario: fedora-latest
|
|
||||||
ansible_version: "-core >=2.15,<2.16"
|
|
||||||
|
|
||||||
- stage: FedoraLatest_Ansible_latest
|
|
||||||
dependsOn: []
|
|
||||||
jobs:
|
|
||||||
- template: templates/group_tests.yml
|
|
||||||
parameters:
|
|
||||||
build_number: $(Build.BuildNumber)
|
|
||||||
scenario: fedora-latest
|
|
||||||
ansible_version: ""
|
|
||||||
|
|
||||||
# Galaxy on Fedora
|
|
||||||
|
|
||||||
- stage: Galaxy_FedoraLatest_Ansible_Core_2_13
|
|
||||||
dependsOn: []
|
|
||||||
jobs:
|
|
||||||
- template: templates/galaxy_tests.yml
|
|
||||||
parameters:
|
|
||||||
build_number: $(Build.BuildNumber)
|
|
||||||
scenario: fedora-latest
|
|
||||||
ansible_version: "-core >=2.13,<2.14"
|
|
||||||
|
|
||||||
- stage: Galaxy_FedoraLatest_Ansible_Core_2_14
|
|
||||||
dependsOn: []
|
|
||||||
jobs:
|
|
||||||
- template: templates/galaxy_tests.yml
|
|
||||||
parameters:
|
|
||||||
build_number: $(Build.BuildNumber)
|
|
||||||
scenario: fedora-latest
|
|
||||||
ansible_version: "-core >=2.14,<2.15"
|
|
||||||
|
|
||||||
- stage: Galaxy_FedoraLatest_Ansible_Core_2_15
|
|
||||||
dependsOn: []
|
|
||||||
jobs:
|
|
||||||
- template: templates/galaxy_tests.yml
|
|
||||||
parameters:
|
|
||||||
build_number: $(Build.BuildNumber)
|
|
||||||
scenario: fedora-latest
|
|
||||||
ansible_version: "-core >=2.15,<2.16"
|
|
||||||
|
|
||||||
- stage: Galaxy_FedoraLatest_Ansible_latest
|
|
||||||
dependsOn: []
|
|
||||||
jobs:
|
|
||||||
- template: templates/galaxy_tests.yml
|
|
||||||
parameters:
|
|
||||||
build_number: $(Build.BuildNumber)
|
|
||||||
scenario: fedora-latest
|
|
||||||
ansible_version: ""
|
|
||||||
|
|
||||||
# Fedora Rawhide
|
|
||||||
|
|
||||||
- stage: FedoraRawhide_Ansible_Core_2_13
|
|
||||||
dependsOn: []
|
|
||||||
jobs:
|
|
||||||
- template: templates/group_tests.yml
|
|
||||||
parameters:
|
|
||||||
build_number: $(Build.BuildNumber)
|
|
||||||
scenario: fedora-rawhide
|
|
||||||
ansible_version: "-core >=2.13,<2.14"
|
|
||||||
|
|
||||||
- stage: FedoraRawhide_Ansible_Core_2_14
|
|
||||||
dependsOn: []
|
|
||||||
jobs:
|
|
||||||
- template: templates/group_tests.yml
|
|
||||||
parameters:
|
|
||||||
build_number: $(Build.BuildNumber)
|
|
||||||
scenario: fedora-rawhide
|
|
||||||
ansible_version: "-core >=2.14,<2.15"
|
|
||||||
|
|
||||||
- stage: FedoraRawhide_Ansible_Core_2_15
|
|
||||||
dependsOn: []
|
|
||||||
jobs:
|
|
||||||
- template: templates/group_tests.yml
|
|
||||||
parameters:
|
|
||||||
build_number: $(Build.BuildNumber)
|
|
||||||
scenario: fedora-rawhide
|
|
||||||
ansible_version: "-core >=2.15,<2.16"
|
|
||||||
|
|
||||||
- stage: FedoraRawhide_Ansible_latest
|
|
||||||
dependsOn: []
|
|
||||||
jobs:
|
|
||||||
- template: templates/group_tests.yml
|
|
||||||
parameters:
|
|
||||||
build_number: $(Build.BuildNumber)
|
|
||||||
scenario: fedora-rawhide
|
|
||||||
ansible_version: ""
|
|
||||||
|
|
||||||
# CentoOS 9 Stream
|
|
||||||
|
|
||||||
- stage: c9s_Ansible_Core_2_13
|
|
||||||
dependsOn: []
|
|
||||||
jobs:
|
|
||||||
- template: templates/group_tests.yml
|
|
||||||
parameters:
|
|
||||||
build_number: $(Build.BuildNumber)
|
|
||||||
scenario: c9s
|
|
||||||
ansible_version: "-core >=2.13,<2.14"
|
|
||||||
|
|
||||||
- stage: c9s_Ansible_Core_2_14
|
|
||||||
dependsOn: []
|
|
||||||
jobs:
|
|
||||||
- template: templates/group_tests.yml
|
|
||||||
parameters:
|
|
||||||
build_number: $(Build.BuildNumber)
|
|
||||||
scenario: c9s
|
|
||||||
ansible_version: "-core >=2.14,<2.15"
|
|
||||||
|
|
||||||
- stage: c9s_Ansible_Core_2_15
|
|
||||||
dependsOn: []
|
|
||||||
jobs:
|
|
||||||
- template: templates/group_tests.yml
|
|
||||||
parameters:
|
|
||||||
build_number: $(Build.BuildNumber)
|
|
||||||
scenario: c9s
|
|
||||||
ansible_version: "-core >=2.15,<2.16"
|
|
||||||
|
|
||||||
- stage: c9s_Ansible_latest
|
|
||||||
dependsOn: []
|
|
||||||
jobs:
|
|
||||||
- template: templates/group_tests.yml
|
|
||||||
parameters:
|
|
||||||
build_number: $(Build.BuildNumber)
|
|
||||||
scenario: c9s
|
|
||||||
ansible_version: ""
|
|
||||||
|
|
||||||
# CentOS 8 Stream
|
|
||||||
|
|
||||||
- stage: c8s_Ansible_Core_2_13
|
|
||||||
dependsOn: []
|
|
||||||
jobs:
|
|
||||||
- template: templates/group_tests.yml
|
|
||||||
parameters:
|
|
||||||
build_number: $(Build.BuildNumber)
|
|
||||||
scenario: c8s
|
|
||||||
ansible_version: "-core >=2.13,<2.14"
|
|
||||||
|
|
||||||
- stage: c8s_Ansible_Core_2_14
|
|
||||||
dependsOn: []
|
|
||||||
jobs:
|
|
||||||
- template: templates/group_tests.yml
|
|
||||||
parameters:
|
|
||||||
build_number: $(Build.BuildNumber)
|
|
||||||
scenario: c8s
|
|
||||||
ansible_version: "-core >=2.14,<2.15"
|
|
||||||
|
|
||||||
- stage: c8s_Ansible_Core_2_15
|
|
||||||
dependsOn: []
|
|
||||||
jobs:
|
|
||||||
- template: templates/group_tests.yml
|
|
||||||
parameters:
|
|
||||||
build_number: $(Build.BuildNumber)
|
|
||||||
scenario: c8s
|
|
||||||
ansible_version: "-core >=2.15,<2.16"
|
|
||||||
|
|
||||||
- stage: c8s_Ansible_latest
|
|
||||||
dependsOn: []
|
|
||||||
jobs:
|
|
||||||
- template: templates/group_tests.yml
|
|
||||||
parameters:
|
|
||||||
build_number: $(Build.BuildNumber)
|
|
||||||
scenario: c8s
|
|
||||||
ansible_version: ""
|
|
||||||
|
|
||||||
# CentOS 7
|
|
||||||
|
|
||||||
- stage: CentOS7_Ansible_Core_2_13
|
|
||||||
dependsOn: []
|
|
||||||
jobs:
|
|
||||||
- template: templates/group_tests.yml
|
|
||||||
parameters:
|
|
||||||
build_number: $(Build.BuildNumber)
|
|
||||||
scenario: centos-7
|
|
||||||
ansible_version: "-core >=2.13,<2.14"
|
|
||||||
|
|
||||||
- stage: CentOS7_Ansible_Core_2_14
|
|
||||||
dependsOn: []
|
|
||||||
jobs:
|
|
||||||
- template: templates/group_tests.yml
|
|
||||||
parameters:
|
|
||||||
build_number: $(Build.BuildNumber)
|
|
||||||
scenario: centos-7
|
|
||||||
ansible_version: "-core >=2.14,<2.15"
|
|
||||||
|
|
||||||
- stage: CentOS7_Ansible_Core_2_15
|
|
||||||
dependsOn: []
|
|
||||||
jobs:
|
|
||||||
- template: templates/group_tests.yml
|
|
||||||
parameters:
|
|
||||||
build_number: $(Build.BuildNumber)
|
|
||||||
scenario: centos-7
|
|
||||||
ansible_version: "-core >=2.15,<2.16"
|
|
||||||
|
|
||||||
- stage: CentOS7_Ansible_latest
|
|
||||||
dependsOn: []
|
|
||||||
jobs:
|
|
||||||
- template: templates/group_tests.yml
|
|
||||||
parameters:
|
|
||||||
build_number: $(Build.BuildNumber)
|
|
||||||
scenario: centos-7
|
|
||||||
ansible_version: ""
|
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
---
|
|
||||||
parameters:
|
|
||||||
- name: distro
|
|
||||||
type: string
|
|
||||||
default: fedora-latest
|
|
||||||
- name: build_number
|
|
||||||
type: string
|
|
||||||
- name: ansible_version
|
|
||||||
type: string
|
|
||||||
default: ""
|
|
||||||
- name: target_python
|
|
||||||
type: string
|
|
||||||
default: "/usr/bin/python3"
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
- template: playbook_fast.yml
|
|
||||||
parameters:
|
|
||||||
group_number: 1
|
|
||||||
number_of_groups: 1
|
|
||||||
build_number: ${{ parameters.build_number }}
|
|
||||||
distro: ${{ parameters.distro }}
|
|
||||||
ansible_version: ${{ parameters.ansible_version }}
|
|
||||||
python_version: '< 3.12'
|
|
||||||
target_python: ${{ parameters.target_python }}
|
|
||||||
|
|
||||||
# - template: pytest_tests.yml
|
|
||||||
# parameters:
|
|
||||||
# build_number: ${{ parameters.build_number }}
|
|
||||||
# distro: ${{ parameters.distro }}
|
|
||||||
# ansible_version: ${{ parameters.ansible_version }}
|
|
||||||
# python_version: '< 3.12'
|
|
||||||
@@ -1,65 +0,0 @@
|
|||||||
---
|
|
||||||
parameters:
|
|
||||||
- name: build_number
|
|
||||||
type: string
|
|
||||||
- name: scenario
|
|
||||||
type: string
|
|
||||||
default: fedora-latest
|
|
||||||
- name: ansible_version
|
|
||||||
type: string
|
|
||||||
default: ""
|
|
||||||
- name: python_version
|
|
||||||
type: string
|
|
||||||
default: 3.x
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
- job: Test_PyTests
|
|
||||||
displayName: Run pytests on ${{ parameters.scenario }}
|
|
||||||
timeoutInMinutes: 240
|
|
||||||
steps:
|
|
||||||
- task: UsePythonVersion@0
|
|
||||||
inputs:
|
|
||||||
versionSpec: '${{ parameters.python_version }}'
|
|
||||||
|
|
||||||
- script: |
|
|
||||||
pip install \
|
|
||||||
"molecule-plugins[docker]" \
|
|
||||||
"requests<2.29" \
|
|
||||||
"ansible${{ parameters.ansible_version }}"
|
|
||||||
retryCountOnTaskFailure: 5
|
|
||||||
displayName: Install molecule and Ansible
|
|
||||||
|
|
||||||
- script: ansible-galaxy collection install community.docker ansible.posix
|
|
||||||
retryCountOnTaskFailure: 5
|
|
||||||
displayName: Install Ansible collections
|
|
||||||
|
|
||||||
- script: pip install -r requirements-tests.txt
|
|
||||||
retryCountOnTaskFailure: 5
|
|
||||||
displayName: Install dependencies
|
|
||||||
|
|
||||||
- script: |
|
|
||||||
utils/build-galaxy-release.sh -i
|
|
||||||
molecule create -s ${{ parameters.scenario }}
|
|
||||||
retryCountOnTaskFailure: 5
|
|
||||||
displayName: Setup test container
|
|
||||||
env:
|
|
||||||
ANSIBLE_LIBRARY: ./molecule
|
|
||||||
|
|
||||||
- script: |
|
|
||||||
cd ~/.ansible/collections/ansible_collections/freeipa/ansible_freeipa
|
|
||||||
pytest \
|
|
||||||
-m "not playbook" \
|
|
||||||
--verbose \
|
|
||||||
--color=yes \
|
|
||||||
--junit-xml=TEST-results-pytests.xml
|
|
||||||
displayName: Run tests
|
|
||||||
env:
|
|
||||||
IPA_SERVER_HOST: ${{ parameters.scenario }}
|
|
||||||
RUN_TESTS_IN_DOCKER: true
|
|
||||||
IPA_VERBOSITY: "-vvv"
|
|
||||||
|
|
||||||
- task: PublishTestResults@2
|
|
||||||
inputs:
|
|
||||||
mergeTestResults: true
|
|
||||||
testRunTitle: PlaybookTests-Build${{ parameters.build_number }}
|
|
||||||
condition: succeededOrFailed()
|
|
||||||
@@ -1,86 +0,0 @@
|
|||||||
---
|
|
||||||
parameters:
|
|
||||||
- name: group_number
|
|
||||||
type: number
|
|
||||||
default: 1
|
|
||||||
- name: number_of_groups
|
|
||||||
type: number
|
|
||||||
default: 1
|
|
||||||
- name: scenario
|
|
||||||
type: string
|
|
||||||
default: fedora-latest
|
|
||||||
- name: ansible_version
|
|
||||||
type: string
|
|
||||||
default: ""
|
|
||||||
- name: python_version
|
|
||||||
type: string
|
|
||||||
default: 3.x
|
|
||||||
- name: build_number
|
|
||||||
type: string
|
|
||||||
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
- job: Test_Group${{ parameters.group_number }}
|
|
||||||
displayName: Run playbook tests ${{ parameters.scenario }} (${{ parameters.group_number }}/${{ parameters.number_of_groups }})
|
|
||||||
timeoutInMinutes: 240
|
|
||||||
variables:
|
|
||||||
- template: variables.yaml
|
|
||||||
- template: variables_${{ parameters.scenario }}.yaml
|
|
||||||
steps:
|
|
||||||
- task: UsePythonVersion@0
|
|
||||||
inputs:
|
|
||||||
versionSpec: '${{ parameters.python_version }}'
|
|
||||||
|
|
||||||
- script: |
|
|
||||||
pip install \
|
|
||||||
"molecule-plugins[docker]" \
|
|
||||||
"requests<2.29" \
|
|
||||||
"ansible${{ parameters.ansible_version }}"
|
|
||||||
retryCountOnTaskFailure: 5
|
|
||||||
displayName: Install molecule and Ansible
|
|
||||||
|
|
||||||
- script: ansible-galaxy collection install community.docker ansible.posix
|
|
||||||
retryCountOnTaskFailure: 5
|
|
||||||
displayName: Install Ansible collections
|
|
||||||
|
|
||||||
- script: pip install -r requirements-tests.txt
|
|
||||||
retryCountOnTaskFailure: 5
|
|
||||||
displayName: Install dependencies
|
|
||||||
|
|
||||||
- script: |
|
|
||||||
utils/build-galaxy-release.sh -i
|
|
||||||
molecule create -s ${{ parameters.scenario }}
|
|
||||||
retryCountOnTaskFailure: 5
|
|
||||||
displayName: Setup test container
|
|
||||||
env:
|
|
||||||
ANSIBLE_LIBRARY: ./molecule
|
|
||||||
|
|
||||||
- script: |
|
|
||||||
python utils/check_test_configuration.py ${{ parameters.scenario }}
|
|
||||||
displayName: Check scenario test configuration
|
|
||||||
|
|
||||||
- script: |
|
|
||||||
cd ~/.ansible/collections/ansible_collections/freeipa/ansible_freeipa
|
|
||||||
pytest \
|
|
||||||
-m "playbook" \
|
|
||||||
--verbose \
|
|
||||||
--color=yes \
|
|
||||||
--splits=${{ parameters.number_of_groups }} \
|
|
||||||
--group=${{ parameters.group_number }} \
|
|
||||||
--randomly-seed=$(date "+%Y%m%d") \
|
|
||||||
--junit-xml=TEST-results-group-${{ parameters.group_number }}.xml
|
|
||||||
displayName: Run playbook tests
|
|
||||||
env:
|
|
||||||
IPA_SERVER_HOST: ${{ parameters.scenario }}
|
|
||||||
RUN_TESTS_IN_DOCKER: true
|
|
||||||
IPA_DISABLED_MODULES: ${{ variables.ipa_disabled_modules }}
|
|
||||||
IPA_DISABLED_TESTS: ${{ variables.ipa_disabled_tests }}
|
|
||||||
IPA_ENABLED_MODULES: ${{ variables.ipa_enabled_modules }}
|
|
||||||
IPA_ENABLED_TESTS: ${{ variables.ipa_enabled_tests }}
|
|
||||||
IPA_VERBOSITY: "-vvv"
|
|
||||||
|
|
||||||
- task: PublishTestResults@2
|
|
||||||
inputs:
|
|
||||||
mergeTestResults: true
|
|
||||||
testRunTitle: PlaybookTests-Build${{ parameters.build_number }}
|
|
||||||
condition: succeededOrFailed()
|
|
||||||
@@ -1,46 +0,0 @@
|
|||||||
---
|
|
||||||
parameters:
|
|
||||||
- name: scenario
|
|
||||||
type: string
|
|
||||||
default: fedora-latest
|
|
||||||
- name: build_number
|
|
||||||
type: string
|
|
||||||
- name: ansible_version
|
|
||||||
type: string
|
|
||||||
default: ""
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
- template: galaxy_script.yml
|
|
||||||
parameters:
|
|
||||||
group_number: 1
|
|
||||||
number_of_groups: 3
|
|
||||||
build_number: ${{ parameters.build_number }}
|
|
||||||
scenario: ${{ parameters.scenario }}
|
|
||||||
ansible_version: ${{ parameters.ansible_version }}
|
|
||||||
python_version: '< 3.12'
|
|
||||||
|
|
||||||
- template: galaxy_script.yml
|
|
||||||
parameters:
|
|
||||||
group_number: 2
|
|
||||||
number_of_groups: 3
|
|
||||||
build_number: ${{ parameters.build_number }}
|
|
||||||
scenario: ${{ parameters.scenario }}
|
|
||||||
ansible_version: ${{ parameters.ansible_version }}
|
|
||||||
python_version: '< 3.12'
|
|
||||||
|
|
||||||
- template: galaxy_script.yml
|
|
||||||
parameters:
|
|
||||||
group_number: 3
|
|
||||||
number_of_groups: 3
|
|
||||||
build_number: ${{ parameters.build_number }}
|
|
||||||
scenario: ${{ parameters.scenario }}
|
|
||||||
ansible_version: ${{ parameters.ansible_version }}
|
|
||||||
python_version: '< 3.12'
|
|
||||||
|
|
||||||
# Temporarily disable due to issues with ansible docker plugin.
|
|
||||||
#- template: galaxy_pytest_script.yml
|
|
||||||
# parameters:
|
|
||||||
# build_number: ${{ parameters.build_number }}
|
|
||||||
# scenario: ${{ parameters.scenario }}
|
|
||||||
# ansible_version: ${{ parameters.ansible_version }}
|
|
||||||
# python_version: '< 3.12'
|
|
||||||
@@ -1,46 +0,0 @@
|
|||||||
---
|
|
||||||
parameters:
|
|
||||||
- name: scenario
|
|
||||||
type: string
|
|
||||||
default: fedora-latest
|
|
||||||
- name: build_number
|
|
||||||
type: string
|
|
||||||
- name: ansible_version
|
|
||||||
type: string
|
|
||||||
default: ""
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
- template: playbook_tests.yml
|
|
||||||
parameters:
|
|
||||||
group_number: 1
|
|
||||||
number_of_groups: 3
|
|
||||||
build_number: ${{ parameters.build_number }}
|
|
||||||
scenario: ${{ parameters.scenario }}
|
|
||||||
ansible_version: ${{ parameters.ansible_version }}
|
|
||||||
python_version: '< 3.12'
|
|
||||||
|
|
||||||
- template: playbook_tests.yml
|
|
||||||
parameters:
|
|
||||||
group_number: 2
|
|
||||||
number_of_groups: 3
|
|
||||||
build_number: ${{ parameters.build_number }}
|
|
||||||
scenario: ${{ parameters.scenario }}
|
|
||||||
ansible_version: ${{ parameters.ansible_version }}
|
|
||||||
python_version: '< 3.12'
|
|
||||||
|
|
||||||
- template: playbook_tests.yml
|
|
||||||
parameters:
|
|
||||||
group_number: 3
|
|
||||||
number_of_groups: 3
|
|
||||||
build_number: ${{ parameters.build_number }}
|
|
||||||
scenario: ${{ parameters.scenario }}
|
|
||||||
ansible_version: ${{ parameters.ansible_version }}
|
|
||||||
python_version: '< 3.12'
|
|
||||||
|
|
||||||
# Temporarily disabled due to ansible docker plugin issue.
|
|
||||||
#- template: pytest_tests.yml
|
|
||||||
# parameters:
|
|
||||||
# build_number: ${{ parameters.build_number }}
|
|
||||||
# scenario: ${{ parameters.scenario }}
|
|
||||||
# ansible_version: ${{ parameters.ansible_version }}
|
|
||||||
# python_version: '< 3.12'
|
|
||||||
@@ -1,84 +0,0 @@
|
|||||||
---
|
|
||||||
parameters:
|
|
||||||
- name: group_number
|
|
||||||
type: number
|
|
||||||
default: 1
|
|
||||||
- name: number_of_groups
|
|
||||||
type: number
|
|
||||||
default: 1
|
|
||||||
- name: distro
|
|
||||||
type: string
|
|
||||||
default: fedora-latest
|
|
||||||
- name: ansible_version
|
|
||||||
type: string
|
|
||||||
default: ""
|
|
||||||
- name: python_version
|
|
||||||
type: string
|
|
||||||
default: 3.x
|
|
||||||
- name: build_number
|
|
||||||
type: string
|
|
||||||
- name: target_python
|
|
||||||
type: string
|
|
||||||
default: "/usr/bin/python3"
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
- job: Test_Group${{ parameters.group_number }}
|
|
||||||
displayName: Run playbook tests ${{ parameters.distro }} (${{ parameters.group_number }}/${{ parameters.number_of_groups }})
|
|
||||||
timeoutInMinutes: 360
|
|
||||||
variables:
|
|
||||||
- template: variables.yaml
|
|
||||||
- template: variables_${{ parameters.distro }}.yaml
|
|
||||||
steps:
|
|
||||||
- task: UsePythonVersion@0
|
|
||||||
inputs:
|
|
||||||
versionSpec: '${{ parameters.python_version }}'
|
|
||||||
|
|
||||||
- script: |
|
|
||||||
pip install "ansible${{ parameters.ansible_version }}"
|
|
||||||
retryCountOnTaskFailure: 5
|
|
||||||
displayName: Install Ansible
|
|
||||||
|
|
||||||
- script: ansible-galaxy collection install containers.podman
|
|
||||||
retryCountOnTaskFailure: 5
|
|
||||||
displayName: Install Ansible collections
|
|
||||||
|
|
||||||
- script: pip install -r requirements-tests.txt
|
|
||||||
retryCountOnTaskFailure: 5
|
|
||||||
displayName: Install dependencies
|
|
||||||
|
|
||||||
- script: |
|
|
||||||
. utils/set_test_modules
|
|
||||||
python3 utils/check_test_configuration.py ${{ parameters.distro }}
|
|
||||||
displayName: Check test configuration
|
|
||||||
|
|
||||||
- script: |
|
|
||||||
utils/setup_test_container.sh \
|
|
||||||
-e podman \
|
|
||||||
-a \
|
|
||||||
-m 4 \
|
|
||||||
-n "ipaserver.test.local" \
|
|
||||||
-p ${{ parameters.target_python }} \
|
|
||||||
-i ${{ parameters.distro }}-server \
|
|
||||||
${{ parameters.distro }}-test
|
|
||||||
displayName: Setup target container
|
|
||||||
|
|
||||||
- script: |
|
|
||||||
. utils/set_test_modules
|
|
||||||
pytest -m "playbook" --verbose --color=yes --suppress-no-test-exit-code --junit-xml=TEST-results-pr-check.xml
|
|
||||||
displayName: Run playbook tests
|
|
||||||
env:
|
|
||||||
ANSIBLE_ROLES_PATH: "${PWD}/roles"
|
|
||||||
ANSIBLE_LIBRARY: "${PWD}/plugins"
|
|
||||||
ANSIBLE_MODULE_UTILS: "${PWD}/plugins/module_utils"
|
|
||||||
IPA_SERVER_HOST: ${{ parameters.distro }}-test
|
|
||||||
RUN_TESTS_IN_DOCKER: podman
|
|
||||||
IPA_DISABLED_MODULES: ${{ variables.ipa_disabled_modules }}
|
|
||||||
IPA_DISABLED_TESTS: ${{ variables.ipa_disabled_tests }}
|
|
||||||
IPA_VERBOSITY: "-vvv"
|
|
||||||
IPA_PYTHON_PATH: ${{ parameters.target_python }}
|
|
||||||
|
|
||||||
- task: PublishTestResults@2
|
|
||||||
inputs:
|
|
||||||
mergeTestResults: true
|
|
||||||
testRunTitle: PlaybookTests-Build${{ parameters.build_number }}
|
|
||||||
condition: succeededOrFailed()
|
|
||||||
@@ -1,88 +0,0 @@
|
|||||||
---
|
|
||||||
parameters:
|
|
||||||
- name: group_number
|
|
||||||
type: number
|
|
||||||
default: 1
|
|
||||||
- name: number_of_groups
|
|
||||||
type: number
|
|
||||||
default: 1
|
|
||||||
- name: scenario
|
|
||||||
type: string
|
|
||||||
default: fedora-latest
|
|
||||||
- name: ansible_version
|
|
||||||
type: string
|
|
||||||
default: ""
|
|
||||||
- name: python_version
|
|
||||||
type: string
|
|
||||||
default: 3.x
|
|
||||||
- name: build_number
|
|
||||||
type: string
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
- job: Test_Group${{ parameters.group_number }}
|
|
||||||
displayName: Run playbook tests ${{ parameters.scenario }} (${{ parameters.group_number }}/${{ parameters.number_of_groups }})
|
|
||||||
timeoutInMinutes: 240
|
|
||||||
variables:
|
|
||||||
- template: variables.yaml
|
|
||||||
- template: variables_${{ parameters.scenario }}.yaml
|
|
||||||
steps:
|
|
||||||
- task: UsePythonVersion@0
|
|
||||||
inputs:
|
|
||||||
versionSpec: '${{ parameters.python_version }}'
|
|
||||||
|
|
||||||
- script: |
|
|
||||||
pip install \
|
|
||||||
"molecule-plugins[docker]" \
|
|
||||||
"requests<2.29" \
|
|
||||||
"ansible${{ parameters.ansible_version }}"
|
|
||||||
retryCountOnTaskFailure: 5
|
|
||||||
displayName: Install molecule and Ansible
|
|
||||||
|
|
||||||
- script: ansible-galaxy collection install community.docker ansible.posix
|
|
||||||
retryCountOnTaskFailure: 5
|
|
||||||
displayName: Install Ansible collections
|
|
||||||
|
|
||||||
- script: pip install -r requirements-tests.txt
|
|
||||||
retryCountOnTaskFailure: 5
|
|
||||||
displayName: Install dependencies
|
|
||||||
|
|
||||||
- script: |
|
|
||||||
rm -rf ~/ansible
|
|
||||||
mkdir -p ~/.ansible/roles ~/.ansible/library ~/.ansible/module_utils
|
|
||||||
cp -a roles/* ~/.ansible/roles
|
|
||||||
cp -a plugins/modules/* ~/.ansible/library
|
|
||||||
cp -a plugins/module_utils/* ~/.ansible/module_utils
|
|
||||||
molecule create -s ${{ parameters.scenario }}
|
|
||||||
retryCountOnTaskFailure: 5
|
|
||||||
displayName: Setup test container
|
|
||||||
env:
|
|
||||||
ANSIBLE_LIBRARY: ./molecule
|
|
||||||
|
|
||||||
- script: |
|
|
||||||
python utils/check_test_configuration.py ${{ parameters.scenario }}
|
|
||||||
displayName: Check scenario test configuration
|
|
||||||
|
|
||||||
- script: |
|
|
||||||
pytest \
|
|
||||||
-m "playbook" \
|
|
||||||
--verbose \
|
|
||||||
--color=yes \
|
|
||||||
--splits=${{ parameters.number_of_groups }} \
|
|
||||||
--group=${{ parameters.group_number }} \
|
|
||||||
--randomly-seed=$(date "+%Y%m%d") \
|
|
||||||
--junit-xml=TEST-results-group-${{ parameters.group_number }}.xml
|
|
||||||
displayName: Run playbook tests
|
|
||||||
env:
|
|
||||||
IPA_SERVER_HOST: ${{ parameters.scenario }}
|
|
||||||
RUN_TESTS_IN_DOCKER: true
|
|
||||||
IPA_DISABLED_MODULES: ${{ variables.ipa_disabled_modules }}
|
|
||||||
IPA_DISABLED_TESTS: ${{ variables.ipa_disabled_tests }}
|
|
||||||
IPA_ENABLED_MODULES: ${{ variables.ipa_enabled_modules }}
|
|
||||||
IPA_ENABLED_TESTS: ${{ variables.ipa_enabled_tests }}
|
|
||||||
IPA_VERBOSITY: "-vvv"
|
|
||||||
|
|
||||||
- task: PublishTestResults@2
|
|
||||||
inputs:
|
|
||||||
mergeTestResults: true
|
|
||||||
testRunTitle: PlaybookTests-Build${{ parameters.build_number }}
|
|
||||||
condition: succeededOrFailed()
|
|
||||||
@@ -1,75 +0,0 @@
|
|||||||
---
|
|
||||||
parameters:
|
|
||||||
- name: build_number
|
|
||||||
type: string
|
|
||||||
- name: scenario
|
|
||||||
type: string
|
|
||||||
default: fedora-latest
|
|
||||||
- name: ansible_version
|
|
||||||
type: string
|
|
||||||
default: ""
|
|
||||||
- name: python_version
|
|
||||||
type: string
|
|
||||||
default: 3.x
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
- job: Test_PyTests
|
|
||||||
displayName: Run pytests on ${{ parameters.scenario }}
|
|
||||||
timeoutInMinutes: 240
|
|
||||||
variables:
|
|
||||||
- template: variables.yaml
|
|
||||||
- template: variables_${{ parameters.scenario }}.yaml
|
|
||||||
steps:
|
|
||||||
- task: UsePythonVersion@0
|
|
||||||
inputs:
|
|
||||||
versionSpec: '${{ parameters.python_version }}'
|
|
||||||
|
|
||||||
- script: |
|
|
||||||
pip install \
|
|
||||||
"molecule-plugins[docker]" \
|
|
||||||
"requests<2.29" \
|
|
||||||
"ansible${{ parameters.ansible_version }}"
|
|
||||||
retryCountOnTaskFailure: 5
|
|
||||||
displayName: Install molecule and Ansible
|
|
||||||
|
|
||||||
- script: ansible-galaxy collection install community.docker ansible.posix
|
|
||||||
retryCountOnTaskFailure: 5
|
|
||||||
displayName: Install Ansible collections
|
|
||||||
|
|
||||||
- script: pip install -r requirements-tests.txt
|
|
||||||
retryCountOnTaskFailure: 5
|
|
||||||
displayName: Install dependencies
|
|
||||||
|
|
||||||
- script: |
|
|
||||||
rm -rf ~/.ansible
|
|
||||||
mkdir -p ~/.ansible/roles ~/.ansible/library ~/.ansible/module_utils
|
|
||||||
cp -a roles/* ~/.ansible/roles
|
|
||||||
cp -a plugins/modules/* ~/.ansible/library
|
|
||||||
cp -a plugins/module_utils/* ~/.ansible/module_utils
|
|
||||||
molecule create -s ${{ parameters.scenario }}
|
|
||||||
retryCountOnTaskFailure: 5
|
|
||||||
displayName: Setup test container
|
|
||||||
env:
|
|
||||||
ANSIBLE_LIBRARY: ./molecule
|
|
||||||
|
|
||||||
- script: |
|
|
||||||
pytest \
|
|
||||||
-m "not playbook" \
|
|
||||||
--verbose \
|
|
||||||
--color=yes \
|
|
||||||
--junit-xml=TEST-results-pytests.xml
|
|
||||||
displayName: Run tests
|
|
||||||
env:
|
|
||||||
IPA_SERVER_HOST: ${{ parameters.scenario }}
|
|
||||||
RUN_TESTS_IN_DOCKER: true
|
|
||||||
IPA_DISABLED_MODULES: ${{ variables.ipa_disabled_modules }}
|
|
||||||
IPA_DISABLED_TESTS: ${{ variables.ipa_disabled_tests }}
|
|
||||||
IPA_ENABLED_MODULES: ${{ variables.ipa_enabled_modules }}
|
|
||||||
IPA_ENABLED_TESTS: ${{ variables.ipa_enabled_tests }}
|
|
||||||
IPA_VERBOSITY: "-vvv"
|
|
||||||
|
|
||||||
- task: PublishTestResults@2
|
|
||||||
inputs:
|
|
||||||
mergeTestResults: true
|
|
||||||
testRunTitle: PlaybookTests-Build${{ parameters.build_number }}
|
|
||||||
condition: succeededOrFailed()
|
|
||||||
@@ -35,7 +35,6 @@ echo -e "${INFO}Running 'yamllint'...${RST}"
|
|||||||
yaml_dirs=(
|
yaml_dirs=(
|
||||||
"tests"
|
"tests"
|
||||||
"playbooks"
|
"playbooks"
|
||||||
"molecule"
|
|
||||||
"roles"
|
"roles"
|
||||||
)
|
)
|
||||||
yamllint -f colored "${yaml_dirs[@]}"
|
yamllint -f colored "${yaml_dirs[@]}"
|
||||||
|
|||||||
@@ -1,8 +1,7 @@
|
|||||||
#!/bin/bash -eu
|
#!/bin/bash -eu
|
||||||
# This file shoud be source'd (. set_test_modules) rather than executed.
|
# This file shoud be source'd (. set_test_modules) rather than executed.
|
||||||
|
|
||||||
#
|
#
|
||||||
# Set "BASE_BRANCH" to a different branch to compare.
|
# Set SKIP_GIT_TEST="True" or use -a to prevent git modification comparison.
|
||||||
#
|
#
|
||||||
|
|
||||||
RED="\033[31;1m"
|
RED="\033[31;1m"
|
||||||
@@ -18,27 +17,45 @@ TOPDIR="$(dirname "${BASH_SOURCE[0]}")/.."
|
|||||||
|
|
||||||
pushd "${TOPDIR}" >/dev/null 2>&1 || die "Failed to change directory."
|
pushd "${TOPDIR}" >/dev/null 2>&1 || die "Failed to change directory."
|
||||||
|
|
||||||
|
SKIP_GIT_TEST=${SKIP_GIT_TEST:-"False"}
|
||||||
|
|
||||||
|
while getopts ":a" opt
|
||||||
|
do
|
||||||
|
case "${opt}" in
|
||||||
|
a) SKIP_GIT_TEST="True" ;;
|
||||||
|
*) ;; # ignore other options
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
files_list=$(mktemp)
|
files_list=$(mktemp)
|
||||||
|
|
||||||
remote="$(basename $(mktemp -u remote_XXXXXX))"
|
enabled_modules="None"
|
||||||
git remote add ${remote} https://github.com/freeipa/ansible-freeipa
|
enabled_tests="None"
|
||||||
git fetch --prune --no-tags --quiet ${remote}
|
|
||||||
git diff "${remote}/master" --name-only > "${files_list}"
|
if [ "${SKIP_GIT_TEST}" != "True" ]
|
||||||
git remote remove ${remote}
|
then
|
||||||
|
remote="$(basename "$(mktemp -u remote_XXXXXX)")"
|
||||||
|
git remote add "${remote}" https://github.com/freeipa/ansible-freeipa
|
||||||
|
git fetch --prune --no-tags --quiet "${remote}"
|
||||||
|
git diff "${remote}/master" --name-only > "${files_list}"
|
||||||
|
git remote remove "${remote}"
|
||||||
|
|
||||||
|
# shellcheck disable=SC2046
|
||||||
|
enabled_modules="$(${python} utils/get_test_modules.py $(cat "${files_list}"))"
|
||||||
|
[ -z "${enabled_modules}" ] && enabled_modules="None"
|
||||||
|
|
||||||
|
# Get individual tests that should be executed
|
||||||
|
mapfile -t tests < <(sed -n 's#.*/\(test_[^/]*\).yml#\1#p' "${files_list}" | tr -d " ")
|
||||||
|
[ ${#tests[@]} -gt 0 ] && enabled_tests=$(IFS=, ; echo "${tests[*]}")
|
||||||
|
[ -z "${enabled_tests}" ] && enabled_tests="None"
|
||||||
|
|
||||||
|
[ -n "${enabled_tests}" ] && IPA_ENABLED_TESTS="${enabled_tests},${IPA_ENABLED_TESTS}"
|
||||||
|
[ -n "${enabled_modules}" ] && IPA_ENABLED_MODULES="${enabled_modules},${IPA_ENABLED_MODULES}"
|
||||||
|
|
||||||
|
rm -f "${files_list}"
|
||||||
|
fi
|
||||||
|
|
||||||
# Get all modules that should have tests executed
|
# Get all modules that should have tests executed
|
||||||
enabled_modules="$(${python} utils/get_test_modules.py $(cat "${files_list}"))"
|
|
||||||
[ -z "${enabled_modules}" ] && enabled_modules="None"
|
|
||||||
|
|
||||||
# Get individual tests that should be executed
|
|
||||||
mapfile -t tests < <(sed -n "s#.*/\(test_[^/]*\).yml#\1#p" "${files_list}" | tr -d " ")
|
|
||||||
[ ${#tests[@]} -gt 0 ] && enabled_tests=$(IFS=, ; echo "${tests[*]}")
|
|
||||||
[ -z "${enabled_tests}" ] && enabled_tests="None"
|
|
||||||
|
|
||||||
[ -n "${enabled_tests}" ] && IPA_ENABLED_TESTS="${enabled_tests},${IPA_ENABLED_TESTS}"
|
|
||||||
[ -n "${enabled_modules}" ] && IPA_ENABLED_MODULES="${enabled_modules},${IPA_ENABLED_MODULES}"
|
|
||||||
|
|
||||||
rm -f "${files_list}"
|
|
||||||
|
|
||||||
export IPA_ENABLED_MODULES
|
export IPA_ENABLED_MODULES
|
||||||
export IPA_ENABLED_TESTS
|
export IPA_ENABLED_TESTS
|
||||||
|
|||||||
Reference in New Issue
Block a user