@@ -9,7 +9,8 @@ permissions:
99 contents : write
1010
1111jobs :
12- build :
12+ build-x86_64 :
13+ name : Build Release (x86_64)
1314 runs-on : ubuntu-22.04
1415 container : ubuntu:20.04
1516 env :
2829 uses : actions/cache@v4
2930 with :
3031 path : 3rd_party
31- key : deps-${{ runner.os }}-cyclonedds0.10.2-shm
32+ key : deps-${{ runner.os }}-x86_64- cyclonedds0.10.2-shm
3233
3334 - name : Build
3435 run : |
@@ -52,12 +53,57 @@ jobs:
5253 name : ${{ env.PKG_NAME }}
5354 path : ${{ env.PKG_NAME }}.tar.gz
5455
56+ build-aarch64 :
57+ name : Build Release (aarch64)
58+ runs-on : ubuntu-22.04-arm
59+ container : ubuntu:20.04
60+ env :
61+ DEBIAN_FRONTEND : noninteractive
62+
63+ steps :
64+ - name : Checkout
65+ uses : actions/checkout@v4
66+
67+ - name : Install dependencies
68+ run : |
69+ apt-get update
70+ apt-get install -y cmake g++ ninja-build libacl1-dev git
71+
72+ - name : Cache dependencies
73+ uses : actions/cache@v4
74+ with :
75+ path : 3rd_party
76+ key : deps-${{ runner.os }}-aarch64-cyclonedds0.10.2-shm
77+
78+ - name : Build
79+ run : |
80+ ./build.sh -c
81+
82+ - name : Run tests
83+ run : ./build/tests/cddsctl_tests
84+
85+ - name : Package
86+ run : |
87+ VERSION=${GITHUB_REF#refs/tags/v}
88+ PKG_NAME="cddsctl-${VERSION}-linux-aarch64"
89+ mkdir -p ${PKG_NAME}/bin
90+ cp build/cli/cddsctl ${PKG_NAME}/bin/
91+ tar -czvf ${PKG_NAME}.tar.gz ${PKG_NAME}
92+ echo "PKG_NAME=${PKG_NAME}" >> $GITHUB_ENV
93+
94+ - name : Upload artifact
95+ uses : actions/upload-artifact@v4
96+ with :
97+ name : ${{ env.PKG_NAME }}
98+ path : ${{ env.PKG_NAME }}.tar.gz
99+
55100 release :
101+ name : Create Release
56102 runs-on : ubuntu-22.04
57103 container : ubuntu:20.04
58104 env :
59105 DEBIAN_FRONTEND : noninteractive
60- needs : build
106+ needs : [ build-x86_64, build-aarch64]
61107
62108 steps :
63109 - name : Install dependencies
@@ -94,11 +140,18 @@ jobs:
94140 echo "" >> RELEASE_NOTES.md
95141 echo "## Installation" >> RELEASE_NOTES.md
96142 echo "" >> RELEASE_NOTES.md
143+ echo "### x86_64" >> RELEASE_NOTES.md
97144 echo "\`\`\`bash" >> RELEASE_NOTES.md
98145 echo "tar -xzf cddsctl-${VERSION}-linux-x86_64.tar.gz" >> RELEASE_NOTES.md
99146 echo "sudo mv cddsctl-${VERSION}-linux-x86_64/bin/cddsctl /usr/local/bin/" >> RELEASE_NOTES.md
100147 echo "\`\`\`" >> RELEASE_NOTES.md
101148 echo "" >> RELEASE_NOTES.md
149+ echo "### ARM64 (aarch64)" >> RELEASE_NOTES.md
150+ echo "\`\`\`bash" >> RELEASE_NOTES.md
151+ echo "tar -xzf cddsctl-${VERSION}-linux-aarch64.tar.gz" >> RELEASE_NOTES.md
152+ echo "sudo mv cddsctl-${VERSION}-linux-aarch64/bin/cddsctl /usr/local/bin/" >> RELEASE_NOTES.md
153+ echo "\`\`\`" >> RELEASE_NOTES.md
154+ echo "" >> RELEASE_NOTES.md
102155 echo "Built with CycloneDDS 0.10.2 and iceoryx 2.0.5 (shared memory)." >> RELEASE_NOTES.md
103156 echo "SHM is used automatically when a compatible RouDi daemon is running; otherwise falls back to UDP." >> RELEASE_NOTES.md
104157
0 commit comments