Skip to content

Reimplement shell scripts in typescript #456

Reimplement shell scripts in typescript

Reimplement shell scripts in typescript #456

Workflow file for this run

name: Test Operator Setup
on:
push:
branches: [main, concierge]
pull_request:
branches: [main, concierge]
jobs:
Inclusive-naming-check:
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v4
- name: woke
uses: canonical-web-and-design/inclusive-naming@main
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
reporter: github-pr-check
fail-on-error: true
charmcraft:
runs-on: ubuntu-latest
outputs:
channel: ${{ steps.charmcraft.outputs.channel }}
steps:
- name: Check out code
uses: actions/checkout@v4
- name: Load charmcraft channel
id: charmcraft
run: echo "channel=$(cat tests/.charmcraft-channel)" >> $GITHUB_OUTPUT
test-python-pre-installed:
name: Test pre-installed-python environment
runs-on: ubuntu-latest
needs: [charmcraft]
strategy:
fail-fast: false
matrix:
python:
- '3.8'
- '3.10'
- '3.12'
tox:
- '4.18.0'
- ''
steps:
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python }}
- name: Check out code
uses: actions/checkout@v4
- uses: ./
with:
provider: lxd
channel: latest/stable
juju-channel: 3/stable
tox-version: ${{ matrix.tox }}
charmcraft-channel: ${{ needs.charmcraft.outputs.channel }}
- name: Run Tests
run: |
tox -e tests -- -k "not k8s"
exit $?
test-lxd:
name: Test lxd environment
needs: [charmcraft]
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
lxd:
- '5.21'
- '6.1'
- 'latest'
os:
- ubuntu-20.04
- ubuntu-22.04
- ubuntu-24.04
juju:
- '2.9/stable'
- '3.5/stable'
- '3/stable'
steps:
- name: Check out code
uses: actions/checkout@v4
- name: Install Python
if: ${{ ! contains(fromJson('["ubuntu-20.04", "ubuntu-22.04"]'), matrix.os) }}
uses: actions/setup-python@v5
with:
python-version: '3.12'
- uses: ./
with:
provider: lxd
channel: ${{ matrix.lxd }}/stable
juju-channel: ${{ matrix.juju }}
charmcraft-channel: ${{ needs.charmcraft.outputs.channel }}
- name: Run Tests for != 2.x
if : ${{ startsWith(matrix.juju, 2) != true }}
run: |
tox -e tests -- -k "not k8s"
exit $?
- name: Run 2.9 Tests
if : ${{ startsWith(matrix.juju, 2) == true }}
run: |
tox -e 2.9-tests -- -k "not k8s"
exit $?
test-microk8s-strict:
name: Test microk8s strict
needs: [charmcraft]
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os:
- ubuntu-20.04
- ubuntu-22.04
- ubuntu-24.04
channel:
- 1.28-strict/stable
- 1.27-strict/stable
steps:
- name: Check out code
uses: actions/checkout@v4
- name: Install Python
if: ${{ ! contains(fromJson('["ubuntu-20.04", "ubuntu-22.04"]'), matrix.os) }}
uses: actions/setup-python@v5
with:
python-version: '3.12'
- uses: ./
with:
provider: microk8s
channel: ${{ matrix.channel }}
charmcraft-channel: ${{ needs.charmcraft.outputs.channel }}
- name: Run Tests
run: |
tox -e tests -- -k "not machine"
test-microk8s-classic:
name: Test microk8s classic
needs: [charmcraft]
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os:
- ubuntu-20.04
- ubuntu-22.04
- ubuntu-24.04
channel:
- 1.28/stable
- latest/stable
steps:
- name: Check out code
uses: actions/checkout@v4
- name: Install Python
if: ${{ ! contains(fromJson('["ubuntu-20.04", "ubuntu-22.04"]'), matrix.os) }}
uses: actions/setup-python@v5
with:
python-version: '3.12'
- uses: ./
with:
provider: microk8s
channel: ${{ matrix.channel }}
juju-channel: 2.9/stable
charmcraft-channel: ${{ needs.charmcraft.outputs.channel }}
- name: Run Tests
run: |
tox -e 2.9-tests -- -k "not machine"
test-microk8s-default-addons:
name: Test default addons are enabled by microk8s provider.
needs: [charmcraft]
runs-on: ubuntu-22.04
steps:
- name: Check out code
uses: actions/checkout@v4
- uses: ./
with:
provider: microk8s
channel: 1.28-strict/stable
charmcraft-channel: ${{ needs.charmcraft.outputs.channel }}
- name: Run Tests
run: |
tox -e tests -- -k "addons" --addons "storage dns rbac"
test-microstack:
runs-on: self-hosted
needs: [charmcraft]
name: Test microstack environment
steps:
- name: Check out code
uses: actions/checkout@v4
- uses: ./
with:
provider: microstack
charmcraft-channel: ${{ needs.charmcraft.outputs.channel }}
- name: Run Tests
run: |
tox -e tests -- -k "not k8s"
test-vSphere:
runs-on: self-hosted
needs: [charmcraft]
name: Test vSphere environment
steps:
- name: Check out code
uses: actions/checkout@v4
- uses: ./
with:
provider: vsphere
credentials-yaml: ${{ secrets.CREDENTIALS_YAML }}
clouds-yaml: ${{ secrets.CLOUDS_YAML }}
bootstrap-options: "--model-default datastore=vsanDatastore --model-default primary-network=VLAN_2764 --bootstrap-image=juju-ci-root/templates/jammy-test-template --bootstrap-series=jammy"
bootstrap-constraints: "arch=amd64 cores=2 mem=4G"
charmcraft-channel: ${{ needs.charmcraft.outputs.channel }}
- name: Run Tests
run: |
tox -e tests -- -k "not k8s"
test-multi-controller:
name: Test microk8s next to lxd
needs: [charmcraft]
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os:
- ubuntu-20.04
- ubuntu-22.04
- ubuntu-24.04
steps:
- name: Check out code
uses: actions/checkout@v4
- name: Install Python
if: ${{ ! contains(fromJson('["ubuntu-20.04", "ubuntu-22.04"]'), matrix.os) }}
uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Setup k8s controller
uses: ./
with:
provider: microk8s
channel: 1.28-strict/stable
charmcraft-channel: ${{ needs.charmcraft.outputs.channel }}
- name: Save k8s controller name
id: k8s-controller
# The `CONTROLLER_NAME` envvar is set by this actions
run: echo "name=$CONTROLLER_NAME" >> $GITHUB_OUTPUT
- name: Setup lxd controller
uses: ./
with:
provider: lxd
- name: Save lxd controller name
id: lxd-controller
# The `CONTROLLER_NAME` envvar is set by this action
run: echo "name=$CONTROLLER_NAME" >> $GITHUB_OUTPUT
- name: Test we can switch to the controllers
run: |
set -eu
juju switch ${{ steps.k8s-controller.outputs.name }}
juju switch ${{ steps.lxd-controller.outputs.name }}