ci: cleanup ccache from debian package #140
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: build-cn10k | |
| on: | |
| push: | |
| schedule: | |
| - cron: "0 0 * * 1" | |
| permissions: | |
| contents: write | |
| id-token: write | |
| packages: write | |
| jobs: | |
| ubuntu-cn10k-build: | |
| name: ubuntu-cn10k-arm64 | |
| runs-on: ubuntu-24.04-arm | |
| steps: | |
| - name: Checkout sources | |
| uses: actions/checkout@v4 | |
| - name: Generate cache keys | |
| id: get_ref_keys | |
| run: | | |
| echo 'ccache=ccache-'$(date -u +%Y-m%M) >> $GITHUB_OUTPUT | |
| - name: Retrieve ccache cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: ~/.ccache | |
| key: ${{ steps.get_ref_keys.outputs.ccache }}-${{ github.ref }} | |
| restore-keys: | | |
| ${{ steps.get_ref_keys.outputs.ccache }}-refs/heads/main | |
| - name: Build DPDK and generate package | |
| id: build | |
| run: | | |
| mkdir -p "${PWD}/artifacts" | |
| mkdir -p ~/.ccache | |
| sudo apt-get update -q -y | |
| sudo apt-get install -y build-essential ccache git software-properties-common | |
| sudo apt-get install -y ccache libarchive-dev libbsd-dev libbpf-dev | |
| sudo apt-get install -y libfdt-dev libjansson-dev | |
| sudo apt-get install -y libssl-dev ninja-build pkg-config python3-pip | |
| sudo apt-get install -y python3-pyelftools python3-setuptools python3-wheel zlib1g-dev meson gcc | |
| sudo apt-get install -y gcc-14 | |
| export CC='ccache gcc-14' | |
| echo "cache_dir = ~/.ccache" > ~/.ccache/ccache.conf | |
| ccache -p | |
| meson build -Dexamples=all -Denable_drivers="*/cnxk,net/ring,net/tap" -Dplatform=cn10k --prefix="${PWD}/install" | |
| ninja install -C build | |
| sed -i "s/prefix=.*/prefix=/g" "${PWD}/install/lib/aarch64-linux-gnu/pkgconfig/libdpdk.pc" | |
| sed -i "s/prefix=.*/prefix=/g" "${PWD}/install/lib/aarch64-linux-gnu/pkgconfig/libdpdk-libs.pc" | |
| PKG_VERSION_NAME=`cat VERSION | awk -F'.' '{print $1"."$2}'` | |
| MRVL_PKG_VERSION=`cat MRVL_VERSION` | |
| DISTRO=ubuntu-`lsb_release -rs` | |
| mkdir -p "${PWD}/install/debian" | |
| mkdir -p "${PWD}/install/DEBIAN" | |
| git config --global --add safe.directory "${PWD}" | |
| git tag --points-at HEAD > /tmp/tags | |
| [ -s /tmp/tags ] && PKG_POSTFIX= || PKG_POSTFIX=-devel | |
| cd "${PWD}/install" | |
| echo 'Source: dpdk' > debian/control | |
| echo 'Package: dpdk-'$PKG_VERSION_NAME'-cn10k'$PKG_POSTFIX >> DEBIAN/control | |
| echo 'Version: '$MRVL_PKG_VERSION >> DEBIAN/control | |
| echo "Depends: `dpkg-shlibdeps -O bin/dpdk-testpmd | awk -F'Depends=' '{print $2}'`, libbsd-dev, libarchive-dev, libelf-dev, libjansson-dev, libacl1-dev, nettle-dev, liblzma-dev, libzstd-dev, liblz4-dev, libbz2-dev, libxml2-dev, libfdt-dev" >> DEBIAN/control | |
| echo "Maintainer: Jerin Jacob (jerinj@marvell.com)" >> DEBIAN/control | |
| echo "Architecture: arm64" >> DEBIAN/control | |
| echo "Homepage: https://www.dpdk.org/" >> DEBIAN/control | |
| echo "Description: DPDK Library for Marvell Octeon 10" >> DEBIAN/control | |
| cd - | |
| rm -rf "${PWD}/install/~" "${PWD}/install/home" | |
| mv "${PWD}/install" "${PWD}/dpdk-${PKG_VERSION_NAME}-cn10k${PKG_POSTFIX}_${MRVL_PKG_VERSION}_arm64" | |
| dpkg --build "dpdk-${PKG_VERSION_NAME}-cn10k${PKG_POSTFIX}_${MRVL_PKG_VERSION}_arm64" | |
| cp "dpdk-${PKG_VERSION_NAME}-cn10k${PKG_POSTFIX}_${MRVL_PKG_VERSION}_arm64.deb" ${PWD}/artifacts/. | |
| echo "PKG_VERSION_NAME=${PKG_VERSION_NAME}" >> ${PWD}/artifacts/env | |
| echo "MRVL_PKG_VERSION=${MRVL_PKG_VERSION}" >> ${PWD}/artifacts/env | |
| echo "PKG_POSTFIX=${PKG_POSTFIX}" >> ${PWD}/artifacts/env | |
| echo "DISTRO=${DISTRO}" >> ${PWD}/artifacts/env | |
| - name: Export version name | |
| id: artifacts | |
| run: | | |
| source "${PWD}/artifacts/env" | |
| echo $PKG_VERSION_NAME | |
| echo "PKG_VERSION_NAME=${PKG_VERSION_NAME}" >> "$GITHUB_OUTPUT" | |
| echo $MRVL_PKG_VERSION | |
| echo "MRVL_PKG_VERSION=${MRVL_PKG_VERSION}" >> "$GITHUB_OUTPUT" | |
| echo $PKG_POSTFIX | |
| echo "PKG_POSTFIX=${PKG_POSTFIX}" >> "$GITHUB_OUTPUT" | |
| [[ "$PKG_POSTFIX" == "-devel" ]] && TAG=devel || TAG=${MRVL_PKG_VERSION} | |
| echo "TAG=${TAG}" >> "$GITHUB_OUTPUT" | |
| echo "DISTRO=${DISTRO}" >> "$GITHUB_OUTPUT" | |
| - name: Upload debian package as artifact | |
| uses: actions/upload-artifact@v4.3.1 | |
| if: ${{ github.event_name == 'push' }} | |
| with: | |
| name: dpdk-${{ steps.artifacts.outputs.PKG_VERSION_NAME }}-cn10k${{ steps.artifacts.outputs.PKG_POSTFIX }}_${{ steps.artifacts.outputs.MRVL_PKG_VERSION }}_arm64.deb | |
| path: ${{ github.workspace }}/artifacts/dpdk-${{ steps.artifacts.outputs.PKG_VERSION_NAME }}-cn10k${{ steps.artifacts.outputs.PKG_POSTFIX }}_${{ steps.artifacts.outputs.MRVL_PKG_VERSION }}_arm64.deb | |
| - name: Delete existing release | |
| uses: liudonghua123/delete-release-action@v1 | |
| if: ${{ github.event_name == 'push' }} | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| with: | |
| release_name: dpdk-cn10k-${{ steps.artifacts.outputs.PKG_VERSION_NAME }}_${{ steps.artifacts.outputs.MRVL_PKG_VERSION }}-${{ steps.artifacts.outputs.DISTRO }}-${{ steps.artifacts.outputs.TAG }} | |
| suppress_errors: true | |
| - name: Release DPDK cn10k package | |
| uses: softprops/action-gh-release@v2.0.4 | |
| if: ${{ github.event_name == 'push' }} | |
| with: | |
| tag_name: dpdk-cn10k-${{ steps.artifacts.outputs.PKG_VERSION_NAME }}_${{ steps.artifacts.outputs.MRVL_PKG_VERSION }}-${{ steps.artifacts.outputs.DISTRO }}-${{ steps.artifacts.outputs.TAG }} | |
| files: | | |
| ${{ github.workspace }}/artifacts/dpdk-${{ steps.artifacts.outputs.PKG_VERSION_NAME }}-cn10k${{ steps.artifacts.outputs.PKG_POSTFIX }}_${{ steps.artifacts.outputs.MRVL_PKG_VERSION }}_arm64.deb |