118 lines
2.5 KiB
Bash
Executable file
118 lines
2.5 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
set -eo pipefail
|
|
|
|
# Parse the args
|
|
while getopts "v:" OPTION
|
|
do
|
|
case $OPTION in
|
|
v)
|
|
VERSION=$OPTARG
|
|
;;
|
|
?)
|
|
usage
|
|
exit
|
|
;;
|
|
esac
|
|
done
|
|
|
|
if [[ -z "${VERSION}" ]]; then
|
|
echo "You forgot to pass -v [version]!"
|
|
exit 1
|
|
fi
|
|
|
|
set +e
|
|
sed -i s/version.*$/version\ =\ \"${VERSION}\"/g pyproject.toml
|
|
|
|
git add pyproject.toml
|
|
git commit -m "Bump to ${VERSION}"
|
|
git push origin main
|
|
|
|
set -e
|
|
|
|
# Clean caches etc
|
|
filedust -y .
|
|
|
|
# Publish to Pypi
|
|
poetry build
|
|
poetry publish
|
|
|
|
# Make AppImage
|
|
sudo apt-get -y install libfuse-dev
|
|
poetry run pyproject-appimage
|
|
mv Bouquin.AppImage dist/
|
|
|
|
# Sign packages
|
|
for file in `ls -1 dist/`; do qubes-gpg-client --batch --armor --detach-sign dist/$file > dist/$file.asc; done
|
|
|
|
# Deb stuff
|
|
DISTS=(
|
|
debian:trixie
|
|
)
|
|
|
|
for dist in ${DISTS[@]}; do
|
|
release=$(echo ${dist} | cut -d: -f2)
|
|
mkdir -p dist/${release}
|
|
|
|
docker build -f Dockerfile.debbuild -t bouquin-deb:${release} \
|
|
--no-cache \
|
|
--progress=plain \
|
|
--build-arg BASE_IMAGE=${dist} .
|
|
|
|
docker run --rm \
|
|
-e SUITE="${release}" \
|
|
-v "$PWD":/src \
|
|
-v "$PWD/dist/${release}":/out \
|
|
bouquin-deb:${release}
|
|
|
|
debfile=$(ls -1 dist/${release}/*.deb)
|
|
reprepro -b /home/user/git/repo includedeb "${release}" "${debfile}"
|
|
done
|
|
|
|
|
|
# RPM
|
|
sudo apt-get -y install createrepo-c rpm
|
|
BUILD_OUTPUT="${HOME}/git/bouquin/dist"
|
|
KEYID="00AE817C24A10C2540461A9C1D7CDE0234DB458D"
|
|
REPO_ROOT="${HOME}/git/repo_rpm"
|
|
REMOTE="letessier.mig5.net:/opt/repo_rpm"
|
|
|
|
DISTS=(
|
|
fedora:42
|
|
)
|
|
|
|
for dist in ${DISTS[@]}; do
|
|
release=$(echo ${dist} | cut -d: -f2)
|
|
REPO_RELEASE_ROOT="${REPO_ROOT}/fc${release}"
|
|
RPM_REPO="${REPO_RELEASE_ROOT}/rpm/x86_64"
|
|
mkdir -p "$RPM_REPO"
|
|
|
|
docker build \
|
|
--no-cache \
|
|
-f Dockerfile.rpmbuild \
|
|
-t bouquin-rpm:${release} \
|
|
--progress=plain \
|
|
--build-arg BASE_IMAGE=${dist} \
|
|
.
|
|
|
|
docker run --rm -v "$PWD":/src -v "$PWD/dist/rpm":/out -v "$HOME/git/bouquin-sqlcipher4/dist/rpm":/deps:ro bouquin-rpm:${release}
|
|
sudo chown -R "${USER}" "$PWD/dist"
|
|
|
|
for file in `ls -1 "${BUILD_OUTPUT}/rpm"`; do
|
|
rpmsign --addsign "${BUILD_OUTPUT}/rpm/$file"
|
|
done
|
|
|
|
cp "${BUILD_OUTPUT}/rpm/"*.rpm "$RPM_REPO/"
|
|
|
|
createrepo_c "$RPM_REPO"
|
|
|
|
echo "==> Signing repomd.xml..."
|
|
qubes-gpg-client --local-user "$KEYID" --detach-sign --armor "$RPM_REPO/repodata/repomd.xml" > "$RPM_REPO/repodata/repomd.xml.asc"
|
|
done
|
|
|
|
echo "==> Syncing repo to server..."
|
|
rsync -aHPvz --exclude=.git --delete "$REPO_ROOT/" "$REMOTE/"
|
|
|
|
echo "Done!"
|
|
|
|
ssh lupin.mig5.net "echo ${VERSION} | tee /opt/www/mig5.net/bouquin/version.txt"
|