osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-rp2040-firmware/+/40228?usp=email )
Change subject: contrib/jenkins: publish binaries ......................................................................
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(-)
Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified fixeria: Looks good to me, but someone else must approve
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