diff options
Diffstat (limited to '.github/workflows/ci-pipeline-arm64.yml')
-rw-r--r-- | .github/workflows/ci-pipeline-arm64.yml | 347 |
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 |