functional-networking #917
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: functional-networking | |
on: | |
pull_request: | |
paths: | |
- '**networking**' | |
schedule: | |
- cron: '0 0 */3 * *' | |
jobs: | |
functional-networking: | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- name: "master" | |
openstack_version: "master" | |
ubuntu_version: "22.04" | |
additional_services: "openstack-cli-server" | |
- name: "caracal" | |
openstack_version: "stable/2024.1" | |
ubuntu_version: "22.04" | |
additional_services: "" | |
- name: "bobcat" | |
openstack_version: "stable/2023.2" | |
ubuntu_version: "22.04" | |
additional_services: "" | |
- name: "antelope" | |
openstack_version: "stable/2023.1" | |
ubuntu_version: "22.04" | |
additional_services: "" | |
runs-on: ubuntu-${{ matrix.ubuntu_version }} | |
name: Deploy OpenStack ${{ matrix.name }} with Neutron and run networking acceptance tests | |
steps: | |
- name: Checkout Gophercloud | |
uses: actions/checkout@v4 | |
- name: Create additional neutron policies | |
run: | | |
mkdir /tmp/neutron-policies | |
cat << EOF >> /tmp/neutron-policies/port_binding.yaml | |
--- | |
"create_port:binding:profile": "rule:admin_only or rule:service_api" | |
"update_port:binding:profile": "rule:admin_only or rule:service_api" | |
EOF | |
- name: Deploy devstack | |
uses: EmilienM/devstack-action@e82a9cbead099cba72f99537e82a360c3e319c69 | |
with: | |
branch: ${{ matrix.openstack_version }} | |
conf_overrides: | | |
enable_plugin neutron-dynamic-routing https://github.com/openstack/neutron-dynamic-routing ${{ matrix.openstack_version }} | |
enable_plugin neutron-vpnaas https://github.com/openstack/neutron-vpnaas ${{ matrix.openstack_version }} | |
Q_ML2_PLUGIN_EXT_DRIVERS=qos,port_security,dns_domain_keywords | |
[[post-config|\$NEUTRON_CONF]] | |
[oslo_policy] | |
policy_dirs = /tmp/neutron-policies | |
enabled_services: "neutron-dns,neutron-qos,neutron-segments,neutron-trunk,neutron-uplink-status-propagation,neutron-network-segment-range,neutron-port-forwarding,${{ matrix.additional_services }}" | |
- name: Checkout go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: '^1.20' | |
- name: Run Gophercloud acceptance tests | |
run: ./script/acceptancetest | |
env: | |
DEVSTACK_PATH: ${{ github.workspace }}/devstack | |
PACKAGE: "./internal/acceptance/openstack/networking/..." | |
OS_BRANCH: ${{ matrix.openstack_version }} | |
- name: Generate logs on failure | |
run: ./script/collectlogs | |
if: failure() | |
- name: Upload logs artifacts on failure | |
if: failure() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: functional-networking-${{ matrix.name }} | |
path: /tmp/devstack-logs/* |