On Mon, Aug 3, 2026 at 9:50 PM Mark Michelson <[email protected]> wrote:

> Thanks Ales,
>
> Acked-by: Mark Michelson<[email protected]>
>
> On Mon, Aug 3, 2026 at 6:30 AM Ales Musil via dev
> <[email protected]> wrote:
> >
> > The Cirrus CI was shut down on June 1st 2026, replace it with GitHub
> > native ARM64 job that runs weekly due to capacity issues. Also update
> > the README badges.
> >
> > Reported-at: https://redhat.atlassian.net/browse/FDP-3765
> > Signed-off-by: Ales Musil <[email protected]>
> > ---
> > Test run available at
> https://github.com/almusil/ovn/actions/runs/30798200421
> > ---
> >  .cirrus.yml                    |  69 ---------------------
> >  .github/workflows/test-arm.yml | 109 +++++++++++++++++++++++++++++++++
> >  Makefile.am                    |   2 +-
> >  README.rst                     |   6 +-
> >  4 files changed, 114 insertions(+), 72 deletions(-)
> >  delete mode 100644 .cirrus.yml
> >  create mode 100644 .github/workflows/test-arm.yml
> >
> > diff --git a/.cirrus.yml b/.cirrus.yml
> > deleted file mode 100644
> > index 9cf2a46d6..000000000
> > --- a/.cirrus.yml
> > +++ /dev/null
> > @@ -1,69 +0,0 @@
> > -compute_engine_instance:
> > -  image_project: ubuntu-os-cloud
> > -  image: family/ubuntu-2404-lts-arm64
> > -  architecture: arm64
> > -  platform: linux
> > -  memory: 4G
> > -  disk: 20
> > -
> > -# Run separate task for the image build, so it's running only once
> outside
> > -# the test matrix.
> > -build_image_task:
> > -  install_dependencies_script:
> > -    - sudo apt update
> > -    - sudo apt install -y podman make
> > -
> > -  build_container_script:
> > -    - cd utilities/containers
> > -    - make ubuntu
> > -    - podman save -o /tmp/image.tar --format oci-archive
> ovn-org/ovn-tests:ubuntu
> > -
> > -  upload_image_script:
> > -    - curl -s -X POST -T /tmp/image.tar http://
> $CIRRUS_HTTP_CACHE_HOST/${CIRRUS_CHANGE_IN_REPO}
> > -
> > -arm_unit_tests_task:
> > -  depends_on:
> > -    - build_image
> > -
> > -  env:
> > -    CIRRUS_CLONE_SUBMODULES: true
> > -    PATH: ${HOME}/bin:${HOME}/.local/bin:${PATH}
> > -    RECHECK: yes
> > -    IMAGE_NAME: ovn-org/ovn-tests:ubuntu
> > -    matrix:
> > -      - CC: gcc
> > -        TESTSUITE: test
> > -        TEST_RANGE: -300
> > -      - CC: gcc
> > -        TESTSUITE: test
> > -        TEST_RANGE: 301-600
> > -      - CC: gcc
> > -        TESTSUITE: test
> > -        TEST_RANGE: 601-
> > -        UNSTABLE: yes
> > -      - CC: clang
> > -        TESTSUITE: test
> > -        TEST_RANGE: -300
> > -      - CC: clang
> > -        TESTSUITE: test
> > -        TEST_RANGE: 301-600
> > -      - CC: clang
> > -        TESTSUITE: test
> > -        TEST_RANGE: 601-
> > -        UNSTABLE: yes
> > -
> > -  name: ARM64 ${CC} ${TESTSUITE} ${TEST_RANGE}
> > -
> > -  install_dependencies_script:
> > -    - sudo apt update
> > -    - sudo apt install -y podman
> > -
> > -  download_cache_script:
> > -    - curl http://$CIRRUS_HTTP_CACHE_HOST/${CIRRUS_CHANGE_IN_REPO} -o
> /tmp/image.tar
> > -
> > -  load_image_script:
> > -    - podman load -i /tmp/image.tar
> > -    - rm -rf /tmp/image.tar
> > -
> > -  build_script:
> > -    - ./.ci/ci.sh --archive-logs
> > diff --git a/.github/workflows/test-arm.yml
> b/.github/workflows/test-arm.yml
> > new file mode 100644
> > index 000000000..cd0a12eff
> > --- /dev/null
> > +++ b/.github/workflows/test-arm.yml
> > @@ -0,0 +1,109 @@
> > +name: Build and Test ARM64
> > +
> > +on:
> > +  schedule:
> > +    # Run Sunday at midnight
> > +    - cron: '0 0 * * 0'
> > +  workflow_dispatch:
> > +
> > +concurrency:
> > +  group: ${{ github.workflow }}-${{ github.event.pull_request.number ||
> github.run_id }}
> > +  if: (github.repository_owner == 'ovn-org' && github.event_name ==
> 'schedule' && github.ref_name == 'main') || github.event_name ==
> 'workflow_dispatch'
> > +  cancel-in-progress: true
> > +
> > +jobs:
> > +  build-linux:
> > +    env:
> > +      ARCH:        ${{ matrix.cfg.arch }}
> > +      CC:          ${{ matrix.cfg.compiler }}
> > +      DPDK:        ${{ matrix.cfg.dpdk }}
> > +      LIBS:        ${{ matrix.cfg.libs }}
> > +      OPTS:        ${{ matrix.cfg.opts }}
> > +      TESTSUITE:   ${{ matrix.cfg.testsuite }}
> > +      TEST_RANGE:  ${{ matrix.cfg.test_range }}
> > +      SANITIZERS:  ${{ matrix.cfg.sanitizers }}
> > +      UNSTABLE:    ${{ matrix.cfg.unstable }}
> > +
> > +    name: linux ${{ join(matrix.cfg.*, ' ') }}
> > +    runs-on: ubuntu-24.04-arm
> > +
> > +    strategy:
> > +      fail-fast: false
> > +      matrix:
> > +        cfg:
> > +          - { compiler: gcc, opts: --disable-ssl }
> > +          - { compiler: clang, opts: --disable-ssl }
> > +          - { compiler: gcc, testsuite: dist-test }
> > +          - { compiler: gcc, testsuite: test, test_range: "-300" }
> > +          - { compiler: gcc, testsuite: test, test_range: "301-600" }
> > +          - { compiler: gcc, testsuite: test, test_range: "601-",
> unstable: unstable }
> > +          - { compiler: clang, testsuite: test, sanitizers: sanitizers,
> test_range: "-300" }
> > +          - { compiler: clang, testsuite: test, sanitizers: sanitizers,
> test_range: "301-600" }
> > +          - { compiler: clang, testsuite: test, sanitizers: sanitizers,
> test_range: "601-", unstable: unstable }
> > +          - { compiler: gcc, testsuite: test, libs: -ljemalloc,
> test_range: "-300" }
> > +          - { compiler: gcc, testsuite: test, libs: -ljemalloc,
> test_range: "301-600" }
> > +          - { compiler: gcc, testsuite: test, libs: -ljemalloc,
> test_range: "601-", unstable: unstable }
> > +          - { compiler: gcc, testsuite: system-test-dpdk, dpdk: dpdk,
> test_range: "-100" }
> > +          - { compiler: gcc, testsuite: system-test-dpdk, dpdk: dpdk,
> test_range: "101-200" }
> > +          - { compiler: gcc, testsuite: system-test-dpdk, dpdk: dpdk,
> test_range: "201-", unstable: unstable }
> > +          - { compiler: gcc, testsuite: system-test-userspace,
> test_range: "-100" }
> > +          - { compiler: gcc, testsuite: system-test-userspace,
> test_range: "101-200" }
> > +          - { compiler: gcc, testsuite: system-test-userspace,
> test_range: "201-", unstable: unstable }
> > +          - { compiler: gcc, testsuite: system-test, test_range: "-100"
> }
> > +          - { compiler: gcc, testsuite: system-test, test_range:
> "101-200" }
> > +          - { compiler: gcc, testsuite: system-test, test_range:
> "201-", unstable: unstable }
> > +          - { compiler: clang, testsuite: system-test, sanitizers:
> sanitizers, test_range: "-100" }
> > +          - { compiler: clang, testsuite: system-test, sanitizers:
> sanitizers, test_range: "101-200" }
> > +          - { compiler: clang, testsuite: system-test, sanitizers:
> sanitizers, test_range: "201-", unstable: unstable }
> > +
> > +    steps:
> > +      - name: system-level-dependencies
> > +        if: ${{ startsWith(matrix.cfg.testsuite, 'system-test') }}
> > +        run: |
> > +          sudo apt update
> > +          sudo apt -y install linux-modules-extra-$(uname -r)
> > +
> > +      - name: checkout
> > +        uses: actions/checkout@v6
> > +        with:
> > +          submodules: recursive
> > +
> > +      - name: Fix /etc/hosts file
> > +        run: |
> > +          . .ci/linux-util.sh
> > +          fix_etc_hosts
> > +
> > +      - name: Disable apparmor
> > +        run: |
> > +          . .ci/linux-util.sh
> > +          disable_apparmor
> > +
> > +      - name: Fixup crun
> > +        run: |
> > +          . .ci/linux-util.sh
> > +          fixup_crun
> > +
> > +      - name: Download container
> > +        run: |
> > +          podman pull ghcr.io/ovn-org/ovn-tests:ubuntu
> > +          sudo podman pull ghcr.io/ovn-org/ovn-tests:ubuntu
> > +
> > +      - name: Tag image
> > +        run: |
> > +          podman tag ghcr.io/ovn-org/ovn-tests:ubuntu ovn-org/ovn-tests
> > +          sudo podman tag ghcr.io/ovn-org/ovn-tests:ubuntu
> ovn-org/ovn-tests
> > +
> > +      - name: build
> > +        if: ${{ startsWith(matrix.cfg.testsuite, 'system-test') }}
> > +        run: sudo -E ./.ci/ci.sh --archive-logs --timeout=2h
> > +
> > +      - name: build
> > +        if: ${{ !startsWith(matrix.cfg.testsuite, 'system-test') }}
> > +        run: ./.ci/ci.sh --archive-logs --timeout=2h
> > +
> > +      - name: upload logs on failure
> > +        if: failure() || cancelled()
> > +        uses: actions/upload-artifact@v7
> > +        with:
> > +          name: logs-linux-${{ join(matrix.cfg.*, '-') }}
> > +          path: logs.tgz
> > diff --git a/Makefile.am b/Makefile.am
> > index 0f2389b25..b4a3284fc 100644
> > --- a/Makefile.am
> > +++ b/Makefile.am
> > @@ -70,7 +70,6 @@ EXTRA_DIST = \
> >         MAINTAINERS.rst \
> >         README.rst \
> >         NOTICE \
> > -       .cirrus.yml \
> >         .ci/ci.sh \
> >         .ci/linux-build.sh \
> >         .ci/linux-util.sh \
> > @@ -82,6 +81,7 @@ EXTRA_DIST = \
> >         .ci/ovn-kubernetes/custom.patch \
> >         .github/workflows/containers.yml \
> >         .github/workflows/test.yml \
> > +       .github/workflows/test-arm.yml \
> >         .github/workflows/ovn-kubernetes.yml \
> >         .github/workflows/ovn-fake-multinode-tests.yml \
> >         .github/workflows/ovn-upgrade-tests.yml \
> > diff --git a/README.rst b/README.rst
> > index 9b09e22ff..e9b26cc56 100644
> > --- a/README.rst
> > +++ b/README.rst
> > @@ -11,8 +11,10 @@ OVN
> >      :target:
> https://github.com/ovn-org/ovn/actions/workflows/ovn-kubernetes.yml
> >  .. image::
> https://github.com/ovn-org/ovn/actions/workflows/ovn-fake-multinode-tests.yml/badge.svg
> >      :target:
> https://github.com/ovn-org/ovn/actions/workflows/ovn-fake-multinode-tests.yml
> > -.. image:: https://api.cirrus-ci.com/github/ovn-org/ovn.svg
> > -    :target: https://cirrus-ci.com/github/ovn-org/ovn
> > +.. image::
> https://github.com/ovn-org/ovn/actions/workflows/ovn-upgrade-tests.yml/badge.svg
> > +    :target:
> https://github.com/ovn-org/ovn/actions/workflows/ovn-upgrade-tests.yml
> > +.. image::
> https://github.com/ovn-org/ovn/actions/workflows/test-arm.yml/badge.svg
> > +    :target:
> https://github.com/ovn-org/ovn/actions/workflows/test-arm.yml
> >  .. image:: https://readthedocs.org/projects/ovn/badge/?version=latest
> >      :target: https://docs.ovn.org/en/latest/
> >  .. image:: https://scan.coverity.com/projects/30371/badge.svg
> > --
> > 2.55.0
> >
> > _______________________________________________
> > dev mailing list
> > [email protected]
> > https://mail.openvswitch.org/mailman/listinfo/ovs-dev
> >
>
>
Thank you Mark,

I have noticed that one of the ifs was in a wrong place, with that addresed
applied to main.

Regards,
Ales
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to