diff --git a/.github/workflows/ansible-test-plugins.yml b/.github/workflows/ansible-test-plugins.yml index 00018d5..1c1eb0c 100644 --- a/.github/workflows/ansible-test-plugins.yml +++ b/.github/workflows/ansible-test-plugins.yml @@ -15,12 +15,12 @@ on: env: - mysql_version_file: "tests/integration/targets/setup_mysql/defaults/main.yml" - connector_version_file: "tests/integration/targets/setup_mysql/vars/main.yml" + mysql_version_file: "./ansible_collections/community/mysql/tests/integration/targets/setup_mysql/defaults/main.yml" + connector_version_file: "./ansible_collections/community/mysql/tests/integration/targets/setup_mysql/vars/main.yml" jobs: # sanity: - # name: "Sanity (Ansible: ${{ matrix.ansible }})" + # name: "Sanity (Python: ${{ matrix.python }}, Ansible: ${{ matrix.ansible }})" # runs-on: ubuntu-latest # strategy: # matrix: @@ -30,22 +30,48 @@ jobs: # - stable-2.13 # - stable-2.14 # - 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: - # - name: Perform sanity testing - # uses: ansible-community/ansible-test-gh-action@release/v1 + + # - name: Check out code + # uses: actions/checkout@v2 # with: - # ansible-core-version: ${{ matrix.ansible }} - # testing-type: sanity + # path: ansible_collections/community/mysql + + # - 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: - name: "Integration (Python: ${{ matrix.python }}, Ansible: ${{ matrix.ansible }}, MySQL: ${{ matrix.db_engine_version }}, Connector: ${{ matrix.connector }})" + name: "Integration (Python: ${{ matrix.python }}, Ansible: ${{ matrix.ansible }}, MySQL: ${{ matrix.mysql }}, Connector: ${{ matrix.connector }})" runs-on: ubuntu-latest strategy: fail-fast: false matrix: - db_engine_version: - - mysql_5.7.31 - # - mysql_8.0.22 + mysql: + # - 5.7.31 + - 8.0.22 ansible: # - stable-2.11 - stable-2.12 @@ -60,63 +86,68 @@ jobs: # - pymysql==0.7.10 - pymysql==0.9.3 # - mysqlclient==2.0.1 - exclude: [] - # - db_engine_version: mysql_8.0.22 - # connector: pymysql==0.7.10 - # - python: 3.6 - # ansible: stable-2.12 - # - python: 3.6 - # ansible: stable-2.13 - # - python: 3.6 - # ansible: stable-2.14 - # - python: 3.6 - # ansible: devel - # - python: 3.8 - # ansible: stable-2.11 - # - 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 + # exclude: + # - mysql: 8.0.22 + # connector: pymysql==0.7.10 + # - python: 3.6 + # ansible: stable-2.12 + # - python: 3.6 + # ansible: stable-2.13 + # - python: 3.6 + # ansible: stable-2.14 + # - python: 3.6 + # ansible: devel + # - python: 3.8 + # ansible: stable-2.11 + # - 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: - - name: >- - Perform integration testing against - Ansible version ${{ matrix.ansible }} - under Python ${{ matrix.python }} - uses: ansible-community/ansible-test-gh-action@release/v1 + + - name: Check out code + uses: actions/checkout@v2 with: - ansible-core-version: ${{ matrix.ansible }} - pre-test-cmd: >- - DB_ENGINE=$(echo '${{ matrix.db_engine_version }}' | awk -F_ '{print $1}'); - DB_VERSION=$(echo '${{ matrix.db_engine_version }}' | awk -F_ '{print $2}'); - DB_ENGINE_PRETTY=$([[ "${DB_ENGINE}" == 'mysql' ]] && echo 'MySQL' || echo 'MariaDB'); - >&2 echo Matrix factor for the DB is ${{ matrix.db_engine_version }}...; - >&2 echo Setting ${DB_ENGINE_PRETTY} version to ${DB_VERSION}...; - 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 }}'; - ${{ - matrix.db_engine_version == 'mariadb_10.8.3' - && format( - '>&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 - ) - || '' - }} - >&2 echo Setting Connector version to ${{ matrix.connector }}...; - sed -i 's/^python_packages:.*/python_packages: [${{ matrix.connector }}]/' ${{ env.connector_version_file }} - target-python-version: ${{ matrix.python }} - testing-type: integration + path: ansible_collections/community/mysql - name: Setup tmate session uses: mxschmitt/action-tmate@v3 - if: ${{ failure() }} with: limit-access-to-actor: true + - 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: Set MySQL version (${{ matrix.mysql }}) + run: "sed -i 's/^mysql_version:.*/mysql_version: \"${{ matrix.mysql }}\"/g' ${{ env.mysql_version_file }}" + + - name: Set Connector version (${{ matrix.connector }}) + run: "sed -i 's/^python_packages:.*/python_packages: [${{ matrix.connector }}]/' ${{ env.connector_version_file }}" + + - name: Run integration tests + run: ansible-test integration --docker -v --color --retry-on-error --continue-on-error --python ${{ matrix.python }} --diff --coverage + working-directory: ./ansible_collections/community/mysql + + - 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: # runs-on: ubuntu-latest # name: Units (Ⓐ${{ matrix.ansible }}) @@ -147,11 +178,30 @@ jobs: # ansible: stable-2.12 # steps: - # - name: >- - # Perform unit testing against - # Ansible version ${{ matrix.ansible }} - # uses: ansible-community/ansible-test-gh-action@release/v1 + # - name: Check out code + # uses: actions/checkout@v2 # with: - # ansible-core-version: ${{ matrix.ansible }} - # target-python-version: ${{ matrix.python }} - # testing-type: units + # path: ./ansible_collections/community/mysql + + # - 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 + + # # 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