mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
308 lines
No EOL
8.8 KiB
YAML
308 lines
No EOL
8.8 KiB
YAML
name: Collection test suite
|
|
|
|
on:
|
|
push:
|
|
pull_request:
|
|
schedule:
|
|
- cron: 3 0 * * * # Run daily at 0:03 UTC
|
|
|
|
jobs:
|
|
build-collection-artifact:
|
|
name: Build collection
|
|
runs-on: ${{ matrix.runner-os }}
|
|
strategy:
|
|
matrix:
|
|
runner-os:
|
|
- ubuntu-latest
|
|
ansible-version:
|
|
- git+https://github.com/ansible/ansible.git@devel
|
|
runner-python-version:
|
|
- 3.8
|
|
steps:
|
|
- name: Check out ${{ github.repository }} on disk
|
|
uses: actions/checkout@master
|
|
- name: Set up Python ${{ matrix.runner-python-version }}
|
|
uses: actions/setup-python@v1
|
|
with:
|
|
python-version: ${{ matrix.runner-python-version }}
|
|
- name: Set up pip cache
|
|
uses: actions/cache@v1
|
|
with:
|
|
path: ~/.cache/pip
|
|
key: ${{ runner.os }}-pip-${{ hashFiles('tests/sanity/requirements.txt') }}-${{ hashFiles('tests/unit/requirements.txt') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-pip-
|
|
${{ runner.os }}-
|
|
- name: Install Ansible ${{ matrix.ansible-version }}
|
|
run: >-
|
|
python -m
|
|
pip
|
|
install
|
|
--user
|
|
${{ matrix.ansible-version }}
|
|
- name: Build a collection tarball
|
|
run: >-
|
|
~/.local/bin/ansible-galaxy
|
|
collection
|
|
build
|
|
--output-path
|
|
"${GITHUB_WORKSPACE}/.cache/collection-tarballs"
|
|
- name: Store migrated collection artifacts
|
|
uses: actions/upload-artifact@v1
|
|
with:
|
|
name: >-
|
|
collection
|
|
path: .cache/collection-tarballs
|
|
|
|
sanity-test-collection-via-vms:
|
|
name: Sanity in VM ${{ matrix.os.vm || 'ubuntu-latest' }}
|
|
needs:
|
|
- build-collection-artifact
|
|
runs-on: ${{ matrix.os.vm || 'ubuntu-latest' }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
ansible-version:
|
|
- git+https://github.com/ansible/ansible.git@devel
|
|
os:
|
|
- vm: ubuntu-latest
|
|
- vm: ubuntu-16.04
|
|
- vm: macos-latest
|
|
python-version:
|
|
- 3.8
|
|
- 3.7
|
|
- 3.6
|
|
- 3.5
|
|
- 2.7
|
|
steps:
|
|
- name: Set up Python ${{ matrix.python-version }}
|
|
uses: actions/setup-python@v1
|
|
with:
|
|
python-version: ${{ matrix.python-version }}
|
|
- name: Set up pip cache
|
|
uses: actions/cache@v1
|
|
with:
|
|
path: ~/.cache/pip
|
|
key: ${{ runner.os }}-pip-${{ github.ref }}-sanity-VMs
|
|
restore-keys: |
|
|
${{ runner.os }}-pip-
|
|
${{ runner.os }}-
|
|
- name: Install Ansible ${{ matrix.ansible-version }}
|
|
run: >-
|
|
python -m
|
|
pip
|
|
install
|
|
--user
|
|
${{ matrix.ansible-version }}
|
|
- name: Download migrated collection artifacts
|
|
uses: actions/download-artifact@v1
|
|
with:
|
|
name: >-
|
|
collection
|
|
path: .cache/collection-tarballs
|
|
- name: Install the collection tarball
|
|
run: >-
|
|
~/.local/bin/ansible-galaxy
|
|
collection
|
|
install
|
|
.cache/collection-tarballs/*.tar.gz
|
|
- name: Run collection sanity tests
|
|
run: >-
|
|
~/.local/bin/ansible-test
|
|
sanity
|
|
--color
|
|
--requirements
|
|
--venv
|
|
--python
|
|
"${{ matrix.python-version }}"
|
|
-vvv
|
|
working-directory: >-
|
|
/${{ runner.os == 'Linux' && 'home' || 'Users' }}/runner/.ansible/collections/ansible_collections/community/general
|
|
|
|
sanity-test-collection-via-containers:
|
|
name: Sanity in container via Python ${{ matrix.python-version }}
|
|
needs:
|
|
- build-collection-artifact
|
|
runs-on: ${{ matrix.runner-os }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
runner-os:
|
|
- ubuntu-latest
|
|
runner-python-version:
|
|
- 3.8
|
|
ansible-version:
|
|
- git+https://github.com/ansible/ansible.git@devel
|
|
python-version:
|
|
- 3.8
|
|
- 2.7
|
|
- 3.7
|
|
- 3.6
|
|
- 3.5
|
|
- 2.6
|
|
steps:
|
|
- name: Set up Python ${{ matrix.runner-python-version }}
|
|
uses: actions/setup-python@v1
|
|
with:
|
|
python-version: ${{ matrix.runner-python-version }}
|
|
- name: Set up pip cache
|
|
uses: actions/cache@v1
|
|
with:
|
|
path: ~/.cache/pip
|
|
key: ${{ runner.os }}-pip-${{ github.ref }}-sanity-containers
|
|
restore-keys: |
|
|
${{ runner.os }}-pip-
|
|
${{ runner.os }}-
|
|
- name: Install Ansible ${{ matrix.ansible-version }}
|
|
run: >-
|
|
python -m
|
|
pip
|
|
install
|
|
--user
|
|
${{ matrix.ansible-version }}
|
|
- name: Download migrated collection artifacts
|
|
uses: actions/download-artifact@v1
|
|
with:
|
|
name: >-
|
|
collection
|
|
path: .cache/collection-tarballs
|
|
- name: Install the collection tarball
|
|
run: >-
|
|
~/.local/bin/ansible-galaxy
|
|
collection
|
|
install
|
|
.cache/collection-tarballs/*.tar.gz
|
|
- name: Run collection sanity tests
|
|
run: >-
|
|
~/.local/bin/ansible-test
|
|
sanity
|
|
--color
|
|
--requirements
|
|
--docker
|
|
--python
|
|
"${{ matrix.python-version }}"
|
|
-vvv
|
|
working-directory: >-
|
|
/home/runner/.ansible/collections/ansible_collections/community/general
|
|
|
|
unit-test-collection-via-vms:
|
|
name: Units in VM ${{ matrix.os.vm || 'ubuntu-latest' }}
|
|
needs:
|
|
- build-collection-artifact
|
|
runs-on: ${{ matrix.os.vm || 'ubuntu-latest' }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
ansible-version:
|
|
- git+https://github.com/ansible/ansible.git@devel
|
|
os:
|
|
- vm: ubuntu-latest
|
|
- vm: ubuntu-16.04
|
|
- vm: macos-latest
|
|
python-version:
|
|
- 3.8
|
|
- 3.7
|
|
- 3.6
|
|
- 3.5
|
|
- 2.7
|
|
steps:
|
|
- name: Set up Python ${{ matrix.python-version }}
|
|
uses: actions/setup-python@v1
|
|
with:
|
|
python-version: ${{ matrix.python-version }}
|
|
- name: Set up pip cache
|
|
uses: actions/cache@v1
|
|
with:
|
|
path: ~/.cache/pip
|
|
key: ${{ runner.os }}-pip-${{ github.ref }}-units-VMs
|
|
restore-keys: |
|
|
${{ runner.os }}-pip-
|
|
${{ runner.os }}-
|
|
- name: Install Ansible ${{ matrix.ansible-version }}
|
|
run: >-
|
|
python -m
|
|
pip
|
|
install
|
|
--user
|
|
${{ matrix.ansible-version }}
|
|
- name: Download migrated collection artifacts
|
|
uses: actions/download-artifact@v1
|
|
with:
|
|
name: >-
|
|
collection
|
|
path: .cache/collection-tarballs
|
|
- name: Install the collection tarball
|
|
run: >-
|
|
~/.local/bin/ansible-galaxy
|
|
collection
|
|
install
|
|
.cache/collection-tarballs/*.tar.gz
|
|
- name: Run collection unit tests
|
|
run: |
|
|
[[ ! -d 'tests/unit' ]] && echo This collection does not have unit tests. Skipping... || \
|
|
~/.local/bin/ansible-test units --color --coverage --requirements --venv --python "${{ matrix.python-version }}" -vvv
|
|
working-directory: >-
|
|
/${{ runner.os == 'Linux' && 'home' || 'Users' }}/runner/.ansible/collections/ansible_collections/community/general
|
|
|
|
unit-test-collection-via-containers:
|
|
name: Units in container ${{ matrix.container-image }}
|
|
needs:
|
|
- build-collection-artifact
|
|
runs-on: ${{ matrix.runner-os }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
runner-os:
|
|
- ubuntu-latest
|
|
runner-python-version:
|
|
- 3.8
|
|
ansible-version:
|
|
- git+https://github.com/ansible/ansible.git@devel
|
|
container-image:
|
|
- fedora31
|
|
- ubuntu1804
|
|
- centos8
|
|
- opensuse15
|
|
- fedora30
|
|
- centos7
|
|
- opensuse15py2
|
|
- ubuntu1604
|
|
- centos6
|
|
steps:
|
|
- name: Set up Python ${{ matrix.runner-python-version }}
|
|
uses: actions/setup-python@v1
|
|
with:
|
|
python-version: ${{ matrix.runner-python-version }}
|
|
- name: Set up pip cache
|
|
uses: actions/cache@v1
|
|
with:
|
|
path: ~/.cache/pip
|
|
key: ${{ runner.os }}-pip-${{ github.ref }}-units-containers
|
|
restore-keys: |
|
|
${{ runner.os }}-pip-
|
|
${{ runner.os }}-
|
|
- name: Install Ansible ${{ matrix.ansible-version }}
|
|
run: >-
|
|
python -m
|
|
pip
|
|
install
|
|
--user
|
|
${{ matrix.ansible-version }}
|
|
- name: Download migrated collection artifacts
|
|
uses: actions/download-artifact@v1
|
|
with:
|
|
name: >-
|
|
collection
|
|
path: .cache/collection-tarballs
|
|
- name: Install the collection tarball
|
|
run: >-
|
|
~/.local/bin/ansible-galaxy
|
|
collection
|
|
install
|
|
.cache/collection-tarballs/*.tar.gz
|
|
- name: Run collection unit tests
|
|
run: |
|
|
[[ ! -d 'tests/unit' ]] && echo This collection does not have unit tests. Skipping... || \
|
|
~/.local/bin/ansible-test units --color --coverage --requirements --docker "${{ matrix.container-image }}" -vvv
|
|
working-directory: >-
|
|
/home/runner/.ansible/collections/ansible_collections/community/general |