2023-10-26 23:39:08 +02:00
|
|
|
#!/bin/bash
|
2024-01-24 00:03:34 +01:00
|
|
|
# Copyright 2024 The Forgejo Authors
|
|
|
|
# SPDX-License-Identifier: MIT
|
2023-10-26 23:39:08 +02:00
|
|
|
|
|
|
|
set -ex
|
|
|
|
|
2024-08-07 08:31:33 +02:00
|
|
|
SELF_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
2023-10-26 23:39:08 +02:00
|
|
|
|
|
|
|
version=$1
|
2024-03-17 11:58:02 +01:00
|
|
|
dir_binaries=$2
|
2023-10-26 23:39:08 +02:00
|
|
|
|
2024-03-14 12:09:29 +07:00
|
|
|
v=$(echo $version | sed -E -e 's/^([0-9]+\.[0-9]+).*/\1/')
|
2024-03-17 11:58:02 +01:00
|
|
|
src=$dir_binaries/src-$v
|
2024-08-07 08:31:33 +02:00
|
|
|
read url ref semver <$SELF_DIR/../forgejo/sources/$v
|
2023-10-26 23:39:08 +02:00
|
|
|
|
2024-08-07 08:31:33 +02:00
|
|
|
if ! test -d $src; then
|
2024-03-17 11:58:02 +01:00
|
|
|
mkdir -p $src
|
|
|
|
cd $src
|
2024-03-14 16:07:40 +07:00
|
|
|
git init
|
|
|
|
git remote add origin $url
|
2023-10-27 18:13:18 +02:00
|
|
|
else
|
2024-03-17 11:58:02 +01:00
|
|
|
cd $src
|
2023-10-27 18:13:18 +02:00
|
|
|
fi
|
2024-03-14 11:14:51 +07:00
|
|
|
|
2024-08-07 08:31:33 +02:00
|
|
|
if ! [[ "$ref" =~ ^refs/ ]]; then
|
2024-03-14 16:07:40 +07:00
|
|
|
ref=refs/heads/$ref
|
|
|
|
fi
|
2024-08-07 08:31:33 +02:00
|
|
|
for retry in 1 2 3; do
|
|
|
|
if timeout 15m git fetch --update-head-ok origin +$ref:$ref; then
|
|
|
|
break
|
2024-05-20 01:54:22 +02:00
|
|
|
else
|
2024-08-07 08:31:33 +02:00
|
|
|
echo "Retry git fetch in 60 seconds"
|
|
|
|
sleep 60
|
2024-05-20 01:54:22 +02:00
|
|
|
fi
|
2024-05-19 09:15:40 +02:00
|
|
|
done
|
2024-03-14 16:07:40 +07:00
|
|
|
git fetch --update-head-ok origin +$ref:$ref
|
|
|
|
git switch --force-create $v $ref
|
|
|
|
|
2024-03-14 11:14:51 +07:00
|
|
|
export TAGS="bindata sqlite sqlite_unlock_notify" FORGEJO_VERSION=$semver
|
2023-10-26 23:39:08 +02:00
|
|
|
make deps-backend backend
|
2024-03-14 11:14:51 +07:00
|
|
|
make generate forgejo
|
2024-03-17 11:58:02 +01:00
|
|
|
cp -a forgejo $dir_binaries/forgejo-$v-dev
|