chore: refactor client_facades and specified_facades shape #1098
Workflow file for this run
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: | |
lint: | |
name: Linter | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
python: | |
- "3.9" | |
- "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 linter | |
run: | | |
tox -e lint | |
./scripts/copyright.sh | |
build-test: | |
name: Build test | |
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: Run build test target | |
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: | |
needs: lint | |
name: Unit tests | |
runs-on: ubuntu-latest | |
strategy: | |
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: [lint, unit-tests] | |
timeout-minutes: 150 | |
runs-on: ubuntu-latest | |
strategy: | |
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" | |
continue-on-error: false # ultimately fail a run if one of the matrix combinations fails | |
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 | |
continue-on-error: true # don't fail early, let other matrix combinations get tested | |
integration-quarantine: | |
name: Quarantined Integration Tests | |
needs: [lint, unit-tests] | |
timeout-minutes: 150 | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
python: | |
- "3.10" | |
juju: | |
- "3.1/stable" | |
- "3.3/stable" | |
- "3.4/stable" | |
- "3.5/stable" | |
continue-on-error: false # ultimately fail the run if one of the matrix combinations fails | |
steps: | |
- name: Check out code | |
uses: actions/checkout@v3 | |
- 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 | |
continue-on-error: true # don't fail early, let other matrix combinations get tested |