Skip to content

Commit 7991a3b

Browse files
committed
Add script for new delta repo
1 parent 6a735dc commit 7991a3b

File tree

1 file changed

+66
-0
lines changed

1 file changed

+66
-0
lines changed
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
name: Delta repository generator
2+
on:
3+
push:
4+
branches:
5+
- master
6+
jobs:
7+
commit:
8+
runs-on: ubuntu-latest
9+
env:
10+
REMOTE: ProjectIgnis/DeltaBagooska.git
11+
REPO_NAME: DeltaBagooska
12+
DESTINATION: DeltaBagooska/script
13+
BASE_SHA: 20250419
14+
steps:
15+
- uses: actions/checkout@v1
16+
- name: Clone destination repository
17+
run: |
18+
cd $HOME
19+
git clone https://${{ secrets.DEPLOY_TOKEN_BAGOOSKA }}@github.com/$REMOTE
20+
mkdir -p $DESTINATION
21+
- name: Copy new or changed files
22+
id: copy
23+
run: |
24+
c1grep() { grep "$@" || test $? = 1; }
25+
mv $HOME/$DESTINATION /tmp
26+
mkdir -p $HOME/$DESTINATION
27+
[ -f /tmp/script/VERSION ] && mv /tmp/script/VERSION $HOME/$DESTINATION/VERSION
28+
ADDED=$(git diff --name-only --no-renames --diff-filter=d $BASE_SHA | c1grep -vP "(^|/)\..*" | c1grep -P "\.lua$")
29+
if [[ "$ADDED" ]]; then
30+
rsync -avR $ADDED $HOME/$DESTINATION
31+
fi
32+
- name: Remove deleted files
33+
run: |
34+
if [[ -f $HOME/$DESTINATION/VERSION ]]; then
35+
LAST_SHA=$(cat $HOME/$DESTINATION/VERSION)
36+
REMOVED=$(git diff --name-only --no-renames --diff-filter=D $LAST_SHA)
37+
if [[ "$REMOVED" ]]; then
38+
cd $HOME/$DESTINATION
39+
git rm -rf --ignore-unmatch $REMOVED
40+
fi
41+
fi
42+
- name: Generate mappings file
43+
run: |
44+
if [[ -f $HOME/$DESTINATION/VERSION ]]; then
45+
LAST_SHA=$(cat $HOME/$DESTINATION/VERSION)
46+
git diff --name-status --diff-filter=R $LAST_SHA | xargs python ./.github/generate_mappings.py $HOME/$REPO_NAME/mappings.json
47+
fi
48+
- name: Commit and push with original metadata
49+
run: |
50+
MESSAGE=$(git log -1 --pretty=%B)
51+
AUTHOR=$(git log -1 --pretty=format:'%an')
52+
EMAIL=$(git log -1 --pretty=format:'%ae')
53+
COMMITTER=$(git log -1 --pretty=format'%cn')
54+
CEMAIL=$(git log -1 --pretty=format:'%ce')
55+
cd $HOME/$DESTINATION
56+
echo $GITHUB_SHA > VERSION
57+
git config user.email "$CEMAIL"
58+
git config user.name "$COMMITTER"
59+
git add -A .
60+
if [[ -f $HOME/$REPO_NAME/mappings.json ]]; then
61+
git add $HOME/$REPO_NAME/mappings.json
62+
fi
63+
if [[ $(git status --porcelain) ]]; then
64+
git commit --author="$AUTHOR <$EMAIL>" -m "$MESSAGE"
65+
git push
66+
fi

0 commit comments

Comments
 (0)