Skip to content

chore: run integration tests against Juju 4/beta #480

chore: run integration tests against Juju 4/beta

chore: run integration tests against Juju 4/beta #480

Workflow file for this run

name: CI
on:
push:
branches:
- main
pull_request:
workflow_call:
workflow_dispatch:
jobs:
lint:
runs-on: ubuntu-latest
steps:
- name: Check out repo
uses: actions/checkout@v4
- name: Install uv
uses: astral-sh/setup-uv@v5
- name: Run linting and static type checking
run: make lint
unit:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest]
python-version: ["3.8", "3.10", "3.12", "3.13"]
steps:
- name: Check out repo
uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install uv
uses: astral-sh/setup-uv@v5
- name: Run unit tests
run: make unit
integration-k8s:
runs-on: ubuntu-latest
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}-k8s
cancel-in-progress: true
continue-on-error: ${{ matrix.juju-channel == '4/beta' }}
strategy:
fail-fast: false
matrix:
juju-channel: ['3/stable', '4/beta']
steps:
- name: Check out repo
uses: actions/checkout@v4
- name: Install uv
uses: astral-sh/setup-uv@v5
- name: Install concierge
run: sudo snap install --classic concierge
- name: Prepare Juju
run: sudo concierge prepare --verbose --juju-channel=${{ matrix.juju-channel }} --charmcraft-channel=3.x/stable -p microk8s
- name: Pack test charms
run: make pack
- name: Run integration tests
run: make integration-k8s
timeout-minutes: 20 # Juju 4 may get stuck while destroying the test model
integration-machine:
runs-on: ubuntu-latest
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}-machine
cancel-in-progress: true
continue-on-error: ${{ matrix.juju-channel == '4/beta' }}
strategy:
fail-fast: false
matrix:
juju-channel: ['3/stable', '4/beta']
steps:
- name: Check out repo
uses: actions/checkout@v4
- name: Install uv
uses: astral-sh/setup-uv@v5
- name: Install concierge
run: sudo snap install --classic concierge
- name: Prepare Juju
run: sudo concierge prepare --verbose --juju-channel=${{ matrix.juju-channel }} --charmcraft-channel=3.x/stable -p machine
- name: Pack test charms
run: make pack
- name: Run integration tests
run: make integration-machine
timeout-minutes: 20 # Juju 4 may get stuck while destroying the test model