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