Skip to content

Commit 34805b1

Browse files
committed
allow parallel branches
1 parent 7575a42 commit 34805b1

4 files changed

Lines changed: 39 additions & 26 deletions

File tree

index-dev

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Subproject commit 7b6a78aa7941f3604e659b338569462c49ef0aa6

src/bkg.sh

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -194,15 +194,17 @@ main() {
194194
else
195195
save_owner "$GITHUB_OWNER"
196196
get_membership "$GITHUB_OWNER" >"$connections"
197-
[ ! -s "$connections" ] || env_parallel --lb save_owner <"$connections"
197+
if [ -s "$connections" ]; then
198+
env_parallel --lb save_owner <"$connections" || while read -r connection; do save_owner "$connection"; done <"$connections"
199+
fi
198200
fi
199201

200202
rm -f "$connections"
201203
rm -f "$temp_connections"
202204
BKG_BATCH_FIRST_STARTED=$(get_BKG BKG_BATCH_FIRST_STARTED)
203205
[ -d "$BKG_INDEX_DIR" ] || mkdir "$BKG_INDEX_DIR"
204206

205-
if [ "$GITHUB_OWNER" = "ipitio" ]; then
207+
if [[ "$GITHUB_OWNER" = "ipitio" && "$(git branch --show-current)" = "master" ]]; then
206208
get_BKG_set BKG_OWNERS_QUEUE | env_parallel --lb update_owner
207209
else # typically fewer owners
208210
run_parallel update_owner "$(get_BKG_set BKG_OWNERS_QUEUE)"

src/lib/util.sh

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@ echo "Dependencies verified!"
3737
# shellcheck disable=SC2046
3838
source $(which env_parallel.bash)
3939
env_parallel --session
40+
GITHUB_OWNER=${GITHUB_OWNER:-ipitio}
41+
GITHUB_REPO=${GITHUB_REPO:-backage}
4042
BKG_ROOT=..
4143
BKG_ENV=env.env
4244
BKG_OWNERS=$BKG_ROOT/owners.txt
@@ -280,13 +282,13 @@ _jq() {
280282
}
281283

282284
dldb() {
283-
local latest=${1:-$(curl "https://github.com/${GITHUB_OWNER:-ipitio}/${GITHUB_REPO:-backage}/releases/latest" | grep -oP "href=\"/${GITHUB_OWNER:-ipitio}/${GITHUB_REPO:-backage}/releases/tag/[^\"]+" | cut -d'/' -f6)}
284-
[[ "$(curl -o /dev/null --silent -Iw '%{http_code}' "https://github.com/${GITHUB_OWNER:-ipitio}/${GITHUB_REPO:-backage}/releases/download/$latest/index.sql.zst")" != "404" ]] || return 1
285+
local latest=${1:-$(curl "https://github.com/${GITHUB_OWNER}/${GITHUB_REPO}/releases/latest" | grep -oP "href=\"/${GITHUB_OWNER}/${GITHUB_REPO}/releases/tag/[^\"]+" | cut -d'/' -f6)}
286+
[[ "$(curl -o /dev/null --silent -Iw '%{http_code}' "https://github.com/${GITHUB_OWNER}/${GITHUB_REPO}/releases/download/$latest/index.sql.zst")" != "404" ]] || return 1
285287
[ -z "$2" ] || return 0
286288
echo "Downloading the latest database..."
287289
# `cd src ; source bkg.sh && dldb` to dl the latest db
288290
[ ! -f "$BKG_INDEX_DB" ] || mv "$BKG_INDEX_DB" "$BKG_INDEX_DB".bak
289-
command curl -sSLNZ "https://github.com/${GITHUB_OWNER:-ipitio}/${GITHUB_REPO:-backage}/releases/download/$latest/index.sql.zst" | unzstd -v -c | sqlite3 "$BKG_INDEX_DB"
291+
command curl -sSLNZ "https://github.com/${GITHUB_OWNER}/${GITHUB_REPO}/releases/download/$latest/index.sql.zst" | unzstd -v -c | sqlite3 "$BKG_INDEX_DB"
290292

291293
if [ -f "$BKG_INDEX_DB" ]; then
292294
[ ! -f "$BKG_INDEX_DB".bak ] || rm -f "$BKG_INDEX_DB".bak
@@ -322,13 +324,13 @@ query_api() {
322324
check_db() {
323325
local release
324326
local latest
325-
release=$(query_api "repos/${GITHUB_OWNER:-ipitio}/${GITHUB_REPO:-backage}/releases/latest")
327+
release=$(query_api "repos/${GITHUB_OWNER}/${GITHUB_REPO}/releases/latest")
326328
latest=$(jq -r '.tag_name' <<<"$release")
327329

328330
until dldb "$latest" 1; do
329331
echo "Deleting the latest release..."
330-
curl_gh -X DELETE "https://api.github.com/repos/${GITHUB_OWNER:-ipitio}/${GITHUB_REPO:-backage}/releases/$(jq -r '.id' <<<"$release")"
331-
release=$(query_api "repos/${GITHUB_OWNER:-ipitio}/${GITHUB_REPO:-backage}/releases/latest")
332+
curl_gh -X DELETE "https://api.github.com/repos/${GITHUB_OWNER}/${GITHUB_REPO}/releases/$(jq -r '.id' <<<"$release")"
333+
release=$(query_api "repos/${GITHUB_OWNER}/${GITHUB_REPO}/releases/latest")
332334
latest=$(jq -r '.tag_name' <<<"$release")
333335
done
334336
}

src/test/update.sh

Lines changed: 26 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -33,29 +33,37 @@ git update-index --index-version 4
3333
sudonot chmod -R a+rwX .
3434
sudonot find . -type d -exec chmod g+s '{}' +
3535

36-
if git ls-remote --exit-code origin index &>/dev/null; then
37-
git worktree remove -f index.bak &>/dev/null
38-
[ -d index.bak ] || rm -rf index.bak
39-
git worktree move index index.bak &>/dev/null
40-
git fetch origin index
36+
curr=$(git branch --show-current 2>/dev/null)
37+
index="index$([ "$GITHUB_BRANCH" = "master" ] && echo "" || echo "-${curr:-master}")"
38+
BKG_INDEX_DB=$BKG_ROOT/"$index".db
39+
BKG_INDEX_SQL=$BKG_ROOT/"$index".sql
40+
BKG_INDEX_DIR=$BKG_ROOT/"$index"
41+
42+
if git ls-remote --exit-code origin "$index" &>/dev/null; then
43+
git worktree remove -f "$index".bak &>/dev/null
44+
[ -d "$index".bak ] || rm -rf "$index".bak
45+
git worktree move "$index" "$index".bak &>/dev/null
46+
git fetch origin "$index"
4147
BKG_IS_FIRST=true
4248
else
4349
fd_list=$(find . -type f -o -type d | grep -vE "^\.($|\/(\.git\/*|.*\.md$))")
44-
git switch --orphan index
50+
git stash
51+
git switch --orphan "$index"
4552
xargs rm -rf <<<"$fd_list"
4653
git add .
4754
git commit --allow-empty -m "init index"
48-
git push -u origin index
49-
git checkout master
55+
git push -u origin "$index"
56+
git checkout "$([ -n "$GITHUB_BRANCH" ] && echo "$GITHUB_BRANCH" || echo "$curr")"
57+
git stash pop || true
5058
fi
5159

52-
git worktree remove -f index 2>/dev/null
53-
git worktree add -f index index
54-
[[ -d index || ! -d index.bak ]] || git worktree move index.bak index
55-
pushd index || exit 1
56-
git reset --hard origin/index
60+
git worktree remove -f "$index" 2>/dev/null
61+
git worktree add -f "$index" "$index"
62+
[[ -d "$index" || ! -d "$index".bak ]] || git worktree move "$index".bak "$index"
63+
pushd "$index" || exit 1
64+
git reset --hard origin/"$index"
5765
popd || exit 1
58-
[ -f index/.env ] && \cp index/.env src/env.env || touch src/env.env
66+
[ -f "$index"/.env ] && \cp "$index"/.env src/env.env || touch src/env.env
5967
pushd src || exit 1
6068

6169
db_size=$(stat -c %s "$BKG_INDEX_SQL".zst)
@@ -76,15 +84,15 @@ return_code=$?
7684
# files should be valid, warn if not, unless only opted out owners
7785
#(( return_code == 1 )) || find .. -type f -name '*.json' -o -name '*.xml' | parallel --lb test/index.sh {}
7886
popd || exit 1
79-
\cp src/env.env index/.env
87+
\cp src/env.env "$index"/.env
8088

81-
if git worktree list | grep -q index; then
82-
pushd index || exit 1
89+
if git worktree list | grep -q "$index"; then
90+
pushd "$index" || exit 1
8391
git add .
8492
git commit -m "$(date -u +%Y-%m-%d)"
8593
git push
8694
popd || exit 1
87-
! git worktree list | grep -q index.bak || git worktree remove -f index.bak &>/dev/null
95+
! git worktree list | grep -q "$index".bak || git worktree remove -f "$index".bak &>/dev/null
8896
fi
8997

9098
(git pull --rebase --autostash 2>/dev/null)

0 commit comments

Comments
 (0)