ON-16261: simplify repo version information to key-value pairs #382
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) | |
tcpdirect: | |
runs-on: ubuntu-latest | |
timeout-minutes: 30 | |
env: | |
TCPDIRECT_TREE: ${{ github.workspace }}/tcpdirect | |
ONLOAD_TREE: ${{ github.workspace }}/onload | |
steps: | |
- name: Checkout Onload | |
uses: actions/checkout@v4 | |
with: | |
path: ${{ env.ONLOAD_TREE }} | |
- name: Extract version information | |
working-directory: ${{ env.ONLOAD_TREE }} | |
run: | | |
cat versions.env | sed -E "s/^#.*$//g" >> "$GITHUB_ENV" | |
echo "ONLOAD_DEV_BRANCH=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}" >> "$GITHUB_ENV" | |
# 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: ${{ env.ONLOAD_DEV_BRANCH }} | |
- 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: ${{ env.TCPDIRECT_VERSION }} | |
- 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 |