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/*