#!/bin/bash #author: source lib.sh usage() { echo_w "./make_release " } if [ -n "$1" ]; then release=$1; else usage; exit; fi if [ -n "$2" ]; then message=$2; else # Create temporary file using mktemp TEMPFILE=$(mktemp) vi $TEMPFILE message=$(cat $TEMPFILE) rm $TEMPFILE fi echo_i $message # Load secrets from .env file (not committed to git) if [ -f .env ]; then export $(grep -v '^#' .env | xargs) fi TOKEN="${GITEA_API_TOKEN}" if [ -z "$TOKEN" ]; then echo_e "Error: GITEA_API_TOKEN is not set in .env file." echo_e "Please create a .env file with: GITEA_API_TOKEN=your_token_here" exit 1 fi OWNER="bitcoinafterlife" basename=$(basename $(pwd)) REPO=$basename TAG="v$release" binpath="target/release/$basename" release_name="$basename-$release" dest="releases/$release" arch=$(uname -m) platform="linux-gnu" destbin="$dest/$arch" destsrc="$dest/src" assetname="$release_name""_$arch""_$platform" asset_tar_gz="$assetname.tar.gz" ASSET_PATH="$destbin/$assetname.tar.gz" giteahost="https://bitcoin-after.life/gitea" url_releases="$giteahost/api/v1/repos/$OWNER/$REPO/releases" echo_i() { echo -e "\033[1m==> $1\033[0m" } echo_e() { echo -e "\033[31;1m$1\033[0m" } echo_s() { echo -e "\033[32;1m$1\033[0m" } echo_w() { echo -e "\033[33;1m$1\033[0m" } prepare_release(){ mkdir -p "$destbin/$assetname" if ! cargo build --release; then echo_w "error building release" exit 1 fi ls -l $binpath cp target/release/bal-server \ target/release/bal-pusher \ README.md \ "$destbin/$assetname" ( cd "$destbin" echo_w $ASSET_PATH echo "ls $(pwd)" ls echo "ls $(pwd)/$assetname" ls "$(pwd)/$assetname" ls $assetname tar -czf "$asset_tar_gz" "$assetname" ) } push_tag() { git commit -am"release: $release_name" git push #git tag -a "$TAG" -m"release: $release_name" #git push origin --tags } # Configurazioni post_release() { if [ -z "$1" ]; then echo_e "no data to release" exit 1 else echo "data: $1" fi echo "token:$TOKEN" echo url_releases: $url_releases RELEASE="$(curl -s -X POST \ -H "accept: application/json" \ -H "Authorization: token $TOKEN" \ -H "Content-Type: application/json" \ -d "$1" \ $url_releases )" echo $RELEASE } add_asset_release() { if [ -z "$1" ]; then echo_e "error add_asset_release" exit 1 fi echo $ASSET_PATH ls -l $ASSET_PATH pwd curl -X POST \ -H "accept: application/json" \ -H "Authorization: token $TOKEN" \ -H "Content-Type: multipart/form-data" \ -F "attachment=@$ASSET_PATH" \ "$url_releases/$1/assets" } # Estrae l'ID della release release_data=$(cat <