Skip to content

Commit

Permalink
Merge branch 'master' into towels
Browse files Browse the repository at this point in the history
  • Loading branch information
Chorden523 authored Mar 27, 2024
2 parents 307492c + 9850c97 commit 78ca55f
Show file tree
Hide file tree
Showing 231 changed files with 4,262 additions and 2,906 deletions.
48 changes: 40 additions & 8 deletions .github/workflows/merge_upstream_master.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,16 +16,22 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: PR Data
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
curl -H "Authorization: token ${{ github.token }}" ${{ github.event.issue.pull_request.url }} > pr.json
echo "PR_REPO=`jq -r '.head.repo.full_name' < pr.json`" >> $GITHUB_ENV
echo "PR_BRANCH=`jq -r '.head.ref' < pr.json`" >> $GITHUB_ENV
pr_json=$(curl -L -s --fail-with-body -H "Authorization: token ${{ github.token }}" ${{ github.event.issue.pull_request.url }})
if [ `jq -r '.maintainer_can_modify' <<<$pr_json` == "false" ] ; then
gh pr comment ${{ github.event.issue.html_url }} --body 'GitHub Actions can not push to the repository without "Allow edits and access to secrets by maintainers" checked.'
exit 1
fi
echo "PR_REPO=`jq -r '.head.repo.full_name' <<<$pr_json`" >> $GITHUB_ENV
echo "PR_BRANCH=`jq -r '.head.ref' <<<$pr_json`" >> $GITHUB_ENV
echo "PR_HEAD_LABEL=`jq -r '.head.label' <<<$pr_json`" >> $GITHUB_ENV
- uses: actions/checkout@v4
with:
repository: ${{ env.PR_REPO }}
ref: ${{ env.PR_BRANCH }}
fetch-depth: 0

- uses: actions/setup-node@v4
with:
Expand All @@ -39,16 +45,42 @@ jobs:
cache: 'pip'

- name: Perform Merge
env:
BASE_BRANCH: ${{ github.event.repository.default_branch }}
BASE_REPOSITORY: ${{ github.repository }}
run: |
# Compare head branch and base branch
compare_result=$(curl -L -s --fail-with-body \
-H "Accept: application/vnd.github+json" \
-H "X-GitHub-Api-Version: 2022-11-28" \
"https://api.github.com/repos/$BASE_REPOSITORY/compare/$BASE_BRANCH...$PR_HEAD_LABEL")
# Assign multiple variables with one jq execution
if IFS=$'\n' read -d '' -r behind_by ahead_by <<<$(jq '.behind_by, .ahead_by' <<<$compare_result) ; [ -z "$behind_by" ] || [ -z "$ahead_by" ] ; then
echo '- Unable to determine the distance between the head branch and the base branch.' | tee -a "$GITHUB_STEP_SUMMARY"
exit 1
fi
if [ "$behind_by" -le 0 ] ; then
echo '- Skipping merge. Up-to-date with base branch.' | tee -a "$GITHUB_STEP_SUMMARY"
exit 0
else
echo '- Merging base branch. Head branch is behind by '"$behind_by"' commits and ahead by '"$ahead_by"' commits.' | tee -a "$GITHUB_STEP_SUMMARY"
fi
# Install Tools
chmod +x tools/bootstrap/python
bash tools/hooks/install.sh
bash tgui/bin/tgui --install-git-hooks
chmod +x tools/hooks/*.merge tgui/bin/tgui
# Actual Merge
git config user.name github-actions
git config user.email [email protected]
git remote add upstream "https://github.com/${{ github.repository }}.git"
git fetch upstream master
git merge upstream/master && git push origin
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
git remote add upstream "https://github.com/$BASE_REPOSITORY.git"
git fetch origin "$PR_BRANCH" --depth=$((ahead_by + 1))
git fetch upstream "$BASE_BRANCH" --depth=$((behind_by + 1))
git merge FETCH_HEAD
git push origin
- name: Notify Failure
if: failure()
Expand Down
Loading

0 comments on commit 78ca55f

Please sign in to comment.