Skip to content

integration-tests

integration-tests #171

name: integration-tests
on:
pull_request:
schedule:
# Trigger at 6:00 AM and 6:00 PM UTC
- cron: "0 6,18 * * *"
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
openstack-integration-tests-private-endpoint:
name: Integration test using private-endpoint
uses: canonical/operator-workflows/.github/workflows/integration_test.yaml@main
secrets: inherit
with:
juju-channel: 3.6/stable
provider: lxd
test-tox-env: integration-juju3.6
modules: '["test_multi_unit_same_machine", "test_charm_metrics_failure", "test_charm_metrics_success", "test_charm_fork_path_change", "test_charm_no_runner", "test_charm_upgrade", "test_reactive"]'
# INTEGRATION_TOKEN, INTEGRATION_TOKEN_ALT, OS_* are passed through INTEGRATION_TEST_SECRET_ENV_VALUE_<N>
# mapping. See CONTRIBUTING.md for more details.
extra-arguments: |
-m=openstack \
--log-format="%(asctime)s %(levelname)s %(message)s" \
--path="${{ vars.INTEGRATION_TEST_PATH }}" \
--https-proxy="${{ vars.INTEGRATION_TEST_HTTPS_PROXY }}" \
--http-proxy="${{ vars.INTEGRATION_TEST_HTTP_PROXY }}" \
--no-proxy="${{ vars.INTEGRATION_TEST_NO_PROXY }}" \
--openstack-https-proxy="${{ vars.INTEGRATION_TEST_OPENSTACK_HTTPS_PROXY }}" \
--openstack-http-proxy="${{ vars.INTEGRATION_TEST_OPENSTACK_HTTP_PROXY }}" \
--openstack-no-proxy="${{ vars.INTEGRATION_TEST_OPENSTACK_NO_PROXY }}" \
--openstack-flavor-name="${{ vars.INTEGRATION_TEST_OPENSTACK_FLAVOR_NAME }}" \
--openstack-image-id="${{ vars.INTEGRATION_TEST_IMAGE_ID }}" \
--dockerhub-mirror="${{ vars.INTEGRATION_TEST_DOCKERHUB_MIRROR }}"
self-hosted-runner: true
self-hosted-runner-label: pfe-ci
openstack-integration-tests-cross-controller-private-endpoint:
name: Cross controller integration test using private-endpoint
uses: canonical/operator-workflows/.github/workflows/integration_test.yaml@main
secrets: inherit
with:
juju-channel: 3.6/stable
pre-run-script: tests/integration/setup-integration-tests.sh
provider: lxd
test-tox-env: integration-juju3.6
modules: '["test_prometheus_metrics"]'
# INTEGRATION_TOKEN, INTEGRATION_TOKEN_ALT, OS_* are passed through INTEGRATION_TEST_SECRET_ENV_VALUE_<N>
# mapping. See CONTRIBUTING.md for more details.
extra-arguments: |
-m=openstack \
--log-format="%(asctime)s %(levelname)s %(message)s" \
--path="${{ vars.INTEGRATION_TEST_PATH }}" \
--https-proxy="${{ vars.INTEGRATION_TEST_HTTPS_PROXY }}" \
--http-proxy="${{ vars.INTEGRATION_TEST_HTTP_PROXY }}" \
--no-proxy="${{ vars.INTEGRATION_TEST_NO_PROXY }}" \
--openstack-https-proxy="${{ vars.INTEGRATION_TEST_OPENSTACK_HTTPS_PROXY }}" \
--openstack-http-proxy="${{ vars.INTEGRATION_TEST_OPENSTACK_HTTP_PROXY }}" \
--openstack-no-proxy="${{ vars.INTEGRATION_TEST_OPENSTACK_NO_PROXY }}" \
--openstack-flavor-name="${{ vars.INTEGRATION_TEST_OPENSTACK_FLAVOR_NAME }}" \
--openstack-image-id="${{ vars.INTEGRATION_TEST_IMAGE_ID }}" \
--dockerhub-mirror="${{ vars.INTEGRATION_TEST_DOCKERHUB_MIRROR }}"
self-hosted-runner: true
self-hosted-runner-label: pfe-ci
openstack-integration-tests-runner-bases:
name: Runner tests across bases
uses: canonical/operator-workflows/.github/workflows/integration_test.yaml@main
secrets: inherit
strategy:
matrix:
base: ["22.04", "24.04"]
with:
juju-channel: 3.6/stable
provider: lxd
test-tox-env: integration-juju3.6
modules: '["test_charm_runner"]'
extra-arguments: |
-m=openstack \
--log-format="%(asctime)s %(levelname)s %(message)s" \
--path="${{ vars.INTEGRATION_TEST_PATH }}" \
--https-proxy="${{ vars.INTEGRATION_TEST_HTTPS_PROXY }}" \
--http-proxy="${{ vars.INTEGRATION_TEST_HTTP_PROXY }}" \
--no-proxy="${{ vars.INTEGRATION_TEST_NO_PROXY }}" \
--openstack-https-proxy="${{ vars.INTEGRATION_TEST_OPENSTACK_HTTPS_PROXY }}" \
--openstack-http-proxy="${{ vars.INTEGRATION_TEST_OPENSTACK_HTTP_PROXY }}" \
--openstack-no-proxy="${{ vars.INTEGRATION_TEST_OPENSTACK_NO_PROXY }}" \
--openstack-flavor-name="${{ vars.INTEGRATION_TEST_OPENSTACK_FLAVOR_NAME }}" \
--openstack-image-id="${{ vars.INTEGRATION_TEST_IMAGE_ID }}" \
--dockerhub-mirror="${{ vars.INTEGRATION_TEST_DOCKERHUB_MIRROR }}" \
--base="${{ matrix.base }}"
self-hosted-runner: true
self-hosted-runner-label: pfe-ci
allure-report:
if: ${{ (success() || failure()) && github.event_name == 'schedule' }}
needs:
- openstack-integration-tests-private-endpoint
- openstack-integration-tests-cross-controller-private-endpoint
- openstack-integration-tests-runner-bases
uses: canonical/operator-workflows/.github/workflows/allure_report.yaml@main