osmith submitted this change.

View Change

Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified fixeria: Looks good to me, but someone else must approve
contrib/jenkins: publish binaries

Publish binaries to:
https://ftp.osmocom.org/binaries/osmo-rp2040-firmware/

Put each target into a separate directory as users are typically
interested in one specific product/board:

osmo-rp2040-firmware
├── iso7816_cardem
│   ├── all
│   │   ├── iso7816_cardem-0.1.0-3-g2fda293.elf
│   │   └── iso7816_cardem-0.1.0-3-g2fda293.uf2
│   └── latest
│   ├── iso7816_cardem.elf
│   └── iso7816_cardem.uf2
└── osmo-gtm900
├── all
│   ├── osmo-gtm900-0.1.0-3-g2fda293.elf
│   └── osmo-gtm900-0.1.0-3-g2fda293.uf2
└── latest
├── osmo-gtm900.elf
└── osmo-gtm900.uf2

Related: OS#6784
Change-Id: Ic22d693bfebc33278033514fa5900866454e499f
---
M contrib/jenkins.sh
1 file changed, 63 insertions(+), 0 deletions(-)

diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh
index 7f72e1b..0d9d518 100755
--- a/contrib/jenkins.sh
+++ b/contrib/jenkins.sh
@@ -3,6 +3,10 @@
iso7816_cardem
osmo-gtm900
"
+PUBLISH_EXT="
+ elf
+ uf2
+"

rm -rf build
mkdir build
@@ -16,3 +20,62 @@

make -j$(nproc) "$i"
done
+
+if [ "$PUBLISH" = 1 ]; then
+ echo
+ echo "=== publishing binaries ==="
+ echo
+
+ SSH_COMMAND="ssh -o UserKnownHostsFile=/osmo-ci/contrib/known_hosts -p 48"
+
+ VERSION="$(git describe HEAD)"
+ if [ -z "$VERSION" ]; then
+ echo "ERROR: failed to get version from 'git describe HEAD'"
+ exit 1
+ fi
+
+ for target in $TARGETS; do
+ UPLOAD_PATH="binaries@ftp.osmocom.org:web-files/osmo-rp2040-firmware/$target"
+
+ for dir in all latest; do
+ $SSH_COMMAND binaries@ftp.osmocom.org -- \
+ mkdir -p "web-files/osmo-rp2040-firmware/$target/$dir"
+ done
+
+ EXISTING_BINARIES="$(rsync \
+ --rsh "$SSH_COMMAND" \
+ "$UPLOAD_PATH"/all/)"
+
+ for ext in $PUBLISH_EXT; do
+ BIN_PATH="$(find -name "$target.$ext")"
+ if [ -z "$BIN_PATH" ]; then
+ echo "ERROR: failed to find $target.$ext"
+ exit 1
+ fi
+
+ BIN_LATEST="$target-$VERSION.$ext"
+ if echo "$EXISTING_BINARIES" | grep -q "$BIN_LATEST"; then
+ echo "$BIN_LATEST: exists on server, skipping"
+ continue
+ fi
+
+ echo "$BIN_LATEST: uploading $BIN_PATH"
+
+ rsync \
+ --rsh "$SSH_COMMAND" \
+ -a \
+ "$BIN_PATH" \
+ "$UPLOAD_PATH"/latest/"$target.$ext"
+
+ rsync \
+ --rsh "$SSH_COMMAND" \
+ -a \
+ "$BIN_PATH" \
+ "$UPLOAD_PATH"/all/"$BIN_LATEST"
+ done
+ done
+fi
+
+echo
+echo "=== success ==="
+echo

To view, visit change 40228. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-MessageType: merged
Gerrit-Project: osmo-rp2040-firmware
Gerrit-Branch: master
Gerrit-Change-Id: Ic22d693bfebc33278033514fa5900866454e499f
Gerrit-Change-Number: 40228
Gerrit-PatchSet: 4
Gerrit-Owner: osmith <osmith@sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanitskiy@sysmocom.de>
Gerrit-Reviewer: laforge <laforge@osmocom.org>
Gerrit-Reviewer: osmith <osmith@sysmocom.de>
Gerrit-Reviewer: pespin <pespin@sysmocom.de>