Sync GHA workflow w/ the collection template (#452)

* Sync GHA workflow w/ the collection template

* Drop the trailing pre-cmd semicolon

* Recover missing `-e` flag of `sed`

* Use relative paths for version configs

* Unquote `env.connector_version_file`

* Use string formatting to fix the substitution problem

(cherry picked from commit 8107530744)
This commit is contained in:
Sviatoslav Sydorenko 2022-10-03 14:27:55 +02:00 committed by Laurent Indermuehle
parent 1f42f39d92
commit 704a0cea6a
No known key found for this signature in database
GPG key ID: 93FA944C9F34DD09

View file

@ -15,12 +15,12 @@ on:
env: env:
mysql_version_file: "./ansible_collections/community/mysql/tests/integration/targets/setup_mysql/defaults/main.yml" mysql_version_file: "tests/integration/targets/setup_mysql/defaults/main.yml"
connector_version_file: "./ansible_collections/community/mysql/tests/integration/targets/setup_mysql/vars/main.yml" connector_version_file: "tests/integration/targets/setup_mysql/vars/main.yml"
jobs: jobs:
sanity: sanity:
name: "Sanity (Python: ${{ matrix.python }}, Ansible: ${{ matrix.ansible }})" name: "Sanity (Ansible: ${{ matrix.ansible }})"
runs-on: ubuntu-latest runs-on: ubuntu-latest
strategy: strategy:
matrix: matrix:
@ -30,48 +30,22 @@ jobs:
- stable-2.13 - stable-2.13
- stable-2.14 - stable-2.14
- devel - devel
python:
- 3.8
- 3.9
exclude:
- python: 3.8
ansible: stable-2.13
- python: 3.8
ansible: stable-2.14
- python: 3.8
ansible: devel
- python: 3.9
ansible: stable-2.11
- python: 3.9
ansible: stable-2.12
steps: steps:
- name: Perform sanity testing
- name: Check out code uses: ansible-community/ansible-test-gh-action@release/v1
uses: actions/checkout@v2
with: with:
path: ansible_collections/community/mysql ansible-core-version: ${{ matrix.ansible }}
testing-type: sanity
- name: Set up Python
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
- name: Run sanity tests
run: ansible-test sanity --docker -v --color
working-directory: ./ansible_collections/community/mysql
integration: integration:
name: "Integration (Python: ${{ matrix.python }}, Ansible: ${{ matrix.ansible }}, MySQL: ${{ matrix.mysql }}, Connector: ${{ matrix.connector }})" name: "Integration (Python: ${{ matrix.python }}, Ansible: ${{ matrix.ansible }}, MySQL: ${{ matrix.db_engine_version }}, Connector: ${{ matrix.connector }})"
runs-on: ubuntu-latest runs-on: ubuntu-latest
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
mysql: db_engine_version:
- 5.7.31 - mysql_5.7.31
- 8.0.22 - mysql_8.0.22
ansible: ansible:
- stable-2.11 - stable-2.11
- stable-2.12 - stable-2.12
@ -87,7 +61,7 @@ jobs:
- pymysql==0.9.3 - pymysql==0.9.3
- mysqlclient==2.0.1 - mysqlclient==2.0.1
exclude: exclude:
- mysql: 8.0.22 - db_engine_version: mysql_8.0.22
connector: pymysql==0.7.10 connector: pymysql==0.7.10
- python: 3.6 - python: 3.6
ansible: stable-2.12 ansible: stable-2.12
@ -111,37 +85,31 @@ jobs:
ansible: stable-2.12 ansible: stable-2.12
steps: steps:
- name: >-
- name: Check out code Perform integration testing against
uses: actions/checkout@v2 Ansible version ${{ matrix.ansible }}
under Python ${{ matrix.python }}
uses: ansible-community/ansible-test-gh-action@release/v1
with: with:
path: ansible_collections/community/mysql ansible-core-version: ${{ matrix.ansible }}
pre-test-cmd: >-
- name: Set up Python DB_ENGINE=$(echo '${{ matrix.db_engine_version }}' | awk -F_ '{print $1}');
uses: actions/setup-python@v2 DB_VERSION=$(echo '${{ matrix.db_engine_version }}' | awk -F_ '{print $2}');
with: DB_ENGINE_PRETTY=$([[ "${DB_ENGINE}" == 'mysql' ]] && echo 'MySQL' || echo 'MariaDB');
python-version: ${{ matrix.python }} >&2 echo Matrix factor for the DB is ${{ matrix.db_engine_version }}...;
>&2 echo Setting ${DB_ENGINE_PRETTY} version to ${DB_VERSION}...;
- name: Install ansible-base (${{ matrix.ansible }}) sed -i -e "s/^${DB_ENGINE}_version:.*/${DB_ENGINE}_version: $DB_VERSION/g" -e 's/^mariadb_install: false/mariadb_install: true/g' '${{ env.mysql_version_file }}';
run: pip install https://github.com/ansible/ansible/archive/${{ matrix.ansible }}.tar.gz --disable-pip-version-check ${{
matrix.db_engine_version == 'mariadb_10.8.3'
- name: Set MySQL version (${{ matrix.mysql }}) && format(
run: "sed -i 's/^mysql_version:.*/mysql_version: \"${{ matrix.mysql }}\"/g' ${{ env.mysql_version_file }}" '>&2 echo Set MariaDB v10.8.3 URL sub dir...; sed -i -e "s/^mariadb_url_subdir:.*/mariadb_url_subdir: linux-systemd/g" "{0}";', env.connector_version_file
)
- name: Set Connector version (${{ matrix.connector }}) || ''
run: "sed -i 's/^python_packages:.*/python_packages: [${{ matrix.connector }}]/' ${{ env.connector_version_file }}" }}
>&2 echo Setting Connector version to ${{ matrix.connector }}...;
- name: Run integration tests sed -i 's/^python_packages:.*/python_packages: [${{ matrix.connector }}]/' ${{ env.connector_version_file }}
run: ansible-test integration --docker -v --color --retry-on-error --continue-on-error --python ${{ matrix.python }} --diff --coverage target-python-version: ${{ matrix.python }}
working-directory: ./ansible_collections/community/mysql testing-type: integration
- name: Generate coverage report.
run: ansible-test coverage xml -v --requirements --group-by command --group-by version
working-directory: ./ansible_collections/community/mysql
- uses: codecov/codecov-action@v1
with:
fail_ci_if_error: false
units: units:
runs-on: ubuntu-latest runs-on: ubuntu-latest
@ -173,30 +141,11 @@ jobs:
ansible: stable-2.12 ansible: stable-2.12
steps: steps:
- name: Check out code - name: >-
uses: actions/checkout@v2 Perform unit testing against
Ansible version ${{ matrix.ansible }}
uses: ansible-community/ansible-test-gh-action@release/v1
with: with:
path: ./ansible_collections/community/mysql ansible-core-version: ${{ matrix.ansible }}
target-python-version: ${{ matrix.python }}
- name: Set up Python testing-type: units
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
# Run the unit tests
- name: Run unit test
run: ansible-test units -v --color --docker --coverage
working-directory: ./ansible_collections/community/mysql
# 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/mysql
# See the reports at https://codecov.io/gh/GITHUBORG/REPONAME
- uses: codecov/codecov-action@v1
with:
fail_ci_if_error: false