blob: 93f7b64e13396f08ac9da14a5fa5656a9a0233f4 [file] [log] [blame]
# Copyright (c) 2023 VEXXHOST, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
name: ceph
on:
pull_request:
push:
branches:
- main
workflow_dispatch:
inputs:
debug_enabled:
type: boolean
description: 'Run the build with tmate debugging enabled (https://github.com/marketplace/actions/debugging-with-tmate)'
required: false
default: false
jobs:
debug:
runs-on: ubuntu-20.04-16-cores
if: github.event_name == 'workflow_dispatch' && inputs.debug_enabled
strategy:
fail-fast: false
matrix:
network_backend:
- openvswitch
- ovn
steps:
- name: Checkout project
uses: actions/checkout@v3
- name: Install Poetry
run: pipx install poetry
- name: Setup Python
uses: actions/setup-python@v4
with:
cache: poetry
- name: Install dependencies
run: poetry install --no-interaction --with dev
# NOTE(mnaser): LVM commands take a long time if there are any existing
# loop devices created by "snapd", so we uninstall it.
- name: Uninstall "snapd"
run: sudo apt-get purge -y snapd
- name: Turn off swap
run: sudo swapoff -a
- name: Run Molecule Converge
run: poetry run molecule converge -s ceph
# Enable tmate debugging of manually-triggered workflows if the input option was provided
- name: Setup tmate session
if: ${{ failure() }}
uses: mxschmitt/action-tmate@v3
timeout-minutes: 60
- name: Run Molecule Destroy
run: poetry run molecule destroy -s ceph
test:
runs-on: ubuntu-20.04-16-cores
if: github.event_name != 'workflow_dispatch' || !inputs.debug_enabled
strategy:
fail-fast: false
matrix:
network_backend:
- openvswitch
- ovn
steps:
- name: Checkout project
uses: actions/checkout@v3
- name: Install Poetry
run: pipx install poetry
- name: Setup Python
uses: actions/setup-python@v4
with:
cache: poetry
- name: Install dependencies
run: poetry install --no-interaction --with dev
# NOTE(mnaser): LVM commands take a long time if there are any existing
# loop devices created by "snapd", so we uninstall it.
- name: Uninstall "snapd"
run: sudo apt-get purge -y snapd
- name: Turn off swap
run: sudo swapoff -a
- name: Run Molecule
run: poetry run molecule test -s ceph
env:
ATMOSPHERE_NETWORK_BACKEND: ${{ matrix.network_backend }}