Clean up CI build (#89)

* Clean up CI build

There were a few problems with the existing build process, such as, the
python version not being passed during sanity tests and versions being
hard coded elsewhere. This change ensures that each test scenario gets
the correct parameters passed through. It also generally cleans up the
process for building the test environment to let ansible-galaxy do its
thing. This will make sure the correct version of dependencies get
installed.

* Add changelog fragment
This commit is contained in:
Mike Graves
2021-05-26 09:49:10 -04:00
committed by GitHub
parent 7e653aee65
commit d696fcaa06
6 changed files with 45 additions and 109 deletions

View File

@@ -27,11 +27,8 @@ jobs:
- stable-2.11
- devel
python:
- 2.7
- 3.7
- 3.8
exclude:
- python: 3.8 # blocked by ansible/ansible#70155
runs-on: ubuntu-latest
steps:
- name: Check out code
@@ -52,73 +49,20 @@ jobs:
# The docker container has all the pinned dependencies that are required.
# Explicitly specify the version of Python we want to test
- name: Run sanity tests
run: make upstream-test-sanity TEST_ARGS='--python ${{ matrix.python }}'
run: make upstream-test-sanity PYTHON_VERSION='${{ matrix.python }}'
working-directory: ./ansible_collections/community/okd
###
# Integration tests (RECOMMENDED)
#
# https://docs.ansible.com/ansible/latest/dev_guide/testing_integration.html
# integration:
# runs-on: ubuntu-latest
# name: Integration (Ⓐ${{ matrix.ansible }}+py${{ matrix.python }}})
# strategy:
# fail-fast: false
# matrix:
# ansible:
# - stable-2.9
# - stable-2.10
# - devel
# python:
# - 2.7
# - 3.7
# - 3.8
# exclude:
# - python: 3.8 # blocked by ansible/ansible#70155
# steps:
# - name: Check out code
# uses: actions/checkout@v2
# with:
# path: ansible_collections/community/okd
# - name: Set up Python ${{ matrix.ansible }}
# uses: actions/setup-python@v2
# with:
# python-version: ${{ matrix.python }}
# - name: Install ansible-base (${{ matrix.ansible }})
# run: pip install https://github.com/ansible/ansible/archive/${{ matrix.ansible }}.tar.gz --disable-pip-version-check
# # OPTIONAL If your integration test requires Python libraries or modules from other collections
# # Install them like this
# - name: Install collection dependencies
# run: ansible-galaxy collection install kubernetes.core -p .
# # Run the integration tests
# - name: Run integration test
# run: ansible-test integration -v --color --retry-on-error --continue-on-error --diff --python ${{ matrix.python }} --docker --coverage
# working-directory: ./ansible_collections/community/okd
# # ansible-test support producing code coverage date
# - name: Generate coverage report
# run: ansible-test coverage xml -v --requirements --group-by command --group-by version
# working-directory: ./ansible_collections/community/okd
# # See the reports at https://codecov.io/gh/ansible_collections/GITHUBORG/REPONAME
# - uses: codecov/codecov-action@v1
# with:
# fail_ci_if_error: false
#
downstream-sanity-29:
name: Downstream Sanity (Ⓐ${{ matrix.ansible }}+py${{ matrix.python }})
strategy:
matrix:
ansible:
- stable-2.9
- stable-2.10
- stable-2.11
python:
- 3.6
- 3.7
- 3.8
runs-on: ubuntu-latest
steps:
- name: Check out code
@@ -131,12 +75,13 @@ jobs:
with:
python-version: ${{ matrix.python }}
- name: Install ansible 2.9
run: pip install "ansible>=2.9.0,<2.10.0"
# Install the head of the given branch (devel, stable-2.10)
- name: Install ansible-base (${{ matrix.ansible }})
run: pip install https://github.com/ansible/ansible/archive/${{ matrix.ansible }}.tar.gz --disable-pip-version-check
# run ansible-test sanity inside of Docker.
# The docker container has all the pinned dependencies that are required.
# Explicitly specify the version of Python we want to test
- name: Run sanity tests
run: make downstream-test-sanity
run: make downstream-test-sanity PYTHON_VERSION='${{ matrix.python }}'
working-directory: ./ansible_collections/community/okd