blob: 3f81a2a341f5833fe50bd8a525cf7845ccdc14ab [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:
paths-ignore:
- go.mod
- go.sum
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
network_backend:
type: choice
description: 'Network backend type'
required: true
default: 'ovn'
options:
- openvswitch
- ovn
jobs:
debug:
runs-on: v3-standard-16
if: github.event_name == 'workflow_dispatch' && inputs.debug_enabled
strategy:
fail-fast: false
concurrency:
group: ${{ github.ref }}-${{ inputs.network_backend }}
cancel-in-progress: true
steps:
- name: Checkout project
uses: actions/checkout@v4
- name: Install Poetry
run: pipx install poetry
- name: Setup Python
uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5
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
env:
ATMOSPHERE_NETWORK_BACKEND: ${{ inputs.network_backend }}
# 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: v3-standard-16
if: github.event_name != 'workflow_dispatch' || !inputs.debug_enabled
strategy:
fail-fast: false
matrix:
network_backend:
- openvswitch
- ovn
concurrency:
group: ${{ github.ref }}-${{ matrix.network_backend }}
cancel-in-progress: true
steps:
- name: Checkout project
uses: actions/checkout@v4
- name: Install Poetry
run: pipx install poetry
- name: Setup Python
uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5
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 }}