Merge pull request #1203 from dimaqq/chore-type-hints-for-wait-for-idle #1215
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Testing | |
on: [push, pull_request, workflow_dispatch] | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
build-test: | |
name: Build test | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
python: | |
- "3.10" | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python }} | |
- uses: astral-sh/[email protected] | |
- run: | | |
make build-test | |
validate: | |
name: Validate | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
python: | |
- "3.10" | |
steps: | |
- name: Check out code | |
uses: actions/checkout@v4 | |
- name: Setup Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python }} | |
- name: Install dependencies | |
run: pip install tox | |
- name: Run validation tests | |
run: tox -e validate | |
unit-tests: | |
name: Unit tests | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
python: | |
- "3.8" | |
- "3.9" | |
- "3.10" | |
- "3.11" | |
- "3.12" | |
- "3.13" | |
steps: | |
- name: Check out code | |
uses: actions/checkout@v4 | |
- name: Setup Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python }} | |
- name: Install dependencies | |
run: pip install tox | |
- name: Run unit tests | |
run: tox -e py3 | |
integration: | |
name: Integration | |
needs: [unit-tests] | |
timeout-minutes: 150 | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
python: | |
# We will reduce the workload to 3.10 to | |
# save some resources for now. | |
# - "3.9" | |
- "3.10" | |
juju: | |
- "3.1/stable" | |
- "3.3/stable" | |
- "3.4/stable" | |
- "3.5/stable" | |
# A bunch of tests fail with juju.errors.JujuError: base: [email protected]/stable | |
# * test_subordinate_units | |
# * test_destroy_unit | |
# * test_ssh | |
# * ... | |
# - "3.6/beta" | |
steps: | |
- name: Check out code | |
uses: actions/checkout@v4 | |
- name: Setup Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python }} | |
- name: Setup operator environment | |
uses: charmed-kubernetes/actions-operator@main | |
with: | |
provider: lxd | |
juju-channel: ${{ matrix.juju }} | |
# 2023-01-11 Commented until we discover a | |
# clear approach for this. | |
# - name: Set proxy in controller | |
# run: | | |
# set -euxo pipefail | |
# # build a squid config file | |
# CONTROLLER_IP=$(juju list-controllers --format yaml | yq '.controllers[.current-controller].recent-server' | awk -F '[:]' '{print $1}'); | |
# echo "Controller IP is: $CONTROLLER_IP" | |
# PROXY=$CONTROLLER_IP:3128 | |
# echo "Proxy address is: $PROXY" | |
# echo "acl all src all" > squid.conf | |
# echo "http_access allow all" >> squid.conf | |
# echo "http_port $PROXY" >> squid.conf | |
# cat squid.conf | |
# # copy to the controller and reconfigure it | |
# juju status -m controller | |
# juju switch controller | |
# juju ssh 0 "sudo apt-get install squid -y" | |
# juju scp squid.conf 0:/tmp/squid.conf | |
# juju ssh 0 "sudo mv /tmp/squid.conf /etc/squid/squid.conf" | |
# juju ssh 0 "sudo squid -k reconfigure" | |
# # Test curl after waiting | |
# sleep 10 | |
# echo "Test proxy access" | |
# curl -s -o /dev/null -w "%{http_code}" --proxy http://$PROXY https://charmhub.io | |
# # set model defaults | |
# juju model-defaults apt-http-proxy=$PROXY apt-https-proxy=$PROXY juju-http-proxy=$PROXY juju-https-proxy=$PROXY snap-http-proxy=$PROXY snap-https-proxy=$PROXY | |
# juju model-defaults | |
- name: Run integration | |
# Force one single concurrent test | |
run: tox -e integration | |
integration-quarantine: | |
name: Quarantined Integration Tests | |
needs: [unit-tests] | |
timeout-minutes: 150 | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
python: | |
- "3.10" | |
juju: | |
- "3.1/stable" | |
- "3.3/stable" | |
- "3.4/stable" | |
- "3.5/stable" | |
steps: | |
- name: Check out code | |
uses: actions/checkout@v4 | |
- name: Setup Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python }} | |
- name: Setup operator environment | |
uses: charmed-kubernetes/actions-operator@main | |
with: | |
provider: lxd | |
juju-channel: ${{ matrix.juju }} | |
- name: Run integration | |
run: tox -e integration-quarantine |