Parcourir la source

build deb packages

Matthew R. Kasun il y a 3 ans
Parent
commit
ae4d5ad722
3 fichiers modifiés avec 114 ajouts et 0 suppressions
  1. 30 0
      build/generate_release.sh
  2. 70 0
      build/make_deb.sh
  3. 14 0
      build/package_builder.sh

+ 30 - 0
build/generate_release.sh

@@ -0,0 +1,30 @@
+#!/bin/sh
+set -e
+
+do_hash() {
+    HASH_NAME=$1
+    HASH_CMD=$2
+    echo "${HASH_NAME}:"
+    for f in $(find -type f); do
+        f=$(echo $f | cut -c3-) # remove ./ prefix
+        if [ "$f" = "Release" ]; then
+            continue
+        fi
+        echo " $(${HASH_CMD} ${f}  | cut -d" " -f1) $(wc -c $f)"
+    done
+}
+
+cat << EOF
+Origin: Gravitl Repository
+Label: netclient
+Suite: stable
+Codename: stable
+Version: VERSION
+Architectures: amd64 arm64 
+Components: main
+Description: a platform for modern, blazing fast virtual networks 
+Date: $(date -Ru)
+EOF
+do_hash "MD5Sum" "md5sum"
+do_hash "SHA1" "sha1sum"
+do_hash "SHA256" "sha256sum"

+ 70 - 0
build/make_deb.sh

@@ -0,0 +1,70 @@
+#!/bin/sh
+
+mkdir -p /root/gravitl/netclient_0.VERSION_amd64/sbin
+mkdir -p /root/gravitl/netclient_0.VERSION_amd64/var/lib/systemd/system
+mkdir -p /root/gravitl/netclient_0.VERSION_amd64/DEBIAN
+mkdir -p /root/gravitl/netclient_0.VERSION_arm64/sbin
+mkdir -p /root/gravitl/netclient_0.VERSION_arm64/var/lib/systemd/system
+mkdir -p /root/gravitl/netclient_0.VERSION_arm64/DEBIAN
+
+cat << EOF > /root/gravitl/netclient_0.VERSION_amd64/DEBIAN/control
+Package: netclient
+Version: VERSION
+Maintainer: [email protected]
+Depends: wireguard-tools
+Architecture: amd64
+Homepage: https://github.com/gravitl/netmaker
+Description: netclient daemon - a platform for modern, blazing fast virtual networks
+EOF
+
+cat << EOF > /root/gravitl/netclient_0.VERSION_arm64/DEBIAN/control
+Package: netclient
+Version: VERSION
+Maintainer: [email protected]
+Depends: wireguard-tools
+Architecture: arm64
+Homepage: https://github.com/gravitl/netmaker
+Description: netclient daemon - a platform for modern, blazing fast virtual networks
+EOF
+
+wget https://github.com/gravitl/netmaker/releases/download/vVERSION/netclient -O /root/gravitl/netclient_0.VERSION_amd64/sbin/netclient
+wget https://github.com/gravitl/netmaker/releases/download/vVERSION/netclient-arm64 -O /root/gravitl/netclient_0.VERSION_arm64/sbin/netclient
+wget https://raw.githubusercontent.com/gravitl/netmaker/master/netclient/build/netclient.service -O /root/gravitl/netclient_0.VERSION_amd64/var/lib/systemd/system/netclient.service
+cp /root/gravitl/netclient_0.VERSION_amd64/var/lib/systemd/system/netclient.service /root/gravitl/netclient_0.VERSION_arm64/var/lib/systemd/system/netclient.service
+
+dpkg --build /root/gravitl/netclient_0.VERSION_amd64
+dpkg --build /root/gravitl/netclient_0.VERSION_arm64
+
+mkdir -p /var/apt-repo/pool/main
+mkdir -p /var/apt-repo/dists/stable/main/binary-amd64
+mkdir -p /var/apt-repo/dists/stable/main/binary-arm64
+
+cp /root/gravitl/netclient_0.VERSION_amd64.deb /var/apt-repo/pool/main
+cp /root/gravitl/netclient_0.VERSION_arm64.deb /var/apt-repo/pool/main
+
+cd /var/apt-repo
+dpkg-scanpackages --arch amd64 -m pool/ > dists/stable/main/binary-amd64/Packages
+dpkg-scanpackages --arch arm64 -m pool/ > dists/stable/main/binary-arm64/Packages
+cat dists/stable/main/binary-amd64/Packages | gzip -9 > dists/stable/main/binary-amd64/Packages.gz
+cat dists/stable/main/binary-arm64/Packages | gzip -9 > dists/stable/main/binary-arm64/Packages.gz
+
+cd dists/stable
+/root/generate_release.sh > Release
+
+cat /var/apt-repo/dists/stable/Release | gpg --default-key gravitl -abs > /var/apt-repo/dists/stable/Release.gpg
+cat /var/apt-repo/dists/stable/Release | gpg --default-key gravitl -abs --clearsign > /var/apt-repo/dists/stable/InRelease
+
+if test -f /var/apt-repo/gpg.key  ; then
+    rm /var/apt-repo/gpg.key
+fi
+gpg --export -a --output /var/apt-repo/gpg.key gravitl
+cat <<EOF > /var/apt-repo/debian.deb.txt
+# Source: netclient
+# Site: https://github.com/gravitl/netmaker
+# Repository: Netmaker / stable
+# Description:  a platform for modern, blazing fast virtual networks
+
+deb [arch=amd64] https:apt.clustercat.com stable main
+EOF
+
+

+ 14 - 0
build/package_builder.sh

@@ -0,0 +1,14 @@
+#!/bin/bash
+
+# set environment var VERSION = netclient version without leading v  --- 0.13.0 vice v0.13.0
+
+sed -i "s/VERSION/$VERSION/g" ./build/make_deb.sh
+#sed -i "s/VERSION/$VERSION/g" ./build/make_rpm.sh
+sed -i "s/VERSION/$VERSION/g" ./build/generate_release.sh
+
+scp build/make_deb.sh fileserver.clustercat.com:~/
+scp build/generate_release.sh fileserver.clustercat.com:~/
+ssh -t fileserver.clustercat.com /root/make_deb.sh
+
+
+