Skip to content

Update centrally managed files #1290

Update centrally managed files

Update centrally managed files #1290

Workflow file for this run

name: Tests
on:
workflow_call:
workflow_dispatch:
pull_request:
types: [ opened, synchronize, reopened ]
branches: [ master, main ]
paths-ignore:
- '**.md'
- '**.rst'
concurrency:
# We do not want to run multiple jobs for single PR.
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
cancel-in-progress: true
jobs:
lint:
name: Linters
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Set up Python 3.10
uses: actions/setup-python@v5
with:
python-version: '3.10'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
python -m pip install tox
- name: Run lint checkers
run: tox -e lint
unit:
name: Unit tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Set up Python 3.10
uses: actions/setup-python@v5
with:
python-version: '3.10'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
python -m pip install tox
- name: Run unit tests
run: tox -e unit
mocked-plans:
name: Mocked plans
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python 3.10
uses: actions/setup-python@v5
with:
python-version: '3.10'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
python -m pip install tox
- name: Run mocked-plans tests
run: tox -e mocked-plans
snap-build:
name: Build snap
needs:
- lint
- unit
- mocked-plans
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@v4
with:
submodules: true
fetch-depth: 0 # Complete git history is required to generate the version from git tags.
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.10'
- name: Install tox
run: |
python -m pip install --upgrade pip
python -m pip install tox
- name: Setup LXD
uses: canonical/[email protected]
with:
channel: latest/stable
- name: Install snapcraft
run: sudo snap install snapcraft --classic
- name: Build snap
run: snapcraft --use-lxd
- name: Determine system architecture
run: echo "SYSTEM_ARCH=$(uname -m)" >> $GITHUB_ENV
- name: Upload the built snap as an artifact
uses: actions/upload-artifact@v4
with:
name: snap_${{ env.SYSTEM_ARCH }}
path: charmed-openstack-upgrader_*.snap
func:
name: Functional tests
needs: snap-build
runs-on: ubuntu-latest
timeout-minutes: 120
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.10'
- name: Setup Juju 3.4/stable environment
uses: charmed-kubernetes/actions-operator@main
with:
provider: lxd
juju-channel: 3.4/stable
- name: Remove tox install by actions-operator
run: sudo apt remove tox -y
- name: Install tox
run: |
python -m pip install --upgrade pip
python -m pip install tox
- name: Determine system architecture
run: echo "SYSTEM_ARCH=$(uname -m)" >> $GITHUB_ENV
- name: Download snap file artifact
uses: actions/download-artifact@v4
with:
name: snap_${{ env.SYSTEM_ARCH }}
- name: Run func tests
run: |
export TEST_SNAP="$(pwd)/$(ls | grep '.*charmed-openstack-upgrader_.*\.snap$')"
echo "$TEST_SNAP"
tox -e func