github.com/gophercloud/gophercloud@v1.14.1/.github/workflows/functional-baremetal.yaml (about)

     1  name: functional-baremetal
     2  on:
     3    pull_request:
     4      paths:
     5        - '**baremetal**'
     6  jobs:
     7    functional-baremetal:
     8      strategy:
     9        fail-fast: false
    10        matrix:
    11          name: ["master"]
    12          openstack_version: ["master"]
    13          ubuntu_version: ["22.04"]
    14          os_system_scope: ["all"]
    15          include:
    16            - name: "caracal"
    17              openstack_version: "stable/2024.1"
    18              ubuntu_version: "22.04"
    19              os_system_scope: ""
    20            - name: "bobcat"
    21              openstack_version: "stable/2023.2"
    22              ubuntu_version: "22.04"
    23              os_system_scope: ""
    24            - name: "antelope"
    25              openstack_version: "stable/2023.1"
    26              ubuntu_version: "22.04"
    27              os_system_scope: ""
    28      runs-on: ubuntu-${{ matrix.ubuntu_version }}
    29      name: Deploy OpenStack ${{ matrix.name }} with Ironic and run baremetal acceptance tests
    30      steps:
    31        - name: Checkout Gophercloud
    32          uses: actions/checkout@v4
    33        - name: Workaround for grub-efi-amd64-signed
    34          run: sudo rm /var/cache/debconf/config.dat
    35          shell: bash
    36          if: matrix.ubuntu_version == '20.04'
    37        - name: Ensure update and upgrade
    38          run: sudo apt update && sudo apt -y upgrade
    39          shell: bash
    40          if: matrix.ubuntu_version == '20.04'
    41        - name: Work around broken dnsmasq
    42          run: sudo apt-get purge -y dnsmasq-base
    43          if: matrix.ubuntu_version == '22.04'
    44        - name: Deploy devstack
    45          uses: EmilienM/devstack-action@e82a9cbead099cba72f99537e82a360c3e319c69
    46          with:
    47            branch: ${{ matrix.openstack_version }}
    48            conf_overrides: |
    49              # pyghmi is not mirrored on github
    50              PYGHMI_REPO=https://opendev.org/x/pyghmi
    51              enable_plugin ironic https://github.com/openstack/ironic ${{ matrix.openstack_version }}
    52              LIBS_FROM_GIT=pyghmi,virtualbmc
    53              FORCE_CONFIG_DRIVE=True
    54              Q_AGENT=openvswitch
    55              Q_ML2_TENANT_NETWORK_TYPE=vxlan
    56              Q_ML2_PLUGIN_MECHANISM_DRIVERS=openvswitch
    57              DEFAULT_INSTANCE_TYPE=baremetal
    58              OVERRIDE_PUBLIC_BRIDGE_MTU=1400
    59              VIRT_DRIVER=ironic
    60              BUILD_TIMEOUT=1800
    61              SERVICE_TIMEOUT=90
    62              GLANCE_LIMIT_IMAGE_SIZE_TOTAL=5000
    63              Q_USE_SECGROUP=False
    64              API_WORKERS=1
    65              IRONIC_BAREMETAL_BASIC_OPS=True
    66              IRONIC_BUILD_DEPLOY_RAMDISK=False
    67              IRONIC_AUTOMATED_CLEAN_ENABLED=False
    68              IRONIC_CALLBACK_TIMEOUT=600
    69              IRONIC_DEPLOY_DRIVER=ipmi
    70              IRONIC_INSPECTOR_BUILD_RAMDISK=False
    71              IRONIC_RAMDISK_TYPE=tinyipa
    72              IRONIC_TEMPEST_BUILD_TIMEOUT=720
    73              IRONIC_TEMPEST_WHOLE_DISK_IMAGE=False
    74              IRONIC_VM_COUNT=1
    75              IRONIC_VM_EPHEMERAL_DISK=1
    76              IRONIC_VM_LOG_DIR=/opt/stack/new/ironic-bm-logs
    77              IRONIC_VM_SPECS_RAM=1024
    78              IRONIC_DEFAULT_DEPLOY_INTERFACE=direct
    79              IRONIC_ENABLED_DEPLOY_INTERFACES=direct
    80              SWIFT_ENABLE_TEMPURLS=True
    81              SWIFT_TEMPURL_KEY=secretkey
    82            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'
    83        - name: Checkout go
    84          uses: actions/setup-go@v5
    85          with:
    86            go-version: '^1.15'
    87        - name: Run Gophercloud acceptance tests
    88          run: ./script/acceptancetest
    89          env:
    90            DEVSTACK_PATH: ${{ github.workspace }}/devstack
    91            ACCEPTANCE_TESTS_FILTER: '^.*baremetal(.(?!noauth).*)?$'
    92            OS_BRANCH: ${{ matrix.openstack_version }}
    93            # TODO(dtantsur): default to "all" when no longer supporting versions before 2024.1
    94            OS_SYSTEM_SCOPE: ${{ matrix.os_system_scope }}
    95        - name: Generate logs on failure
    96          run: ./script/collectlogs
    97          if: failure()
    98        - name: Upload logs artifacts on failure
    99          if: failure()
   100          uses: actions/upload-artifact@v4
   101          with:
   102            name: functional-baremetal-${{ matrix.name }}
   103            path: /tmp/devstack-logs/*