github.com/vnpaycloud-console/gophercloud/v2@v2.0.5/.github/workflows/functional-baremetal.yaml (about)

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