Skip to content

Commit

Permalink
Merge branch 'main' into orders-processor
Browse files Browse the repository at this point in the history
  • Loading branch information
ruixhuang authored May 28, 2024
2 parents 43b5d0d + a283d15 commit 5d42331
Show file tree
Hide file tree
Showing 2 changed files with 93 additions and 15 deletions.
52 changes: 38 additions & 14 deletions .github/workflows/bump_version.yml
Original file line number Diff line number Diff line change
@@ -1,31 +1,55 @@
name: Bump version on PR merge
name: Bump version on PR
on:
pull_request:
branches:
- main
types: closed
pull_request_target:
types: [opened, synchronize, reopened]

permissions:
contents: write

jobs:
update_version:
if: github.event.pull_request.merged == true
runs-on: macos-latest
steps:
- name: checkout
uses: actions/checkout@v4
with:
# Fetch full depth, otherwise the last step overwrites the last commit's parent, essentially removing the graph.
fetch-depth: 0

token: ${{ secrets.BOT_PAT }}
ref: ${{ github.head_ref }}

- name: Run bump_version_gh_action.sh
id: bump-version
run: |
bash ./bump_version_gh_action.sh
- name: Amend the last commit
set +e
./bump_version_gh_action.sh
echo "bump_version_ret=$?" >> $GITHUB_OUTPUT
env:
GITHUB_TOKEN: ${{ secrets.BOT_PAT }}

- name: Import bot's GPG key for signing commits
id: import-gpg
uses: crazy-max/ghaction-import-gpg@v6
with:
gpg_private_key: ${{ secrets.BOT_GPG_PRIVATE_KEY }}
passphrase: ${{ secrets.BOT_GPG_PASSPHRASE }}
#git_config_global: true
git_user_signingkey: true
git_commit_gpgsign: true

- name: Sign commit and push changes
run: |
git config --global user.email "${GITHUB_ACTOR}@users.noreply.github.com"
git config --global user.name "${GITHUB_ACTOR}"
git commit -a --amend --no-edit
git push --force-with-lease
echo "Complete"
if [[ "${{ steps.bump-version.outputs.bump_version_ret }}" == "0" ]]; then
git config --global user.email ${{ steps.import-gpg.outputs.name }}
git config --global user.name ${{ steps.import-gpg.outputs.email }}
git commit -S -m "Bump version" build.gradle.kts
git push
fi
env:
# GITHUB_TOKEN: ${{ secrets.BOT_PAT }}
GIT_AUTHOR_NAME: ${{ steps.import-gpg.outputs.name }}
GIT_AUTHOR_EMAIL: ${{ steps.import-gpg.outputs.email }}
GIT_COMMITTER_NAME: ${{ steps.import-gpg.outputs.name }}
GIT_COMMITTER_EMAIL: ${{ steps.import-gpg.outputs.email }}

56 changes: 55 additions & 1 deletion bump_version_gh_action.sh
Original file line number Diff line number Diff line change
@@ -1,14 +1,68 @@
#!/bin/sh

vercomp () {
if [[ $1 == $2 ]]
then
return 0
fi
local IFS=.
local i ver1=($1) ver2=($2)
# fill empty fields in ver1 with zeros
for ((i=${#ver1[@]}; i<${#ver2[@]}; i++))
do
ver1[i]=0
done
for ((i=0; i<${#ver1[@]}; i++))
do
if [[ -z ${ver2[i]} ]]
then
# fill empty fields in ver2 with zeros
ver2[i]=0
fi
if ((10#${ver1[i]} > 10#${ver2[i]}))
then
return 1
fi
if ((10#${ver1[i]} < 10#${ver2[i]}))
then
return 2
fi
done
return 0
}

# Defining a temporary directory for cloning
TMP_DIR=$(mktemp -d)

curl https://raw.githubusercontent.com/dydxprotocol/v4-abacus/main/build.gradle.kts > $TMP_DIR/build.gradle.kts

# search for the first line that starts with "version" in build.gradle.kts
# get the value in the quotes
VERSION=$(grep "^version = " build.gradle.kts | sed -n 's/version = "\(.*\)"/\1/p')

REPO_VERSION=$(grep "^version = " $TMP_DIR/build.gradle.kts | sed -n 's/version = "\(.*\)"/\1/p')

# call the version comparison function

vercomp $REPO_VERSION $VERSION
case $? in
0) SHOULD_BUMP=true ;;
1) SHOULD_BUMP=true ;;
2) SHOULD_BUMP=false ;;
esac

if [ $SHOULD_BUMP == false ]; then
echo "Repo version < PR version... No need to bump."
exit -1
fi

# increment the version number
NEW_VERSION=$(echo $VERSION | awk -F. '{$NF = $NF + 1;} 1' | sed 's/ /./g')
NEW_VERSION=$(echo $REPO_VERSION | awk -F. '{$NF = $NF + 1;} 1' | sed 's/ /./g')

#if NEW_VERSION is not empty, replace the version in build.gradle.kts
if [ -n "$NEW_VERSION" ]; then
sed -i '' "s/version = \"$VERSION\"/version = \"$NEW_VERSION\"/" build.gradle.kts
echo "Version bumped to $NEW_VERSION"
fi

exit 0

0 comments on commit 5d42331

Please sign in to comment.