@@ -12,88 +12,8 @@ defaults:
1212 shell : bash
1313
1414jobs :
15- # Use WPI provided Docker images to build for Linux ARM32 and ARM64 platforms
16- build-docker :
17- strategy :
18- fail-fast : false
19- matrix :
20- include :
21- - container : wpilib/aarch64-cross-ubuntu:bullseye-22.04
22- name : LinuxARM64
23- build-options : " -Ponlylinuxarm64"
24- platform-type : linuxarm64
25- arch : arm64
26- - container : wpilib/raspbian-cross-ubuntu:bullseye-22.04
27- name : LinuxARM32
28- build-options : " -Ponlylinuxarm32"
29- platform-type : linuxarm32
30- arch : arm32
31- runs-on : ubuntu-latest
32- name : " Build - ${{ matrix.name }}"
33- container : ${{ matrix.container }}
34- steps :
35- - name : Checkout
36- uses : actions/checkout@v4
37- with :
38- ref : ${{ github.sha }}
39-
40- - name : Setup Java
41- uses : actions/setup-java@v4
42- with :
43- distribution : ' zulu'
44- java-version : 11
45-
46- - name : Setup Gradle
47- uses : gradle/actions/setup-gradle@v4
48-
49- - name : Build
50- run : |
51- ./gradlew outputVersions publish ${{ matrix.build-options }} -PreleaseMode
52-
53- - name : Download WPILib HAL artifacts and headers for ${{ matrix.platform-type }}
54- run : |
55- halVersion=$(cat wpiHalVersion.txt)
56-
57- sharedHalPlatformUrl=https://frcmaven.wpi.edu/artifactory/release/edu/wpi/first/hal/hal-cpp/"$halVersion"/hal-cpp-"$halVersion"-${{ matrix.platform-type }}.zip
58- sharedUtilPlatformUrl=https://frcmaven.wpi.edu/artifactory/release/edu/wpi/first/wpiutil/wpiutil-cpp/"$halVersion"/wpiutil-cpp-"$halVersion"-${{ matrix.platform-type }}.zip
59- curl -L -o sharedHalPlatform.zip "$sharedHalPlatformUrl"
60- curl -L -o sharedUtilPlatform.zip "$sharedUtilPlatformUrl"
61-
62- staticHalPlatformUrl=https://frcmaven.wpi.edu/artifactory/release/edu/wpi/first/hal/hal-cpp/"$halVersion"/hal-cpp-"$halVersion"-${{ matrix.platform-type }}static.zip
63- staticUtilPlatformUrl=https://frcmaven.wpi.edu/artifactory/release/edu/wpi/first/wpiutil/wpiutil-cpp/"$halVersion"/wpiutil-cpp-"$halVersion"-${{ matrix.platform-type }}static.zip
64- curl -L -o staticHalPlatform.zip "$staticHalPlatformUrl"
65- curl -L -o staticUtilPlatform.zip "$staticUtilPlatformUrl"
66-
67- - name : Unzip WPILib HAL artifacts and headers
68- run : |
69- unzip sharedHalPlatform.zip -d sharedHalPlatform
70- unzip sharedUtilPlatform.zip -d sharedUtilPlatform
71- unzip staticHalPlatform.zip -d staticHalPlatform
72- unzip staticUtilPlatform.zip -d staticUtilPlatform
73- mkdir -p CANBridge-artifacts/static
74- mkdir -p CANBridge-artifacts/shared
75-
76- # Put Linux ARM release files together in one directory
77- - name : Create Artifact
78- run : |
79- cp build/libs/cANBridge/shared/release/libCANBridge.so CANBridge-artifacts/shared/libCANBridge.so
80- cp sharedHalPlatform/linux/${{ matrix.arch }}/shared/libwpiHal.so CANBridge-artifacts/shared/libwpiHal.so
81- cp sharedUtilPlatform/linux/${{ matrix.arch }}/shared/libwpiutil.so CANBridge-artifacts/shared/libwpiutil.so
82-
83- cp build/libs/cANBridge/static/release/libCANBridge.a CANBridge-artifacts/static/libCANBridge.a
84- cp staticHalPlatform/linux/${{ matrix.arch }}/static/libwpiHal.a CANBridge-artifacts/static/libwpiHal.a
85- cp staticUtilPlatform/linux/${{ matrix.arch }}/static/libwpiutil.a CANBridge-artifacts/static/libwpiutil.a
86-
87- # Upload build artifact
88- - name : Upload build artifact
89- uses : actions/upload-artifact@v4
90- with :
91- name : CANBridge-${{ matrix.platform-type }}-${{ github.sha}}
92- path : CANBridge-artifacts/
93-
94- # Use native runners to build for Windows, Linux, and macOS
95- build-native :
96- timeout-minutes : 15
15+ # Use native runners to build for Windows, Linux x86-64, and macOS; use WPI provided Docker images to build for Linux ARM32 and ARM64 platforms
16+ build :
9717 strategy :
9818 fail-fast : false
9919 matrix :
@@ -110,8 +30,21 @@ jobs:
11030 name : macOS
11131 platform-type : osxuniversal
11232 build-options : " "
33+ - container : wpilib/aarch64-cross-ubuntu:bullseye-22.04
34+ os : ubuntu-latest
35+ name : LinuxARM64
36+ build-options : " -Ponlylinuxarm64"
37+ platform-type : linuxarm64
38+ arch : arm64
39+ - container : wpilib/raspbian-cross-ubuntu:bullseye-22.04
40+ os : ubuntu-latest
41+ name : LinuxARM32
42+ build-options : " -Ponlylinuxarm32"
43+ platform-type : linuxarm32
44+ arch : arm32
11345 name : " Build - ${{ matrix.name }}"
11446 runs-on : ${{ matrix.os }}
47+ container : ${{ matrix.container }}
11548 steps :
11649 - name : Checkout
11750 uses : actions/checkout@v4
@@ -185,6 +118,14 @@ jobs:
185118 cp build/libs/cANBridge/static/osxuniversal/release/libCANBridge.a CANBridge-artifacts/static/
186119 cp staticHalPlatform/osx/universal/static/libwpiHal.a CANBridge-artifacts/static/
187120 cp staticUtilPlatform/osx/universal/static/libwpiutil.a CANBridge-artifacts/static/
121+ elif [[ "${{ matrix.platform-type }}" == "linuxarm32" || "${{ matrix.platform-type }}" == "linuxarm64" ]]; then
122+ cp build/libs/cANBridge/shared/release/libCANBridge.so CANBridge-artifacts/shared/libCANBridge.so
123+ cp sharedHalPlatform/linux/${{ matrix.arch }}/shared/libwpiHal.so CANBridge-artifacts/shared/libwpiHal.so
124+ cp sharedUtilPlatform/linux/${{ matrix.arch }}/shared/libwpiutil.so CANBridge-artifacts/shared/libwpiutil.so
125+
126+ cp build/libs/cANBridge/static/release/libCANBridge.a CANBridge-artifacts/static/libCANBridge.a
127+ cp staticHalPlatform/linux/${{ matrix.arch }}/static/libwpiHal.a CANBridge-artifacts/static/libwpiHal.a
128+ cp staticUtilPlatform/linux/${{ matrix.arch }}/static/libwpiutil.a CANBridge-artifacts/static/libwpiutil.a
188129 fi
189130
190131 # Upload build artifact
0 commit comments