Skip to content

periodic-vpp-verify-dpdk-rdma-ver #231

periodic-vpp-verify-dpdk-rdma-ver

periodic-vpp-verify-dpdk-rdma-ver #231

name: periodic-vpp-verify-dpdk-rdma-ver
on:
schedule:
- cron: '0 2 * * *' # Runs daily at 2am UTC
workflow_dispatch:
inputs:
FDIO_NAMESPACE:
description: "Executor Namespace (prod|sandbox)"
required: false
type: choice
options:
- sandbox
- prod
default: prod
defaults:
run:
shell: bash
permissions:
contents: read
actions: read
concurrency:
group: required-${{ github.workflow }}
cancel-in-progress: true
jobs:
verify-dpdk-rdma-version:
# yamllint disable-line rule:line-length
name: dpdk-rdma-ver-${{ matrix.os }}-${{ matrix.executor_arch }}-${{ github.event.inputs.FDIO_NAMESPACE || 'prod' }}
runs-on:
- self-hosted
- nomad
- fdio:arch=${{ matrix.executor_arch }}
- fdio:class=${{ matrix.class }}
- fdio:namespace=${{ github.event.inputs.FDIO_NAMESPACE || 'prod' }}
- fdio:os=${{ matrix.os }}
- fdio:workflow=${{ github.run_id }}
strategy:
fail-fast: false
matrix:
build_type: ['release']
class: ['builder']
os: ['ubuntu2404']
executor_arch: ['x86_64']
env:
FDIO_NAMESPACE: ${{ github.event.inputs.FDIO_NAMESPACE || 'prod' }}
LOG_NAME: ""
LOG_DIR: ""
WORKSPACE: /scratch/docker-build/vpp
TUI_LINE: "*******************************************************************"
steps:
- name: Actions Checkout
uses: actions/checkout@0c366fd6a839edf440554fa01a7085ccba70ac98 # v6.0.2
- name: Setup Environment
# yamllint disable-line rule:line-length
uses: fdio/.github/.github/actions/setup-executor-env@b728d1589228e2891a4241a1bba362d76895c225
- name: Timestamp and Log Directory
run: |
set -euxo pipefail
ts="$(date -u +%Y_%m_%d_%H%M%S_UTC)"
LOG_NAME="dpdk-rdma-version-master-${ts}-${{ matrix.build_type }}-${{ matrix.class }}-${{ matrix.os }}-${{ env.FDIO_NAMESPACE }}-${{ matrix.executor_arch }}"
echo "LOG_NAME=$LOG_NAME" >> "$GITHUB_ENV"
LOG_DIR="$WORKSPACE/logs/$LOG_NAME"
echo "LOG_DIR=$LOG_DIR" >> "$GITHUB_ENV"
mkdir -p "$LOG_DIR"
- name: Show Environment
run: |
set -euo pipefail
env | sort | tee "$LOG_DIR/environment.log"
- name: Show Nomad Dockerfile
# yamllint disable-line rule:line-length
uses: fdio/.github/.github/actions/show-nomad-dockerfile@b728d1589228e2891a4241a1bba362d76895c225
- name: Pull VPP master HEAD
run: |
set -euxo pipefail
cd "$WORKSPACE"
git checkout master
git pull
git show --stat
- name: Install VPP dependencies
# yamllint disable-line rule:line-length
uses: fdio/vpp/.github/actions/vpp-install-deps@777792ecef2d5c93ce15fa5b7fdca999f5412c9d
with:
LOG_DIR: ${{ env.LOG_DIR }}
WORKSPACE: ${{ env.WORKSPACE }}
TUI_LINE: ${{ env.TUI_LINE }}
- name: Install VPP external dependencies
# yamllint disable-line rule:line-length
uses: fdio/vpp/.github/actions/vpp-install-ext-deps@d0577011fb512d79e6914b6f1f11e2be4c09bc1e
with:
LOG_DIR: ${{ env.LOG_DIR }}
WORKSPACE: ${{ env.WORKSPACE }}
TUI_LINE: ${{ env.TUI_LINE }}
- name: Build VPP and Verify DPDK RDMA driver
run: |
set -euo pipefail
EXTERNAL_BUILD_DIR="$WORKSPACE/build/external"
RETVAL="0"
RESULT="pass"
MISMATCH_RESULT="INCLUDED IN"
make -C "$EXTERNAL_BUILD_DIR" build-deb | tee "$LOG_DIR/build_deb.log"
source "$EXTERNAL_BUILD_DIR/dpdk_mlx_default.sh" || true
if [ "${DPDK_MLX_DEFAULT-}" = "n" ] ; then
MISMATCH_RESULT="MISSING FROM"
RETVAL="1"
RESULT="fail"
fi
echo -e "\n$TUI_LINE\n* MLX DPDK DRIVER $MISMATCH_RESULT VPP-EXT-DEPS PACKAGE\n$TUI_LINE\n" | tee "$LOG_DIR/result_${RESULT}.log"
exit $RETVAL
- name: AWS S3 Publish Logs
if: ${{ always() }}
# yamllint disable-line rule:line-length
uses: fdio/.github/.github/actions/aws-s3-publish-logs@1b8eff3ffd9d355b28052be9ad22acc57b3430b5
with:
aws_access_key_id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws_secret_access_key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws_region: ${{ vars.AWS_REGION }}
s3_bucket: ${{ vars.S3_BUCKET }}
s3_path: gha-vpp-periodic/${{ env.LOG_NAME }}
archives_path: ${{ env.LOG_DIR }}