Automatically cancel trigger orders if position has been closed/flipped #480
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Bump version | |
on: | |
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: Bump version if needed | |
id: bump-version | |
run: | | |
set +e | |
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." | |
echo "bump_version_ret=-1" >> $GITHUB_OUTPUT | |
exit 0 | |
fi | |
# increment the version number | |
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 | |
echo "bump_version_ret=0" >> $GITHUB_OUTPUT | |
- 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: | | |
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 }} |