scriptbox/build_gitea/Linux/build.sh

100 lines
2.8 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 [ ${#} -gt 0 ]; do
case "$1" in
--git-tag | -v)
shift
GITEA_GIT_TAG=$1
;; # Gitea Git Tag
--golang-version | -g)
shift
GO_VERSION=$1
;; # GOLANG Version
--nodejs-version | -n)
shift
NODEJS_VERSION=$1
;; # NodeJS Version
--static | -s)
BUILD_STATIC=true
;; # Build as Static Assets file
*)
;;
esac
shift # Shift to next response for parsing
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
2024-03-25 13:47:07 +00:00
NODEJS_VERSION=v20.11.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
2024-03-25 13:47:07 +00:00
GO_VERSION=1.22.1
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