aboutsummaryrefslogtreecommitdiff
path: root/.github/workflows/ci-pipeline-arm64.yml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/ci-pipeline-arm64.yml')
-rw-r--r--.github/workflows/ci-pipeline-arm64.yml347
1 files changed, 347 insertions, 0 deletions
diff --git a/.github/workflows/ci-pipeline-arm64.yml b/.github/workflows/ci-pipeline-arm64.yml
new file mode 100644
index 000000000..78cbfcc7d
--- /dev/null
+++ b/.github/workflows/ci-pipeline-arm64.yml
@@ -0,0 +1,347 @@
+name: CI arm64
+
+# github.repository has been used to ensure CI is only run on the repo where
+# self-hosted runners are installed. This will prevent [self-hosted, ARM64] CI failing on forks
+
+on: [push, pull_request, merge_group]
+env:
+ ARCH: arm64
+ CC: gcc
+ CONTAINER_NAMESPACE: ghcr.io/opendataplane/odp-docker-images
+ OS: ubuntu_20.04
+
+jobs:
+ Build_gcc:
+ if: ${{ github.repository == 'OpenDataPlane/odp' }}
+ runs-on: [self-hosted, ARM64]
+ strategy:
+ fail-fast: false
+ matrix:
+ conf: ['',
+ 'CFLAGS=-O3',
+ 'CFLAGS=-O1',
+ 'CFLAGS=-O0 --enable-debug=full',
+ 'CFLAGS=-Os',
+ 'CFLAGS=-pedantic',
+ '--enable-lto',
+ '--enable-lto --enable-abi-compat',
+ '--enable-pcapng-support']
+ steps:
+ - uses: OpenDataPlane/action-clean-up@main
+ - uses: actions/checkout@v4
+ - run: sudo docker run -i -v `pwd`:/odp --privileged --shm-size 8g -e CC=gcc
+ -e CONF="${{matrix.conf}}" $CONTAINER_NAMESPACE/odp-ci-${OS}-${ARCH}-native /odp/scripts/ci/build_${ARCH}.sh
+ - if: ${{ failure() }}
+ uses: ./.github/actions/build-failure-log
+
+ Build_clang:
+ if: ${{ github.repository == 'OpenDataPlane/odp' }}
+ runs-on: [self-hosted, ARM64]
+ strategy:
+ fail-fast: false
+ matrix:
+ conf: ['',
+ 'CFLAGS=-O3',
+ 'CFLAGS=-O1',
+ 'CFLAGS=-O0 --enable-debug=full',
+ 'CFLAGS=-Os',
+ 'CFLAGS=-pedantic',
+ '--enable-pcapng-support',
+ '--without-openssl --without-pcap',
+ '--with-crypto=armv8crypto',
+ '--with-crypto=ipsecmb',
+ '--enable-wfe-locks']
+ steps:
+ - uses: OpenDataPlane/action-clean-up@main
+ - uses: actions/checkout@v4
+ - run: sudo docker run -i -v `pwd`:/odp --privileged --shm-size 8g -e CC=clang
+ -e CONF="${{matrix.conf}}" $CONTAINER_NAMESPACE/odp-ci-${OS}-${ARCH}-native /odp/scripts/ci/build_${ARCH}.sh
+ - if: ${{ failure() }}
+ uses: ./.github/actions/build-failure-log
+
+ Build_static_u22:
+ if: ${{ github.repository == 'OpenDataPlane/odp' }}
+ runs-on: [self-hosted, ARM64]
+ env:
+ OS: ubuntu_22.04
+ CONF: "--disable-shared --without-openssl --without-pcap"
+ strategy:
+ fail-fast: false
+ matrix:
+ cc_ver: [10, 11, 12]
+ conf: ['', '--enable-lto']
+ steps:
+ - uses: OpenDataPlane/action-clean-up@main
+ - uses: actions/checkout@v4
+ - run: sudo docker run -i -v `pwd`:/odp --privileged --shm-size 8g -e CC="gcc-${{matrix.cc_ver}}" -e CXX="g++-${{matrix.cc_ver}}"
+ -e CONF="${CONF} ${{matrix.conf}}" $CONTAINER_NAMESPACE/odp-ci-${OS}-${ARCH}-native /odp/scripts/ci/build_static.sh
+ - if: ${{ failure() }}
+ uses: ./.github/actions/build-failure-log
+
+ Build_OS:
+ if: ${{ github.repository == 'OpenDataPlane/odp' }}
+ runs-on: [self-hosted, ARM64]
+ strategy:
+ fail-fast: false
+ matrix:
+ cc: [gcc, clang]
+ os: ['rocky_linux_8']
+ steps:
+ - uses: OpenDataPlane/action-clean-up@main
+ - uses: actions/checkout@v4
+ - run: sudo docker run -i -v `pwd`:/odp --privileged --shm-size 8g -e CC="${{matrix.cc}}"
+ -e CONF="${CONF}" $CONTAINER_NAMESPACE/odp-ci-${{matrix.os}}-${ARCH}-native /odp/scripts/ci/build_${ARCH}.sh
+ - if: ${{ failure() }}
+ uses: ./.github/actions/build-failure-log
+
+ Build_gcc_u22:
+ if: ${{ github.repository == 'OpenDataPlane/odp' }}
+ runs-on: [self-hosted, ARM64]
+ env:
+ OS: ubuntu_22.04
+ strategy:
+ fail-fast: false
+ matrix:
+ cc_ver: [10, 11, 12, 13]
+ conf: ['', '--enable-abi-compat']
+ steps:
+ - uses: OpenDataPlane/action-clean-up@main
+ - uses: actions/checkout@v4
+ - run: sudo docker run -i -v `pwd`:/odp --privileged --shm-size 8g -e CC="gcc-${{matrix.cc_ver}}" -e CXX="g++-${{matrix.cc_ver}}"
+ -e CONF="${{matrix.conf}}" $CONTAINER_NAMESPACE/odp-ci-${OS}-${ARCH}-native /odp/scripts/ci/build_${ARCH}.sh
+ - if: ${{ failure() }}
+ uses: ./.github/actions/build-failure-log
+
+ Build_out-of-tree:
+ if: ${{ github.repository == 'OpenDataPlane/odp' }}
+ runs-on: [self-hosted, ARM64]
+ steps:
+ - uses: OpenDataPlane/action-clean-up@main
+ - uses: actions/checkout@v4
+ - run: sudo docker run -i -v `pwd`:/odp --privileged --shm-size 8g -e CC="${CC}"
+ -e CONF="${CONF}" $CONTAINER_NAMESPACE/odp-ci-${OS}-${ARCH}-native /odp/scripts/ci/out_of_tree.sh
+ - if: ${{ failure() }}
+ uses: ./.github/actions/build-failure-log
+
+ Build_XDP:
+ if: ${{ github.repository == 'OpenDataPlane/odp' }}
+ runs-on: [self-hosted, ARM64]
+ env:
+ CONF: "--enable-xdp"
+ OS: ubuntu_22.04
+ strategy:
+ fail-fast: false
+ matrix:
+ cc: [gcc, clang]
+ steps:
+ - uses: OpenDataPlane/action-clean-up@main
+ - uses: actions/checkout@v4
+ - run: sudo docker run -i -v `pwd`:/odp --privileged --shm-size 8g -e CC="${{matrix.cc}}"
+ -e CONF="${CONF}" $CONTAINER_NAMESPACE/odp-ci-${OS}-${ARCH}-native /odp/scripts/ci/build_${ARCH}.sh
+ - if: ${{ failure() }}
+ uses: ./.github/actions/build-failure-log
+
+ Run_distcheck:
+ if: ${{ github.repository == 'OpenDataPlane/odp' }}
+ runs-on: [self-hosted, ARM64]
+ strategy:
+ fail-fast: false
+ matrix:
+ conf: ['--enable-user-guides', '--enable-user-guides --enable-abi-compat']
+ steps:
+ - uses: OpenDataPlane/action-clean-up@main
+ - uses: actions/checkout@v4
+ - run: sudo docker run -i -v `pwd`:/odp --privileged --shm-size 8g -e CC="${{matrix.cc}}"
+ -e CONF="${{matrix.conf}}" $CONTAINER_NAMESPACE/odp-ci-${OS}-${ARCH}-native /odp/scripts/ci/distcheck.sh
+ - if: ${{ failure() }}
+ uses: ./.github/actions/run-failure-log
+
+ Run_gcc:
+ if: ${{ github.repository == 'OpenDataPlane/odp' }}
+ runs-on: [self-hosted, ARM64]
+ strategy:
+ fail-fast: false
+ matrix:
+ conf: ['',
+ '--enable-abi-compat',
+ '--enable-deprecated --enable-helper-deprecated --enable-debug=full',
+ '--enable-dpdk-zero-copy --disable-static-applications',
+ '--disable-host-optimization --enable-event-validation=warn',
+ '--disable-host-optimization --enable-abi-compat',
+ '--without-openssl --without-pcap',
+ '--with-crypto=armv8crypto',
+ '--with-crypto=ipsecmb',
+ '--enable-wfe-locks']
+ steps:
+ - uses: OpenDataPlane/action-clean-up@main
+ - uses: actions/checkout@v4
+ - run: sudo docker run -i -v `pwd`:/odp --privileged --shm-size 8g -e CC=gcc -e ARCH="${ARCH}"
+ -e CONF="${{matrix.conf}}" $CONTAINER_NAMESPACE/odp-ci-${OS}-${ARCH}-native /odp/scripts/ci/check.sh
+ - if: ${{ failure() }}
+ uses: ./.github/actions/run-failure-log
+ - if: ${{ success() }}
+ uses: ./.github/actions/dump-log
+
+ Run_clang:
+ if: ${{ github.repository == 'OpenDataPlane/odp' }}
+ runs-on: [self-hosted, ARM64]
+ strategy:
+ fail-fast: false
+ matrix:
+ conf: ['',
+ '--enable-abi-compat',
+ '--enable-deprecated --enable-helper-deprecated --enable-debug=full',
+ '--enable-dpdk-zero-copy --disable-static-applications',
+ '--disable-host-optimization --enable-event-validation=warn',
+ '--disable-host-optimization --enable-abi-compat']
+ steps:
+ - uses: OpenDataPlane/action-clean-up@main
+ - uses: actions/checkout@v4
+ - run: sudo docker run -i -v `pwd`:/odp --privileged --shm-size 8g -e CC=clang -e ARCH="${ARCH}"
+ -e CONF="${{matrix.conf}}" $CONTAINER_NAMESPACE/odp-ci-${OS}-${ARCH}-native /odp/scripts/ci/check.sh
+ - if: ${{ failure() }}
+ uses: ./.github/actions/run-failure-log
+
+ Run_CFLAGS:
+ if: ${{ github.repository == 'OpenDataPlane/odp' }}
+ runs-on: [self-hosted, ARM64]
+ strategy:
+ fail-fast: false
+ matrix:
+ cc: [gcc, clang]
+ cflags: ['-march=armv8.2-a -O2', '-march=armv8.2-a+crypto -O2']
+ steps:
+ - uses: OpenDataPlane/action-clean-up@main
+ - uses: actions/checkout@v4
+ - run: sudo docker run -i -v `pwd`:/odp --privileged --shm-size 8g -e CC="${{matrix.cc}}" -e ARCH="${ARCH}"
+ -e CXX=g++-10 -e CFLAGS="${{matrix.cflags}}" $CONTAINER_NAMESPACE/odp-ci-${OS}-${ARCH}-native /odp/scripts/ci/check.sh
+ - if: ${{ failure() }}
+ uses: ./.github/actions/run-failure-log
+
+ Run_OS:
+ if: ${{ github.repository == 'OpenDataPlane/odp' }}
+ runs-on: [self-hosted, ARM64]
+ strategy:
+ fail-fast: false
+ matrix:
+ os: ['ubuntu_22.04']
+ steps:
+ - uses: OpenDataPlane/action-clean-up@main
+ - uses: actions/checkout@v4
+ - run: sudo docker run -i -v `pwd`:/odp --privileged --shm-size 8g -e CC="${CC}" -e ARCH="${ARCH}"
+ -e CONF="${CONF}" $CONTAINER_NAMESPACE/odp-ci-${{matrix.os}}-${ARCH}-native /odp/scripts/ci/check.sh
+ - if: ${{ failure() }}
+ uses: ./.github/actions/run-failure-log
+
+ Run_sched_config:
+ if: ${{ github.repository == 'OpenDataPlane/odp' }}
+ runs-on: [self-hosted, ARM64]
+ steps:
+ - uses: OpenDataPlane/action-clean-up@main
+ - uses: actions/checkout@v4
+ - run: sudo docker run -i -v `pwd`:/odp --privileged --shm-size 8g -e CC="${CC}" -e ARCH="${ARCH}"
+ -e CONF="${CONF}" -e ODP_CONFIG_FILE=/odp/platform/linux-generic/test/sched-basic.conf $CONTAINER_NAMESPACE/odp-ci-${OS}-${ARCH}-native /odp/scripts/ci/check.sh
+ - if: ${{ failure() }}
+ uses: ./.github/actions/run-failure-log
+
+ Run_stash_config:
+ if: ${{ github.repository == 'OpenDataPlane/odp' }}
+ runs-on: [self-hosted, ARM64]
+ steps:
+ - uses: OpenDataPlane/action-clean-up@main
+ - uses: actions/checkout@v4
+ - run: sudo docker run -i -v `pwd`:/odp --privileged --shm-size 8g -e CC="${CC}" -e ARCH="${ARCH}"
+ -e CONF="${CONF}" -e ODP_CONFIG_FILE=/odp/platform/linux-generic/test/stash-custom.conf $CONTAINER_NAMESPACE/odp-ci-${OS}-${ARCH}-native /odp/scripts/ci/check.sh
+ - if: ${{ failure() }}
+ uses: ./.github/actions/run-failure-log
+
+ Run_scheduler_sp:
+ if: ${{ github.repository == 'OpenDataPlane/odp' }}
+ runs-on: [self-hosted, ARM64]
+ steps:
+ - uses: OpenDataPlane/action-clean-up@main
+ - uses: actions/checkout@v4
+ - run: sudo docker run -i -v `pwd`:/odp --privileged --shm-size 8g -e CC="${CC}" -e ARCH="${ARCH}"
+ -e CONF="${CONF}" -e ODP_SCHEDULER=sp $CONTAINER_NAMESPACE/odp-ci-${OS}-${ARCH}-native /odp/scripts/ci/check.sh
+ - if: ${{ failure() }}
+ uses: ./.github/actions/run-failure-log
+
+ Run_scheduler_scalable:
+ if: ${{ github.repository == 'OpenDataPlane/odp' }}
+ runs-on: [self-hosted, ARM64]
+ steps:
+ - uses: OpenDataPlane/action-clean-up@main
+ - uses: actions/checkout@v4
+ - run: sudo docker run -i -v `pwd`:/odp --privileged --shm-size 8g -e CC="${CC}" -e ARCH="${ARCH}"
+ -e CONF="${CONF}" -e ODP_SCHEDULER=scalable -e CI_SKIP=pktio_test_pktin_event_sched $CONTAINER_NAMESPACE/odp-ci-${OS}-${ARCH}-native /odp/scripts/ci/check.sh
+ - if: ${{ failure() }}
+ uses: ./.github/actions/run-failure-log
+
+ Run_process_mode:
+ if: ${{ github.repository == 'OpenDataPlane/odp' }}
+ runs-on: [self-hosted, ARM64]
+ steps:
+ - uses: OpenDataPlane/action-clean-up@main
+ - uses: actions/checkout@v4
+ - run: sudo docker run -i -v `pwd`:/odp --privileged --shm-size 8g -e CC="${CC}" -e ARCH="${ARCH}"
+ -e CONF="${CONF}" -e ODP_CONFIG_FILE=/odp/platform/linux-generic/test/process-mode.conf
+ -e ODPH_PROC_MODE=1 $CONTAINER_NAMESPACE/odp-ci-${OS}-${ARCH}-native /odp/scripts/ci/check.sh
+ - if: ${{ failure() }}
+ uses: ./.github/actions/run-failure-log
+
+ Run_inline_timer:
+ if: ${{ github.repository == 'OpenDataPlane/odp' }}
+ runs-on: [self-hosted, ARM64]
+ steps:
+ - uses: OpenDataPlane/action-clean-up@main
+ - uses: actions/checkout@v4
+ - run: sudo docker run -i -v `pwd`:/odp --privileged --shm-size 8g -e CC="${CC}" -e ARCH="${ARCH}"
+ -e CONF="${CONF}" -e ODP_CONFIG_FILE=/odp/platform/linux-generic/test/inline-timer.conf
+ $CONTAINER_NAMESPACE/odp-ci-${OS}-${ARCH}-native /odp/scripts/ci/check_inline_timer.sh
+ - if: ${{ failure() }}
+ uses: ./.github/actions/run-failure-log
+
+ Run_packet_align:
+ if: ${{ github.repository == 'OpenDataPlane/odp' }}
+ runs-on: [self-hosted, ARM64]
+ steps:
+ - uses: OpenDataPlane/action-clean-up@main
+ - uses: actions/checkout@v4
+ - run: sudo docker run -i -v `pwd`:/odp --privileged --shm-size 8g -e CC="${CC}" -e ARCH="${ARCH}"
+ -e CONF="${CONF}" -e ODP_CONFIG_FILE=/odp/platform/linux-generic/test/packet_align.conf
+ $CONTAINER_NAMESPACE/odp-ci-${OS}-${ARCH}-native /odp/scripts/ci/check_pktio.sh
+ - if: ${{ failure() }}
+ uses: ./.github/actions/run-failure-log
+
+ Run_dpdk-19_11:
+ if: ${{ github.repository == 'OpenDataPlane/odp' }}
+ runs-on: [self-hosted, ARM64]
+ steps:
+ - uses: OpenDataPlane/action-clean-up@main
+ - uses: actions/checkout@v4
+ - run: sudo docker run -i -v `pwd`:/odp --privileged --shm-size 8g -e CC="${CC}" -e ARCH="${ARCH}"
+ -e CONF="${CONF}" $CONTAINER_NAMESPACE/odp-ci-${OS}-${ARCH}-native-dpdk_19.11 /odp/scripts/ci/check.sh
+ - if: ${{ failure() }}
+ uses: ./.github/actions/run-failure-log
+
+ Run_dpdk-20_11:
+ if: ${{ github.repository == 'OpenDataPlane/odp' }}
+ runs-on: [self-hosted, ARM64]
+ steps:
+ - uses: OpenDataPlane/action-clean-up@main
+ - uses: actions/checkout@v4
+ - run: sudo docker run -i -v `pwd`:/odp --privileged --shm-size 8g -e CC="${CC}" -e ARCH="${ARCH}"
+ -e CONF="${CONF}" $CONTAINER_NAMESPACE/odp-ci-${OS}-${ARCH}-native-dpdk_20.11 /odp/scripts/ci/check.sh
+ - if: ${{ failure() }}
+ uses: ./.github/actions/run-failure-log
+
+ Run_dpdk-21_11:
+ if: ${{ github.repository == 'OpenDataPlane/odp' }}
+ runs-on: [self-hosted, ARM64]
+ steps:
+ - uses: OpenDataPlane/action-clean-up@main
+ - uses: actions/checkout@v4
+ - run: sudo docker run -i -v `pwd`:/odp --privileged --shm-size 8g -e CC="${CC}" -e ARCH="${ARCH}"
+ -e CONF="${CONF}" $CONTAINER_NAMESPACE/odp-ci-${OS}-${ARCH}-native-dpdk_21.11 /odp/scripts/ci/check.sh
+ - if: ${{ failure() }}
+ uses: ./.github/actions/run-failure-log