ON-16235: run tcpdirect build and test GHA in compatibility checks #380
This file contains 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
# SPDX-License-Identifier: BSD-2-Clause | |
# X-SPDX-Copyright-Text: (c) Copyright 2023 Advanced Micro Devices, Inc. | |
name: "repo_compatibility_check" | |
on: push | |
jobs: | |
ssa: | |
if: vars.INTERNAL_REPO | |
runs-on: ubuntu-latest | |
steps: | |
- name: onload_internal | |
uses: actions/checkout@v4 | |
with: | |
path: onload_internal | |
- name: Extract simple_sockets_apps branch name | |
id: ssa_ref | |
run: echo "branch=$(yq -r '.products.simple_sockets_apps.version' < $GITHUB_WORKSPACE/onload_internal/versions.yaml)" >> "$GITHUB_OUTPUT" | |
- name: ssa checkout | |
uses: actions/checkout@v4 | |
with: | |
repository: ${{ github.repository_owner }}/simple_sockets_apps | |
ssh-key: ${{ secrets.SIMPLE_SOCKET_APPS_READ_PRIVATE_KEY }} | |
path: ssa | |
ref: ${{ steps.ssa_ref.outputs.branch }} | |
- name: ssa build | |
run: | | |
cd $GITHUB_WORKSPACE/ssa | |
make ONLOAD_TREE=$GITHUB_WORKSPACE/onload_internal -j $(nproc) | |
extract_branch_info: | |
runs-on: ubuntu-latest | |
timeout-minutes: 1 | |
outputs: | |
onloadBranch: ${{ steps.onloadBranch.outputs.branch }} | |
tcpdirectBranch: ${{ steps.tcpdirectBranch.outputs.branch }} | |
steps: | |
- name: Checkout onload | |
uses: actions/checkout@v4 | |
with: | |
path: onload | |
- name: Install yq | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y python3 python3-pip jq | |
pip3 install yq | |
- name: Extract onload branch | |
id: onloadBranch | |
run: echo "branch=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}" >> "$GITHUB_OUTPUT" | |
- name: Extract TCPDirect branch | |
id: tcpdirectBranch | |
run: echo "branch=$(yq -r '.products.TCPDirect.version' < $GITHUB_WORKSPACE/onload/versions.yaml)" >> "$GITHUB_OUTPUT" | |
tcpdirect: | |
runs-on: ubuntu-latest | |
timeout-minutes: 30 | |
needs: extract_branch_info | |
env: | |
TCPDIRECT_TREE: ${{ github.workspace }}/tcpdirect | |
ONLOAD_TREE: ${{ github.workspace }}/onload | |
steps: | |
# We try checking out TCPDirect with the current onload branch to support | |
# development workflows, but will fall back to the branch defined in our | |
# versions.yaml file. | |
- name: Checkout TCPDirect development branch | |
id: primary_tcpdirect_checkout | |
continue-on-error: true | |
uses: actions/checkout@v4 | |
with: | |
repository: ${{ github.repository_owner }}/tcpdirect | |
path: ${{ env.TCPDIRECT_TREE }} | |
ref: ${{ needs.extract_branch_info.outputs.onloadBranch }} | |
- name: Cleanup failed TCPDirect development branch checkout | |
if: ${{ ! cancelled() && steps.primary_tcpdirect_checkout.outcome == 'failure' }} | |
run: rm -rf "$TCPDIRECT_TREE" | |
- name: Checkout TCPDirect | |
uses: actions/checkout@v4 | |
if: ${{ ! cancelled() && steps.primary_tcpdirect_checkout.outcome == 'failure' }} | |
with: | |
repository: ${{ github.repository_owner }}/tcpdirect | |
path: tcpdirect | |
ref: ${{ needs.extract_branch_info.outputs.tcpdirectBranch }} | |
- name: Checkout Onload | |
uses: actions/checkout@v4 | |
with: | |
path: ${{ env.ONLOAD_TREE }} | |
- name: Checkout packetdrill | |
uses: actions/checkout@v4 | |
continue-on-error: true | |
with: | |
repository: ${{ github.repository_owner }}/packetdrill-tcpdirect | |
path: packetdrill-tcpdirect | |
ref: tcpdirect-8.1 | |
- name: Install the TCPDirect build and test dependencies | |
uses: ./tcpdirect/.github/actions/install-dependencies | |
- name: Build the base TCPDirect library | |
uses: ./tcpdirect/.github/actions/build | |
with: | |
tcpdirect_tree: ${{ env.TCPDIRECT_TREE }} | |
onload_tree: ${{ env.ONLOAD_TREE }} | |
build_target: all | |
debug: true | |
- name: Build the TCPDirect socket shim | |
uses: ./tcpdirect/.github/actions/build | |
with: | |
tcpdirect_tree: ${{ env.TCPDIRECT_TREE }} | |
onload_tree: ${{ env.ONLOAD_TREE }} | |
build_target: shim | |
debug: true | |
- name: Run the TCPDirect unit tests | |
uses: ./tcpdirect/.github/actions/test | |
with: | |
tcpdirect_tree: ${{ env.TCPDIRECT_TREE }} | |
onload_tree: ${{ env.ONLOAD_TREE }} | |
test_timeout_multiplier: 2 | |
run_slow_tests: false |