Skip to content

Build and Test ARM64 #1

Build and Test ARM64

Build and Test ARM64 #1

Workflow file for this run

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 }}
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.*, ' ') }}
if: (github.repository_owner == 'ovn-org' && github.event_name == 'schedule' && github.ref_name == 'main') || github.event_name == 'workflow_dispatch'
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