3 Commits

Author SHA1 Message Date
d32ddb1734 Fix gitea action runner target file path in init.sh
Used the wrong variable name in the error message for the gitea action runner target file path.
2025-05-28 22:59:42 +09:00
Clemens Schwaighofer
324b577134 Add gitea donwload file version info, missing installs are no longer forced exit
fix restart of act runner after update

when downloading gitea or act runner it will show the version that is downlaoded.
if the same version is downloaded again and alrady exists, download will be skipped
2025-02-27 12:46:09 +09:00
Clemens Schwaighofer
11c1daf4a1 Update readme, remove wget need
Do no longer use wget to download the file, use curl.

Check that curl and jq exists.

Update ReadMe file
2024-08-28 12:02:27 +09:00
5 changed files with 70 additions and 17 deletions

View File

@@ -1,14 +1,34 @@
# Download and install gitea
# Scripts to download and install gitea and act_runner binary files
In `init.sh` set the `target_file` as to where the gitea binary is located (full path including binary name)
Helps to install and setup the gitea and act_runner binary
## Things needed
The application "curl" and "jq" must be installed.
Both gitea and act_runner must be run a systemd control file named "gitea" and "act_runner"
## Basic setup
In `init.sh` set to the full path including the binary name:
- `target_file` as to where the gitea binary is located
- `target_file_act_runner` as to where the gitea act_runner binary is located
If the download folder should be not in the subfolder "download" change the `download_folder` variable to the path as to where the files hould be downloaded. Note that this folder must exist
## Architectures detected
Only arm64 and x86 64bit are auto detected
## Download and install: gitea
Run `download.sh` to download the latest file. Fill re-download as a different name if the same file is requested
Run `install.sh <version>` to install the newest version
There is a simple "download-act_runner" script, that has the URL as to where the action runner can be
downloaded
## Download and install: act_runner
Run `download-act_runner.sh` to download the latest file. Fill re-download as a different name if the same file is requested
Run `install-act_runner.sh <version>` to install the newest version

14
download-act_runner.sh Normal file → Executable file
View File

@@ -4,12 +4,24 @@ BASE_FOLDER=$(dirname "$(readlink -f "$0")")"/";
# shellcheck source=init.sh
. "${BASE_FOLDER}init.sh";
download_file=$(curl -s https://gitea.com/api/v1/repos/gitea/act_runner/releases/latest |\
jq ".assets[].browser_download_url" |\
cut -d '"' -f 2 |\
grep "${arch}$");
version=$(echo "${download_file}" | cut -d "/" -f 8);
file=$(echo "${download_file}" | cut -d "/" -f 9);
if [ -f "${download_folder}/${file}" ]; then
echo "[!] File ${file} has already been downloaded";
exit;
fi;
echo "act_runner version to download: ${version}";
cd "${download_folder}" || exit;
curl -s https://gitea.com/api/v1/repos/gitea/act_runner/releases/latest |\
jq ".assets[].browser_download_url" |\
cut -d '"' -f 2 |\
grep "${arch}$" |\
wget -P "${download_folder}" -i -
xargs curl -LJO --output-dir "${download_folder}"
cd - || exit;
# __END__

View File

@@ -4,12 +4,22 @@ BASE_FOLDER=$(dirname "$(readlink -f "$0")")"/";
# shellcheck source=init.sh
. "${BASE_FOLDER}init.sh";
cd "${download_folder}" || exit;
curl -s https://api.github.com/repos/go-gitea/gitea/releases/latest |\
download_file=$(curl -s https://api.github.com/repos/go-gitea/gitea/releases/latest |\
grep browser_download_url |\
cut -d '"' -f 4 |\
grep "${arch}$" |\
wget -P "${download_folder}" -i -
grep "${arch}$");
version=$(echo "${download_file}" | cut -d "/" -f 8);
file=$(echo "${download_file}" | cut -d "/" -f 9);
if [ -f "${download_folder}/${file}" ]; then
echo "[!] File ${file} has already been downloaded";
exit;
fi;
echo "gitea version to download: ${version}";
cd "${download_folder}" || exit;
echo "${download_file}" |\
xargs curl -LJO --output-dir "${download_folder}"
cd - || exit;
# __END__

25
init.sh
View File

@@ -1,11 +1,20 @@
#!/usr/bin/env bash
# check needed binaries
if [ -z "$(command -v curl)" ]; then
echo "Missing curl application, aborting";
exit;
fi;
if [ -z "$(command -v jq)" ]; then
echo "Missing jq application, aborting";
exit;
fi;
CPU_ARCH=""
# get the architecture
_cpu_arch=$(uname -m);
# weg get like x86_64 or x86_32 (NO), aarch64, etc
# we ONLY allow x86_64 or aarch64
# possible add: arm64
# we ONLY allow x86_64 or aarch64/arm64
if [ "${_cpu_arch}" = "x86_64" ]; then
CPU_ARCH="amd64";
elif [ "${_cpu_arch}" = "aarch64" ] || [ "${_cpu_arch}" = "arm64" ]; then
@@ -21,16 +30,18 @@ if [ ! -d "${download_folder}" ]; then
exit;
fi;
target_file="/usr/local/bin/gitea";
gitea_exists=1;
if [ ! -f "${target_file}" ]; then
echo "There is no gitea target file at ${target_file}. Is gitea installed?";
exit;
echo "[!] There is no gitea target file at ${target_file}. Is gitea installed?";
gitea_exists=0;
fi;
target_file_act_runner="/usr/local/bin/act_runner";
act_runner_exists=1
if [ ! -f "${target_file_act_runner}" ]; then
echo "There is no gitea action runner target file at ${target_file}. Is gitea action runner installed?";
exit;
echo "[!] There is no gitea action runner target file at ${target_file_act_runner}. Is gitea action runner installed?";
act_runner_exists=0
fi;
export arch target_file;
export arch target_file gitea_exists act_runner_exists;
# __END__

View File

@@ -17,7 +17,7 @@ echo -e "Update gitea action runner to ${1} ... ";
systemctl stop act_runner;
cp "${download_folder}act_runner-${1}-${arch}" "${target_file_act_runner}";
chmod +x "${target_file_act_runner}";
systemctl start gitea;
systemctl start act_runner;
echo "[DONE]";
# __END__