Skip to content

functional-baremetal #24

functional-baremetal

functional-baremetal #24

name: functional-baremetal
on:
pull_request:
paths:
- '**baremetal**'
schedule:
- cron: '0 0 */3 * *'
jobs:
functional-baremetal:
strategy:
fail-fast: false
matrix:
name: ["master"]
openstack_version: ["master"]
ubuntu_version: ["22.04"]
include:
- name: "bobcat"
openstack_version: "stable/2023.2"
ubuntu_version: "22.04"
- name: "antelope"
openstack_version: "stable/2023.1"
ubuntu_version: "22.04"
- name: "zed"
openstack_version: "stable/zed"
ubuntu_version: "20.04"
- name: "yoga"
openstack_version: "stable/yoga"
ubuntu_version: "20.04"
- name: "xena"
openstack_version: "stable/xena"
ubuntu_version: "20.04"
- name: "wallaby"
openstack_version: "stable/wallaby"
ubuntu_version: "20.04"
- name: "victoria"
openstack_version: "stable/victoria"
ubuntu_version: "20.04"
runs-on: ubuntu-${{ matrix.ubuntu_version }}
name: Deploy OpenStack ${{ matrix.name }} with Ironic and run baremetal acceptance tests
steps:
- name: Checkout Gophercloud
uses: actions/checkout@v4
- name: Workaround for grub-efi-amd64-signed
run: sudo rm /var/cache/debconf/config.dat
shell: bash
if: matrix.ubuntu_version == '20.04'
- name: Ensure update and upgrade
run: sudo apt update && sudo apt -y upgrade
shell: bash
if: matrix.ubuntu_version == '20.04'
- name: Deploy devstack
uses: EmilienM/[email protected]
with:
branch: ${{ matrix.openstack_version }}
conf_overrides: |
# pyghmi is not mirrored on github
PYGHMI_REPO=https://opendev.org/x/pyghmi
enable_plugin ironic https://github.com/openstack/ironic ${{ matrix.openstack_version }}
LIBS_FROM_GIT=pyghmi,virtualbmc
FORCE_CONFIG_DRIVE=True
Q_AGENT=openvswitch
Q_ML2_TENANT_NETWORK_TYPE=vxlan
Q_ML2_PLUGIN_MECHANISM_DRIVERS=openvswitch
DEFAULT_INSTANCE_TYPE=baremetal
OVERRIDE_PUBLIC_BRIDGE_MTU=1400
VIRT_DRIVER=ironic
BUILD_TIMEOUT=1800
SERVICE_TIMEOUT=90
GLANCE_LIMIT_IMAGE_SIZE_TOTAL=5000
Q_USE_SECGROUP=False
API_WORKERS=1
IRONIC_BAREMETAL_BASIC_OPS=True
IRONIC_BUILD_DEPLOY_RAMDISK=False
IRONIC_AUTOMATED_CLEAN_ENABLED=False
IRONIC_CALLBACK_TIMEOUT=600
IRONIC_DEPLOY_DRIVER=ipmi
IRONIC_INSPECTOR_BUILD_RAMDISK=False
IRONIC_RAMDISK_TYPE=tinyipa
IRONIC_TEMPEST_BUILD_TIMEOUT=720
IRONIC_TEMPEST_WHOLE_DISK_IMAGE=False
IRONIC_VM_COUNT=1
IRONIC_VM_EPHEMERAL_DISK=1
IRONIC_VM_LOG_DIR=/opt/stack/new/ironic-bm-logs
IRONIC_VM_SPECS_RAM=1024
IRONIC_DEFAULT_DEPLOY_INTERFACE=direct
IRONIC_ENABLED_DEPLOY_INTERFACES=direct
SWIFT_ENABLE_TEMPURLS=True
SWIFT_TEMPURL_KEY=secretkey
enabled_services: 'ir-api,ir-cond,s-account,s-container,s-object,s-proxy,q-svc,q-agt,q-dhcp,q-l3,q-meta,-cinder,-c-sch,-c-api,-c-vol,-c-bak,-ovn,-ovn-controller,-ovn-northd,-q-ovn-metadata-agent'
- name: Checkout go
uses: actions/setup-go@v4
with:
go-version: '^1.20'
- name: Run Gophercloud acceptance tests
run: ./script/acceptancetest
env:
DEVSTACK_PATH: ${{ github.workspace }}/devstack
ACCEPTANCE_TESTS_FILTER: '^.*baremetal(.(?!noauth).*)?$'
OS_BRANCH: ${{ matrix.openstack_version }}
- name: Generate logs on failure
run: ./script/collectlogs
if: failure()
- name: Upload logs artifacts on failure
if: failure()
uses: actions/upload-artifact@v3
with:
name: functional-baremetal-${{ matrix.name }}
path: /tmp/devstack-logs/*