Adding automatic nightly release builds

- Restructured linux repo directory structure to include Stable and Nightly releases
- Reworked Earthfile to pass IS_NIGHTLY boolean to package build scripts for use in
file names
- Added nightly pipeline to CICD config yaml. Pipeline is triggered by IS_NIGHTLY
variable
- Two distribution scripts now exist, one for Stable and one for Nightly
- Reworked RPM build spec files to create appropriate file names
- Reworked debian release generation scripts
- RPM repo directory structure is prepped for arm64 builds
- Switched from scp to rsync for moving the completed repo from ochestration
to repo server
- Created schedule in Gitlab UI to trigger nightly release at 2300 Central Time
This commit is contained in:
TC Johnson 2024-07-14 17:22:50 -05:00
parent 8c297acdee
commit fc7debba3f
No known key found for this signature in database
14 changed files with 323 additions and 92 deletions

View file

@ -3,6 +3,8 @@ set -e
ARCH=$1
CARGO_ARCH=$2
IS_NIGHTLY=$3
BUILD_DATE=$(date '+%Y%m%d')
CARGO_VERSION="$(/veilid/package/cargo_version.sh /veilid/veilid-cli/Cargo.toml)"
rm -rf /dpkg
mkdir -p /dpkg/out
@ -16,4 +18,13 @@ mkdir -p /dpkg/veilid-cli/usr/bin
cp -f /veilid/target/$CARGO_ARCH/release/veilid-cli /dpkg/veilid-cli/usr/bin
# pack it up
dpkg-deb -b /dpkg/veilid-cli/
mv /dpkg/veilid-cli.deb /dpkg/out/veilid-cli-$CARGO_VERSION\_$ARCH.deb
# Appropriatly name the package for STABLE or NIGHTLY release
if [ "$3" = true ]
then
mv /dpkg/veilid-cli.deb /dpkg/out/veilid-cli-$BUILD_DATE\_$ARCH.deb
elif [ "$3" = false ]
then
mv /dpkg/veilid-cli.deb /dpkg/out/veilid-cli-$CARGO_VERSION\_$ARCH.deb
else
echo $3 "is not a valid state to determine if the build is STABLE or NIGHTLY"
fi

View file

@ -3,6 +3,8 @@ set -e
ARCH=$1
CARGO_ARCH=$2
IS_NIGHTLY=$3
BUILD_DATE=$(date '+%Y%m%d')
CARGO_VERSION="$(/veilid/package/cargo_version.sh /veilid/veilid-server/Cargo.toml)"
rm -rf /dpkg
mkdir -p /dpkg/out
@ -22,4 +24,13 @@ mkdir -p /dpkg/veilid-server/usr/bin
cp -f /veilid/target/$CARGO_ARCH/release/veilid-server /dpkg/veilid-server/usr/bin
# pack it up
dpkg-deb -b /dpkg/veilid-server/
mv /dpkg/veilid-server.deb /dpkg/out/veilid-server-$CARGO_VERSION\_$ARCH.deb
# Appropriatly name the package for STABLE or NIGHTLY release
if [ "$3" = true ]
then
mv /dpkg/veilid-server.deb /dpkg/out/veilid-server-$BUILD_DATE\_$ARCH.deb
elif [ "$3" = false ]
then
mv /dpkg/veilid-server.deb /dpkg/out/veilid-server-$CARGO_VERSION\_$ARCH.deb
else
echo $3 "is not a valid state to determine if the build is STABLE or NIGHTLY"
fi

View file

@ -1,10 +1,20 @@
#!/bin/bash
ARCH=$1
CARGO_ARCH=$2
IS_NIGHTLY=$3
BUILD_DATE=$(date '+%Y%m%d')
CARGO_VERSION="$(/veilid/package/cargo_version.sh /veilid/veilid-cli/Cargo.toml)"
# veilid-cli spec file
cp -rf /veilid/package/rpm/veilid-cli/veilid-cli.spec /root/rpmbuild/SPECS/
if [ "$3" = true ]
then
/veilid/package/replace_variable.sh /root/rpmbuild/SPECS/veilid-cli.spec RELEASE_VERSION $BUILD_DATE
elif [ "$3" = false ]
/veilid/package/replace_variable.sh /root/rpmbuild/SPECS/veilid-cli.spec RELEASE_VERSION $CARGO_VERSION
else
echo $3 "is not a valid state to determine if the build is STABLE or NIGHTLY"
fi
/veilid/package/replace_variable.sh /root/rpmbuild/SPECS/veilid-cli.spec CARGO_VERSION $CARGO_VERSION
/veilid/package/replace_variable.sh /root/rpmbuild/SPECS/veilid-cli.spec ARCH $ARCH
/veilid/package/replace_variable.sh /root/rpmbuild/SPECS/veilid-cli.spec CARGO_ARCH $CARGO_ARCH

View file

@ -1,6 +1,6 @@
Summary: Veilid Server Command Line Interface
Name: veilid-cli
Version: $CARGO_VERSION
Version: $RELEASE_VERSION
Release: 1
URL: https://veilid.com
Group: System

View file

@ -1,11 +1,21 @@
#!/bin/bash
ARCH=$1
CARGO_ARCH=$2
IS_NIGHTLY=$3
BUILD_DATE=$(date '+%Y%m%d')
CARGO_VERSION="$(/veilid/package/cargo_version.sh /veilid/veilid-server/Cargo.toml)"
# veilid-server spec file
cp -rf /veilid/package/rpm/veilid-server/veilid-server.spec /root/rpmbuild/SPECS/
/veilid/package/replace_variable.sh /root/rpmbuild/SPECS/veilid-server.spec CARGO_VERSION $CARGO_VERSION
# Select CARGO_VERSION for STABLE releases or BUILD_DATE for NIGHTLY releases
if [ "$3" = true ]
then
/veilid/package/replace_variable.sh /root/rpmbuild/SPECS/veilid-server.spec RELEASE_VERSION $BUILD_DATE
elif [ "$3" = false ]
/veilid/package/replace_variable.sh /root/rpmbuild/SPECS/veilid-server.spec RELEASE_VERSION $CARGO_VERSION
else
echo $3 "is not a valid state to determine if the build is STABLE or NIGHTLY"
fi
/veilid/package/replace_variable.sh /root/rpmbuild/SPECS/veilid-server.spec ARCH $ARCH
/veilid/package/replace_variable.sh /root/rpmbuild/SPECS/veilid-server.spec CARGO_ARCH $CARGO_ARCH

View file

@ -1,6 +1,6 @@
Summary: Install a server grade, headless Veilid node
Name: veilid-server
Version: $CARGO_VERSION
Version: $RELEASE_VERSION
Release: 1
URL: https://veilid.com
Group: System