create-deb.sh: move to scripts, add download-and-upload-debs.sh
Some checks failed
Some checks failed
This commit is contained in:
@@ -58,7 +58,7 @@ jobs:
|
|||||||
CREATE_DEB_ARGS+=("--deb-version" "${{ inputs.deb_version }}")
|
CREATE_DEB_ARGS+=("--deb-version" "${{ inputs.deb_version }}")
|
||||||
fi
|
fi
|
||||||
|
|
||||||
./create-deb.sh "${CREATE_DEB_ARGS[@]}"
|
./scripts/create-deb.sh "${CREATE_DEB_ARGS[@]}"
|
||||||
|
|
||||||
- name: Upload deb package artifact
|
- name: Upload deb package artifact
|
||||||
uses: actions/upload-artifact@v3
|
uses: actions/upload-artifact@v3
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ Before running this, you will need to install `cargo-deb` and make sure you have
|
|||||||
cargo install cargo-deb
|
cargo install cargo-deb
|
||||||
|
|
||||||
# Run the script to create the deb package
|
# Run the script to create the deb package
|
||||||
./create-deb.sh
|
./scripts/create-deb.sh
|
||||||
|
|
||||||
# Inspect the resulting deb package
|
# Inspect the resulting deb package
|
||||||
dpkg --contents target/debian/muscl_*.deb
|
dpkg --contents target/debian/muscl_*.deb
|
||||||
|
|||||||
69
scripts/download-and-upload-debs.sh
Executable file
69
scripts/download-and-upload-debs.sh
Executable file
@@ -0,0 +1,69 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
if [[ "${CREATE_DEB_DEBUG:-}" == "1" ]]; then
|
||||||
|
set -x
|
||||||
|
fi
|
||||||
|
|
||||||
|
declare -a COMMANDS=(
|
||||||
|
curl
|
||||||
|
unzip
|
||||||
|
mktemp
|
||||||
|
find
|
||||||
|
)
|
||||||
|
|
||||||
|
for cmd in "${COMMANDS[@]}"; do
|
||||||
|
if ! command -v "$cmd" &> /dev/null; then
|
||||||
|
echo "$cmd could not be found" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ "$#" -ne 2 ]; then
|
||||||
|
echo "Usage: $0 <gitea-run-number> <git-sha>" >&2
|
||||||
|
echo "Example:" >&2
|
||||||
|
echo " GITEA_USER=me GITEA_TOKEN=secret ./scripts/download-and-upload-debs.sh 123 \$(git rev-parse HEAD)" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "${GITEA_USER:-}" ]; then
|
||||||
|
echo "GITEA_USER is not set" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "${GITEA_TOKEN:-}" ]; then
|
||||||
|
echo "GITEA_TOKEN is not set" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
declare -r RUN_NUMBER="$1"
|
||||||
|
declare -r GIT_SHA="$2"
|
||||||
|
|
||||||
|
TMPDIR="$(mktemp -d)"
|
||||||
|
|
||||||
|
for variant in debian-bookworm debian-trixie ubuntu-jammy ubuntu-noble; do
|
||||||
|
echo "Downloading and uploading debs for variant: $variant"
|
||||||
|
curl "https://git.pvv.ntnu.no/Projects/muscl/actions/runs/$RUN_NUMBER/artifacts/muscl-deb-$variant-$GIT_SHA.zip" --output "$TMPDIR/muscl-deb-$variant-$GIT_SHA.zip"
|
||||||
|
|
||||||
|
unzip "$TMPDIR/muscl-deb-$variant-$GIT_SHA.zip" -d "$TMPDIR/muscl-deb-$variant-$GIT_SHA"
|
||||||
|
|
||||||
|
DISTRO_VERSION_NAME="$(echo "$variant" | cut -d'-' -f2)"
|
||||||
|
|
||||||
|
DEB_NAME=$(find "$TMPDIR/muscl-deb-$variant-$GIT_SHA"/*.deb -print0 | xargs -0 -n1 basename | cut -d'_' -f1 | head -n1)
|
||||||
|
DEB_VERSION=$(find "$TMPDIR/muscl-deb-$variant-$GIT_SHA"/*.deb -print0 | xargs -0 -n1 basename | cut -d'_' -f2 | head -n1)
|
||||||
|
DEB_ARCH=$(find "$TMPDIR/muscl-deb-$variant-$GIT_SHA"/*.deb -print0 | xargs -0 -n1 basename | cut -d'_' -f3 | cut -d'.' -f1 | head -n1)
|
||||||
|
|
||||||
|
curl \
|
||||||
|
-X DELETE \
|
||||||
|
--user "$GITEA_USER:$GITEA_TOKEN" \
|
||||||
|
"https://git.pvv.ntnu.no/api/packages/Projects/debian/pool/$DISTRO_VERSION_NAME/main/$DEB_NAME/$DEB_VERSION/$DEB_ARCH"
|
||||||
|
|
||||||
|
curl \
|
||||||
|
-X PUT \
|
||||||
|
--user "$GITEA_USER:$GITEA_TOKEN" \
|
||||||
|
--upload-file "$TMPDIR/muscl-deb-$variant-$GIT_SHA/${DEB_NAME}_${DEB_VERSION}_${DEB_ARCH}.deb" \
|
||||||
|
"https://git.pvv.ntnu.no/api/packages/Projects/debian/pool/$DISTRO_VERSION_NAME/main/upload"
|
||||||
|
done
|
||||||
|
|
||||||
|
rm -rf "$TMPDIR"
|
||||||
Reference in New Issue
Block a user