|
| 1 | +name: build-cn10k-vpp |
| 2 | + |
| 3 | +on: |
| 4 | + pull_request: |
| 5 | + |
| 6 | +permissions: |
| 7 | + contents: read |
| 8 | + |
| 9 | +concurrency: |
| 10 | + group: build-cn10k-vpp-${{ github.event.pull_request.number || github.ref }} |
| 11 | + cancel-in-progress: true |
| 12 | + |
| 13 | +jobs: |
| 14 | + ubuntu-cn10k-build: |
| 15 | + name: ubuntu-cn10k-arm64 |
| 16 | + runs-on: ubuntu-24.04-arm |
| 17 | + |
| 18 | + steps: |
| 19 | + - name: Checkout sources |
| 20 | + uses: actions/checkout@v4.2.2 |
| 21 | + with: |
| 22 | + fetch-depth: 0 |
| 23 | + |
| 24 | + - name: Generate cache keys |
| 25 | + id: get_ref_keys |
| 26 | + run: | |
| 27 | + echo 'ccache=ccache-'$(date -u +%Y-%m) >> $GITHUB_OUTPUT |
| 28 | +
|
| 29 | + - name: Retrieve ccache cache |
| 30 | + uses: actions/cache@v4.2.3 |
| 31 | + with: |
| 32 | + path: ~/.ccache |
| 33 | + key: ${{ steps.get_ref_keys.outputs.ccache }}-${{ github.ref }} |
| 34 | + restore-keys: | |
| 35 | + ${{ steps.get_ref_keys.outputs.ccache }}-refs/heads/main |
| 36 | +
|
| 37 | + - name: Build VPP for cn10k |
| 38 | + run: | |
| 39 | + set -x |
| 40 | + sudo apt-get update -q -y |
| 41 | + sudo apt-get install -y apt-utils gcc meson sudo make dialog ccache git gh build-essential software-properties-common |
| 42 | + sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test |
| 43 | + sudo apt-get update -q -y |
| 44 | + sudo apt-get install -y curl autoconf automake debhelper dkms |
| 45 | + sudo apt-get install -y libtool libapr1-dev dh-python libconfuse-dev git-review exuberant-ctags |
| 46 | + sudo apt-get install -y cscope pkg-config gcovr lcov chrpath libnuma-dev python3-all |
| 47 | + sudo apt-get install -y python3-setuptools check libffi-dev python3-ply libunwind-dev cmake |
| 48 | + sudo apt-get install -y ninja-build python3-jsonschema python3-yaml python3-venv python3-dev |
| 49 | + sudo apt-get install -y python3-pip libnl-3-dev libnl-route-3-dev libmnl-dev python3-virtualenv |
| 50 | + sudo apt-get install -y libssl-dev libelf-dev libpcap-dev iperf3 nasm iperf ethtool tshark jq |
| 51 | + sudo apt-get install -y llvm clang clang-format-15 enchant-2 libffi8 |
| 52 | + sudo apt-get install -y aspell aspell-en autopoint autotools-dev binfmt-support binutils binutils-aarch64-linux-gnu |
| 53 | + sudo apt-get install -y binutils-common bsdextrautils bzip2 ca-certificates clang-14 cmake-data cpp cpp-11 cpp-12 dbus |
| 54 | + sudo apt-get install -y dctrl-tools debugedit dh-autoreconf dh-elpa-helper dh-strip-nondeterminism dictionaries-common dirmngr |
| 55 | + sudo apt-get install -y distro-info-data dpkg-dev dwz emacsen-common fakeroot file fontconfig-config fonts-dejavu-core g++ g++-11 |
| 56 | + sudo apt-get install -y gcc gcc-11 gcc-11-base gcc-12 gcc-13 gettext gettext-base git-man gnupg gnupg-l10n gnupg-utils gpg gpg-agent |
| 57 | + sudo apt-get install -y gpg-wks-client gpg-wks-server gpgconf gpgsm groff-base hunspell-en-us icu-devtools intltool-debian |
| 58 | + sudo apt-get install -y javascript-common kmod less libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl |
| 59 | + sudo apt-get install -y libapparmor1 libapr1 libarchive-cpio-perl libarchive-zip-perl libarchive13 libasan6 libasan8 libaspell15 |
| 60 | + sudo apt-get install -y libassuan0 libatomic1 libbcg729-0 libbinutils libbrotli1 libbsd0 libc-ares2 libc-dev-bin libc-devtools |
| 61 | + sudo apt-get install -y libc6-dev libcap2-bin libcbor0.10 libcc1-0 libclang-common-14-dev libclang-cpp14 |
| 62 | + sudo apt-get install -y libclang1-14 libcommon-sense-perl libconfuse-common libconfuse-doc libconfuse2 libcrypt-dev libctf-nobfd0 |
| 63 | + sudo apt-get install -y libctf0 libcurl3-gnutls libcurl4 libdbus-1-3 libdbus-1-dev libdebhelper-perl libdeflate0 libdpkg-perl |
| 64 | + sudo apt-get install -y libdw1 libedit2 libelf1 libenchant-2-2 liberror-perl libexpat1 libexpat1-dev libfakeroot libfido2-1 |
| 65 | + sudo apt-get install -y libfile-fcntllock-perl libfile-stripnondeterminism-perl libfontconfig1 libfreetype6 libgc1 libgcc-11-dev |
| 66 | + sudo apt-get install -y libgcc-12-dev libgd-perl libgd3 libgdbm-compat4 libgdbm6 libglib2.0-0 libglib2.0-data libgomp1 |
| 67 | + sudo apt-get install -y libhiredis1.1.0 libhunspell-1.7-0 libhwasan0 libicu-dev libicu74 libiperf0 libisl23 libitm1 libjbig0 |
| 68 | + sudo apt-get install -y libjpeg-turbo8 libjpeg8 libjs-jquery libjs-sphinxdoc libjs-underscore libjson-perl libjson-xs-perl |
| 69 | + sudo apt-get install -y libjsoncpp25 libkmod2 libksba8 libldap2 libldap2-dev libldap-common libllvm14t64 liblocale-gettext-perl |
| 70 | + sudo apt-get install -y liblsan0 libltdl-dev libltdl7 liblua5.2-0 libmagic-mgc libmagic1 libmail-sendmail-perl libmaxminddb0 |
| 71 | + sudo apt-get install -y libmd0 libmnl0 libmpc3 libmpfr6 libncurses-dev libnghttp2-14 libnl-3-200 libnl-genl-3-200 |
| 72 | + sudo apt-get install -y libnl-route-3-200 libnpth0 libnsl-dev libnuma1 libobjc-11-dev libobjc4 libpam-cap libpcap0.8 |
| 73 | + sudo apt-get install -y libpcap0.8-dev libperl5.38t64 libperlio-gzip-perl libpfm4 libpipeline1 libpng16-16 libpsl5 libpython3-dev |
| 74 | + sudo apt-get install -y libpython3-stdlib libpython3.12t64 libpython3.12-dev libpython3.12-minimal libreadline8 |
| 75 | + sudo apt-get install -y librhash0 librtmp1 libsasl2-2 libsasl2-modules libsasl2-modules-db libsbc1 libsctp-dev libsctp1 |
| 76 | + sudo apt-get install -y libsigsegv2 libsmi2ldbl libsnappy1v5 libspandsp2 libspeexdsp1 libsqlite3-0 libssh-4 libssh-gcrypt-4 |
| 77 | + sudo apt-get install -y libstdc++-11-dev libsub-override-perl libsubunit-dev libsubunit0 libsys-hostname-long-perl |
| 78 | + sudo apt-get install -y libtext-iconv-perl libtiff6 libtinfo-dev libtirpc-dev libtsan0 libtsan2 libtypes-serialiser-perl |
| 79 | + sudo apt-get install -y libubsan1 libuchardet0 libuv1 libwebp7 libwireshark-data libwireshark17t64 libwiretap14t64 libwsutil15t64 libx11-6 |
| 80 | + sudo apt-get install -y libx11-data libxau6 libxcb1 libxdmcp6 libxext6 libxml2 libxml2-dev libxmuu1 libxpm4 libxslt1.1 |
| 81 | + sudo apt-get install -y libyaml-0-2 libz3-4 libz3-dev linux-headers-6.8.0-51 linux-headers-6.8.0-51-generic |
| 82 | + sudo apt-get install -y linux-headers-generic linux-libc-dev llvm-14 llvm-14-dev llvm-14-linker-tools llvm-14-runtime |
| 83 | + sudo apt-get install -y llvm-14-tools lsb-release lto-disabled-list m4 man-db manpages manpages-dev media-types netbase |
| 84 | + sudo apt-get install -y openssh-client openssl patch perl perl-modules-5.38 pinentry-curses po-debconf publicsuffix |
| 85 | + sudo apt-get install -y python-babel-localedata python3 python3-attr python3-babel python3-bs4 python3-certifi python3-chardet |
| 86 | + sudo apt-get install -y python3-distlib python3-filelock python3-html5lib python3-idna |
| 87 | + sudo apt-get install -y python3-importlib-metadata python3-jinja2 python3-lib2to3 python3-lxml python3-markupsafe python3-minimal |
| 88 | + sudo apt-get install -y python3-more-itertools python3-pip-whl python3-pkg-resources python3-platformdirs python3-pygments |
| 89 | + sudo apt-get install -y python3-pyrsistent python3-requests python3-setuptools-whl python3-six python3-soupsieve python3-tz |
| 90 | + sudo apt-get install -y python3-urllib3 python3-webencodings python3-wheel python3-wheel-whl python3-zipp python3.10 |
| 91 | + sudo apt-get install -y python3-minimal readline-common rpcsvc-proto shared-mime-info tzdata |
| 92 | + sudo apt-get install -y ucf uuid-dev wireshark-common xauth xdg-user-dirs xz-utils zlib1g-dev libgmpxx4ldbl |
| 93 | + sudo apt-get install -y liblz4-dev liblzma-dev wget libzstd-dev nettle-dev lsb-release doxygen libarchive-dev |
| 94 | + sudo apt-get install -y libnl-xfrm-3-dev sphinx-common python3-sphinx-rtd-theme libfdt-dev libjansson-dev libbsd-dev |
| 95 | + sudo apt-get install -y python3-pyelftools gcc-14 bzip2-doc libacl1-dev libattr1-dev libbz2-dev libgmp-dev libbpf-dev libconfig-dev |
| 96 | + DISTRO=ubuntu-$(lsb_release -rs) |
| 97 | + BASE=$(cut -d. -f1,2 < MRVL_VERSION) |
| 98 | + ccache -p |
| 99 | + git config --global --add safe.directory "${PWD}" |
| 100 | + sudo APT_ARGS='-y -q' make install-deps |
| 101 | + GH_REPO=MarvellEmbeddedProcessors/dao |
| 102 | + BEST=$(curl -fsSL "https://api.github.com/repos/${GH_REPO}/releases?per_page=100" | jq -r '.[].tag_name' | grep -E "^oct-ep-target-cn10k-${BASE}\.[0-9]+-${DISTRO}-devel$" | sort -V | tail -n1) |
| 103 | + if [ -z "${BEST}" ]; then |
| 104 | + echo "::error::No matching oct-ep-target-cn10k devel release for base ${BASE} and ${DISTRO}" |
| 105 | + exit 1 |
| 106 | + fi |
| 107 | + OCT_PKG_VERSION=$(echo "$BEST" | cut -d- -f5) |
| 108 | + wget -q "https://github.com/MarvellEmbeddedProcessors/dao/releases/download/${BEST}/oct-ep-target-cn10k-devel_${OCT_PKG_VERSION}_arm64.deb" |
| 109 | + sudo apt-get install -y "./oct-ep-target-cn10k-devel_${OCT_PKG_VERSION}_arm64.deb" |
| 110 | + make build-release VPP_PLATFORM=octeon10 |
0 commit comments