-
Notifications
You must be signed in to change notification settings - Fork 2
102 lines (88 loc) · 3.46 KB
/
cmake.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
name: Github Actions
on:
pull_request:
branches: [ master ]
env:
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
OPTIONS: -DBUILD_SDK=ON -DBUILD_TESTS=ON
BROADCOM_SDK_ZIP: https://github.com/xiallc/broadcom_pci_pcie_sdk/releases/download/8.23/xia-broadcom-8.23-64bit-ci-package.zip
jobs:
build-Windows:
runs-on: windows-latest
strategy:
matrix:
include:
- env:
BUILD_TYPE: Release
- env:
BUILD_TYPE: Debug
steps:
- uses: actions/checkout@v4
- uses: ilammy/[email protected]
with:
arch: amd64
- name: PLX
run: |
$Env:ORIG_DIR="$pwd"
Invoke-WebRequest -Uri $Env:BROADCOM_SDK_ZIP -OutFile broadcom_sdk.zip
Expand-Archive -Path broadcom_sdk.zip
$Env:PLX_SDK_DIR="$pwd\broadcom_sdk\xia\ci\broadcom\plx\8.23"
echo "PLX_SDK_DIR: $Env:PLX_SDK_DIR"
echo "PLX_SDK_DIR=$Env:PLX_SDK_DIR" >> $Env:GITHUB_ENV
echo ";$Env:PLX_SDK_DIR\PlxApi\Release\" >> $Env:GITHUB_PATH
- name: Configure
run: |
mkdir build
cd build
cmake ..\ $Env:OPTIONS -DCMAKE_BUILD_TYPE=${{matrix.env.BUILD_TYPE}}
- name: Build
run: |
cmake --build $Env:GITHUB_WORKSPACE/build --config ${{matrix.env.BUILD_TYPE}}
- name: Test
run: |
& "$Env:GITHUB_WORKSPACE\build\tests\unit\sdk\${{matrix.env.BUILD_TYPE}}\pixie_sdk_unit_test_runner.exe"
if ($LASTEXITCODE) { exit $LASTEXITCODE }
& "$Env:GITHUB_WORKSPACE\build\tests\integration\${{matrix.env.BUILD_TYPE}}\pixie_sdk_integration_test_runner.exe"
if ($LASTEXITCODE) { exit $LASTEXITCODE }
$env:Path += ";$Env:GITHUB_WORKSPACE\build\sdk\src\pixie16\${{matrix.env.BUILD_TYPE}}"
cd "$Env:GITHUB_WORKSPACE\build\tests\integration\${{matrix.env.BUILD_TYPE}}"
.\test_pixie16_c.exe
if ($LASTEXITCODE) { exit $LASTEXITCODE }
build-Linux:
# The CMake configure and build commands are platform agnostic and should work equally
# well on Windows or Mac. You can convert this to a matrix build if you need
# cross-platform coverage.
# See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix
runs-on: ubuntu-latest
strategy:
matrix:
include:
- env:
BUILD_TYPE: Release
- env:
BUILD_TYPE: Debug
steps:
- uses: actions/checkout@v4
- name: PLX
run: |
export ORIG_DIR=${PWD}
git clone https://github.com/xiallc/broadcom_pci_pcie_sdk.git
cd broadcom_pci_pcie_sdk
export PLX_SDK_DIR=${PWD}
echo "PLX_SDK_DIR=${PLX_SDK_DIR}" >> ${GITHUB_ENV}
make -C ${PLX_SDK_DIR}/PlxApi PLX_NO_CLEAR_SCREEN=1
test -e ./PlxApi/Library/PlxApi.a
cd ${ORIG_DIR}
- name: Configure
run: |
mkdir build
cd build
cmake ../ ${{env.OPTIONS}} -DCMAKE_BUILD_TYPE=${{matrix.env.BUILD_TYPE}}
- name: Build
run: cmake --build ${{github.workspace}}/build --config ${{matrix.env.BUILD_TYPE}}
- name: Test
working-directory: ${{github.workspace}}/build
run: |
./tests/unit/sdk/pixie_sdk_unit_test_runner
./tests/integration/pixie_sdk_integration_test_runner
cd tests/integration; ./test_pixie16_c