github.com/vnpaycloud-console/gophercloud/v2@v2.0.5/.github/workflows/functional-networking.yaml (about) 1 name: functional-networking 2 on: 3 pull_request: 4 paths: 5 - '**networking**' 6 schedule: 7 - cron: '0 0 */3 * *' 8 jobs: 9 functional-networking: 10 strategy: 11 fail-fast: false 12 matrix: 13 include: 14 - name: "master" 15 openstack_version: "master" 16 ubuntu_version: "22.04" 17 additional_services: "openstack-cli-server" 18 - name: "dalmatian" 19 openstack_version: "stable/2024.2" 20 ubuntu_version: "22.04" 21 additional_services: "openstack-cli-server" 22 - name: "caracal" 23 openstack_version: "stable/2024.1" 24 ubuntu_version: "22.04" 25 additional_services: "" 26 - name: "bobcat" 27 openstack_version: "stable/2023.2" 28 ubuntu_version: "22.04" 29 additional_services: "" 30 runs-on: ubuntu-${{ matrix.ubuntu_version }} 31 name: Deploy OpenStack ${{ matrix.name }} with Neutron and run networking acceptance tests 32 steps: 33 - name: Checkout Gophercloud 34 uses: actions/checkout@v4 35 - name: Create additional neutron policies 36 run: | 37 mkdir /tmp/neutron-policies 38 cat << EOF >> /tmp/neutron-policies/port_binding.yaml 39 --- 40 "create_port:binding:profile": "rule:admin_only or rule:service_api" 41 "update_port:binding:profile": "rule:admin_only or rule:service_api" 42 EOF 43 - name: Deploy devstack 44 uses: EmilienM/devstack-action@e82a9cbead099cba72f99537e82a360c3e319c69 45 with: 46 branch: ${{ matrix.openstack_version }} 47 conf_overrides: | 48 enable_plugin neutron-dynamic-routing https://github.com/openstack/neutron-dynamic-routing ${{ matrix.openstack_version }} 49 enable_plugin neutron-vpnaas https://github.com/openstack/neutron-vpnaas ${{ matrix.openstack_version }} 50 enable_plugin networking-bgpvpn https://github.com/openstack/networking-bgpvpn.git ${{ matrix.openstack_version }} 51 Q_ML2_PLUGIN_EXT_DRIVERS=qos,port_security,dns_domain_keywords 52 53 [[post-config|\$NEUTRON_CONF]] 54 [oslo_policy] 55 policy_dirs = /tmp/neutron-policies 56 enabled_services: "neutron-dns,neutron-qos,neutron-segments,neutron-trunk,neutron-uplink-status-propagation,neutron-network-segment-range,neutron-port-forwarding,${{ matrix.additional_services }}" 57 - name: Checkout go 58 uses: actions/setup-go@v5 59 with: 60 go-version: '^1.23' 61 - name: Run Gophercloud acceptance tests 62 run: ./script/acceptancetest 63 env: 64 DEVSTACK_PATH: ${{ github.workspace }}/devstack 65 PACKAGE: "./internal/acceptance/openstack/networking/..." 66 OS_BRANCH: ${{ matrix.openstack_version }} 67 - name: Generate logs on failure 68 run: ./script/collectlogs 69 if: failure() 70 - name: Upload logs artifacts on failure 71 if: failure() 72 uses: actions/upload-artifact@v4 73 with: 74 name: functional-networking-${{ matrix.name }}-${{ github.run_id }} 75 path: /tmp/devstack-logs/*