scriptbox/build_gitea/Linux/build.sh

87 lines
2.5 KiB
Bash
Raw Normal View History

2023-01-13 15:54:01 +00:00
#!/bin/bash
2022-12-02 14:08:30 +00:00
MAKE_DIR=$(mktemp -d)
DESTINATION=~/gitea-binaries/
2023-11-22 15:47:27 +00:00
rm -rf $DESTINATION
2022-12-02 14:08:30 +00:00
mkdir -p $DESTINATION
cd $MAKE_DIR
while getopts 'v:g:n:s' flag
do
case "${flag}" in
v) GITEA_GIT_TAG=${OPTARG};; # Gitea Git Tag
g) GO_VERSION=${OPTARG};; # GOLANG Version
n) NODEJS_VERSION=${OPTARG};; # NodeJS Version
s) BUILD_STATIC="True";; # Build as Static Assets file
esac
done
# GITEA_GIT_TAG is being process below
# Install Dependencies
sudo apt-get update && sudo apt-get install xz-utils wget git tar g++ make -y
2022-12-02 14:08:30 +00:00
# NodeJS
if [[ $NODEJS_VERSION == "" ]]
then
NODEJS_VERSION=v20.3.1
fi
2022-12-02 14:08:30 +00:00
DISTRO=linux-x64
wget https://nodejs.org/dist/$NODEJS_VERSION/node-$NODEJS_VERSION-$DISTRO.tar.xz
2022-12-02 14:08:30 +00:00
sudo mkdir -p /usr/local/lib/nodejs
sudo tar -xJvf node-$NODEJS_VERSION-$DISTRO.tar.xz -C /usr/local/lib/nodejs
export PATH=/usr/local/lib/nodejs/node-$NODEJS_VERSION-$DISTRO/bin:$PATH
2022-12-02 14:08:30 +00:00
. ~/.profile
# Golang
if [[ $GO_VERSION == "" ]]
then
GO_VERSION=1.20.5
fi
sudo unlink /usr/bin/go
wget https://go.dev/dl/go$GO_VERSION.linux-amd64.tar.gz
sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go$GO_VERSION.linux-amd64.tar.gz
export PATH=$PATH:/usr/local/go/bin
sudo ln -s /usr/local/go/bin /usr/bin/go
2022-12-02 14:08:30 +00:00
# Gitea
# GIT_TAG=
# specify the tag which gitea will build on
git clone https://github.com/go-gitea/gitea
2022-12-02 13:52:57 +00:00
cd gitea
if [[ -n $GITEA_GIT_TAG ]]
then
if git show-ref $GITEA_GIT_TAG --quiet; then
git checkout $GITEA_GIT_TAG
else
echo -e "\nGIT_TAG variable doesn't match the repo tag/version. exit to prevent further issue." && exit 1 && rm -rf $MAKE_DIR
fi
else
echo -e "GIT_TAG variable not found. will build on "main" branch."
fi
# Sometimes VPS Provider's CPU limitation is dick
export NODE_MAX_CONCURRENCY=1
export GOMAXPROCS=1
if [[ "$BUILD_STATIC" == "True" ]]
then
mkdir -p $DESTINATION/gitea-static
LDFLAGS="-X \"code.gitea.io/gitea/modules/setting.AppWorkPath=/var/lib/gitea/\" -X \"code.gitea.io/gitea/modules/setting.CustomConf=/etc/gitea/app.ini\"" TAGS="bindata sqlite sqlite_unlock_notify" GOOS=linux GOARCH=amd64 make frontend
2023-11-22 15:42:43 +00:00
mv $MAKE_DIR/gitea/public/* $DESTINATION/gitea-static
else
LDFLAGS="-X \"code.gitea.io/gitea/modules/setting.AppWorkPath=/var/lib/gitea/\" -X \"code.gitea.io/gitea/modules/setting.CustomConf=/etc/gitea/app.ini\"" TAGS="bindata sqlite sqlite_unlock_notify" GOOS=linux GOARCH=amd64 make build
mv gitea $DESTINATION/gitea
fi
2022-12-02 14:08:30 +00:00
# Cleanup
2022-12-02 13:52:57 +00:00
rm -rf $MAKE_DIR