name: plugins-integration on: push: paths: - 'plugins/**' - 'tests/integration/**' - '.github/workflows/plugins-integration.yml' pull_request: paths: - 'plugins/**' - 'tests/integration/**' - '.github/workflows/plugins-integration.yml' jobs: integration: runs-on: ubuntu-latest name: I (${{ matrix.zabbix_container.version}} Ⓐ${{ matrix.ansible }}+py${{ matrix.python }}}) strategy: fail-fast: false matrix: zabbix_container: - version: "3.0" - version: "4.0" - version: "4.4" - version: "5.0" - version: "5.2" ansible: # - stable-2.9 # Only if your collection supports Ansible 2.9 - stable-2.10 - devel python: - 2.7 - 3.7 exclude: - python: 3.8 # blocked by ansible/ansible#70155 steps: - name: Check out code uses: actions/checkout@v2 with: path: ansible_collections/community/zabbix - 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 - name: Install dependencies run: pip install docker-compose zabbix-api # For Zabbix integration tests we need to test against different versions of # the Zabbix server. To do this we spin up a Docker container using the `matrix` # of version and ports specified earlier. - name: Zabbix container server provisioning run: docker-compose up -d working-directory: ./ansible_collections/community/zabbix env: zabbix_version: ${{ matrix.zabbix_container.version }} # Run the integration tests # As we need to connect to an existing docker container we can't use `--docker` here as the VMs would be on different # (non-routing) networks, so we run them locally and ensure any required dependencies are installed via `--requirements` - name: Run integration test run: ansible-test integration -v --color --retry-on-error --continue-on-error --diff --python ${{ matrix.python }} --requirements --coverage working-directory: ./ansible_collections/community/zabbix # 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/zabbix # See the repots at https://codecov.io/gh/ansible-collections/community.zabbix - uses: codecov/codecov-action@v1 with: fail_ci_if_error: false