On 3/29/23 16:01, [email protected] wrote: > From: Numan Siddique <[email protected]> > > This patch adds a couple of jobs using ovn-fake-multinode. > It first builds 2 ovn-fake-multinode container images > - one with OVN 22.03 > - one with present main. > > The first job deploys ovn-fake-multinode with the main > OVN and runs simple tests provided by ovn-fake-multinode [1]. > > The second job deploys ovn-fake-multinode setup with the > central image using OVN 22.03 and chassis image using main OVN. > This job tests the scenario > - ovn-northd and OVN dbs are running the most recent LTS. > - ovn-controller is running the latest commit from the branch. > > The workflow is right now scheduled to trigger on midnight everyday. > Once we cache the built image or reduce the overall run time of > this workflow we can enable for every push. > > [1] - > https://github.com/ovn-org/ovn-fake-multinode/blob/main/.ci/test_basic.sh > > Signed-off-by: Numan Siddique <[email protected]> > ---
I have a few minor comments, feel free to add my ack when you apply the patch if you address them: Acked-by: Dumitru Ceara <[email protected]> Thanks, Dumitru > .../workflows/ovn-fake-multinode-tests.yml | 151 ++++++++++++++++++ > Makefile.am | 1 + > 2 files changed, 152 insertions(+) > create mode 100644 .github/workflows/ovn-fake-multinode-tests.yml > > diff --git a/.github/workflows/ovn-fake-multinode-tests.yml > b/.github/workflows/ovn-fake-multinode-tests.yml > new file mode 100644 > index 0000000000..fa768f235c > --- /dev/null > +++ b/.github/workflows/ovn-fake-multinode-tests.yml > @@ -0,0 +1,151 @@ > +name: System tests using ovn-fake-multinode > + > +on: It might be good also add: workflow_dispatch: So we can run the workflow on demand as well. > + schedule: > + # Run everyday at midnight > + - cron: '0 0 * * *' > + > +concurrency: > + group: ${{ github.workflow }}-${{ github.event.pull_request.number || > github.run_id }} > + cancel-in-progress: true > + > +jobs: > + build: > + env: > + RUNC_CMD: podman > + OS_IMAGE: "fedora:37" > + # https://github.com/actions/runner-images/issues/6282 > + XDG_RUNTIME_DIR: '' > + > + name: Build ovn-fake-multinode image > + runs-on: ubuntu-20.04 > + steps: > + - name: Check out ovn-fake-multi-node > + uses: actions/checkout@v3 > + with: > + repository: 'ovn-org/ovn-fake-multinode' > + path: 'ovn-fake-multinode' > + ref: 'v0.1' > + > + - name: Check out ovn > + uses: actions/checkout@v3 > + with: > + path: 'ovn-fake-multinode/ovn' > + submodules: recursive > + > + - name: Check out ovs master > + uses: actions/checkout@v3 > + with: > + path: 'ovn-fake-multinode/ovs' > + repository: 'openvswitch/ovs' > + ref: 'master' This works fine because ovn-fake-multinode builds OVN against the version checked out in the submodule. But it might not be obvious. Shall we add a comment before these two steps? > + > + - name: Install dependencies > + run: | > + sudo apt update > + sudo apt-get install -y podman > + > + - name: Build ovn-fake-multi-node main image > + run: | > + set -x > + sudo -E ./ovn_cluster.sh build > + mkdir -p /tmp/_output > + sudo podman save ovn/ovn-multi-node:latest > > /tmp/_output/ovn_main_image.tar > + working-directory: ovn-fake-multinode > + > + - name: Checkout ovn branch-22.03 > + uses: actions/checkout@v3 > + with: > + path: 'ovn-fake-multinode/ovn' > + submodules: recursive > + ref: 'branch-22.03' > + > + - name: Build ovn-fake-multi-node 22.03 image > + run: | > + set -x > + sudo -E ./ovn_cluster.sh build > + mkdir -p /tmp/_output > + sudo podman tag ovn/ovn-multi-node:latest ovn/ovn-multi-node:22.03 > + sudo podman save ovn/ovn-multi-node:22.03 > > /tmp/_output/ovn_22_03_image.tar > + working-directory: ovn-fake-multinode > + > + - uses: actions/upload-artifact@v3 > + with: > + name: test-main-image > + path: /tmp/_output/ovn_main_image.tar > + > + - uses: actions/upload-artifact@v3 > + with: > + name: test-22-03-image > + path: /tmp/_output/ovn_22_03_image.tar > + > + multinode-tests: > + runs-on: ubuntu-20.04 > + timeout-minutes: 15 > + env: > + RUNC_CMD: podman > + OS_IMAGE: "fedora:37" > + CENTRAL_IMAGE: ${{ matrix.cfg.central_image }} > + # Disable SSL for now. Revisit this if required. > + ENABLE_SSL: no > + # https://github.com/actions/runner-images/issues/6282 > + XDG_RUNTIME_DIR: '' > + > + name: multinode tests ${{ join(matrix.cfg.*, ' ') }} > + needs: [build] > + strategy: > + fail-fast: false > + matrix: > + cfg: > + - { central_image: "ovn/ovn-multi-node:latest" } > + - { central_image: "ovn/ovn-multi-node:22.03" } > + > + steps: > + > + - name: Free up disk space > + run: sudo eatmydata apt-get remove --auto-remove -y aspnetcore-* > dotnet-* libmono-* mono-* msbuild php-* php7* ghc-* zulu-* > + > + - uses: actions/download-artifact@v3 > + with: > + name: test-main-image > + > + - uses: actions/download-artifact@v3 > + with: > + name: test-22-03-image > + > + - name: Load podman image > + run: | > + sudo podman load --input ovn_main_image.tar > + sudo podman load --input ovn_22_03_image.tar > + > + - name: Check out ovn-fake-multi-node > + uses: actions/checkout@v3 > + with: > + repository: 'ovn-org/ovn-fake-multinode' > + path: 'ovn-fake-multinode' > + ref: 'v0.1' > + > + - name: Install dependencies > + run: | > + sudo apt update > + sudo apt-get install -y podman openvswitch-switch > + sudo systemctl start openvswitch-switch > + sudo ovs-vsctl show > + > + - name: Start basic cluster > + run: | > + sudo -E ./ovn_cluster.sh start > + sudo podman exec -it ovn-central ovn-nbctl show > + sudo podman exec -it ovn-central ovn-appctl -t ovn-northd version > + sudo podman exec -it ovn-chassis-1 ovn-appctl -t ovn-controller > version > + working-directory: ovn-fake-multinode > + > + - name: Run basic test script > + run: | > + sudo ./.ci/test_basic.sh > + working-directory: ovn-fake-multinode > + > + - name: Stop cluster > + run: | > + sudo -E ./ovn_cluster.sh stop > + working-directory: ovn-fake-multinode Do we really need to stop the cluster? :) > diff --git a/Makefile.am b/Makefile.am > index 8c60d4a719..6d84888a29 100644 > --- a/Makefile.am > +++ b/Makefile.am > @@ -95,6 +95,7 @@ EXTRA_DIST = \ > .ci/ovn-kubernetes/custom.patch \ > .github/workflows/test.yml \ > .github/workflows/ovn-kubernetes.yml \ > + .github/workflows/ovn-fake-multinode-tests.yml \ > boot.sh \ > $(MAN_FRAGMENTS) \ > $(MAN_ROOTS) \ _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
