86 lines
1.9 KiB
Bash
Executable File
86 lines
1.9 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
source gitea_token
|
|
|
|
set -e
|
|
|
|
GITEA_SERVER=${GITEA_SERVER:="https://git.makerforce.io"}
|
|
GITEA_TOKEN=${GITEA_TOKEN:=""}
|
|
|
|
path_to_httpie=$(which http)
|
|
if [ ! -x "$path_to_httpie" ] ; then
|
|
echo "HTTPie not installed. Please install it at (https://httpie.org/doc#installation)"
|
|
fi
|
|
|
|
path_to_jq=$(which jq)
|
|
if [ ! -x "$path_to_jq" ] ; then
|
|
echo "JQ not installed. Please install it at (https://stedolan.github.io/jq/download/)"
|
|
fi
|
|
|
|
if [ -z $GITEA_TOKEN ]; then
|
|
echo "Enter Gitea token ($GITEA_SERVER/account/token)"
|
|
echo -n "> "
|
|
read GITEA_TOKEN
|
|
echo
|
|
fi
|
|
|
|
GIT_COMMIT="$(git rev-parse HEAD)"
|
|
GIT_LAST_TAG="$(git tag -l | tail -n 1)"
|
|
# Increment version
|
|
ver=( ${GIT_LAST_TAG//./ } )
|
|
((ver[2]++))
|
|
GIT_TAG="${ver[0]}.${ver[1]}.${ver[2]}"
|
|
|
|
echo "Tagging $GIT_TAG..."
|
|
|
|
git tag "$GIT_TAG" "$GIT_COMMIT"
|
|
git push
|
|
git push --tags
|
|
|
|
echo "Building coredns..."
|
|
|
|
matrix=(
|
|
"GOOS=linux GOARCH=amd64"
|
|
"GOOS=linux GOARCH=arm64"
|
|
"GOOS=linux GOARCH=arm"
|
|
"GOOS=darwin GOARCH=amd64"
|
|
"GOOS=windows GOARCH=amd64 EXT=.exe"
|
|
)
|
|
|
|
export CGO_ENABLED=0
|
|
for m in "${matrix[@]}"; do
|
|
export GOOS= GOARCH= EXT=
|
|
export $m
|
|
go build -o coredns_${GOOS}_${GOARCH}${EXT}
|
|
done
|
|
|
|
echo "Uploading release..."
|
|
|
|
RELEASE="$GIT_TAG"
|
|
BODY="$(cat go.mod | grep coredns/coredns | tr -d '\t')"
|
|
|
|
RESPONSE="$(http --check-status -b POST \
|
|
"$GITEA_SERVER/api/v1/repos/ambrose/alias/releases" \
|
|
Authorization:"Bearer $GITEA_TOKEN" \
|
|
body="$BODY" \
|
|
draft:=false \
|
|
name="$RELEASE" \
|
|
prerelease:=false \
|
|
tag_name="$GIT_TAG" \
|
|
target_commitish="$GIT_COMMIT")"
|
|
|
|
echo "Uploading attachments..."
|
|
|
|
RELEASE_ID="$(echo "$RESPONSE" | jq .id)"
|
|
|
|
for m in "${matrix[@]}"; do
|
|
export GOOS= GOARCH= EXT=
|
|
export $m
|
|
filename=coredns_${GOOS}_${GOARCH}${EXT}
|
|
http --check-status --form -b POST \
|
|
"$GITEA_SERVER/api/v1/repos/ambrose/alias/releases/$RELEASE_ID/assets" \
|
|
Authorization:"Bearer $GITEA_TOKEN" \
|
|
name="$filename" \
|
|
attachment@"$filename"
|
|
done
|