@@ -12,88 +12,8 @@ defaults:
12
12
shell : bash
13
13
14
14
jobs :
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 :
97
17
strategy :
98
18
fail-fast : false
99
19
matrix :
@@ -110,8 +30,21 @@ jobs:
110
30
name : macOS
111
31
platform-type : osxuniversal
112
32
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
113
45
name : " Build - ${{ matrix.name }}"
114
46
runs-on : ${{ matrix.os }}
47
+ container : ${{ matrix.container }}
115
48
steps :
116
49
- name : Checkout
117
50
uses : actions/checkout@v4
@@ -185,6 +118,14 @@ jobs:
185
118
cp build/libs/cANBridge/static/osxuniversal/release/libCANBridge.a CANBridge-artifacts/static/
186
119
cp staticHalPlatform/osx/universal/static/libwpiHal.a CANBridge-artifacts/static/
187
120
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
188
129
fi
189
130
190
131
# Upload build artifact
0 commit comments