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