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
