osmith submitted this change.
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.