on: pull_request: branches: - master jobs: check-pr-version: runs-on: ubuntu-latest steps: - name: Checkout PR branch uses: actions/checkout@v3 - name: Get version from PR branch id: pr_version run: | PR_VERSION=$(find . -name '*.csproj' -exec grep '' {} \; | sed -E 's/.*(.*)<\/Version>.*/\1/') echo "PR_VERSION=$PR_VERSION" >> $GITHUB_ENV - name: Checkout master branch to separate directory uses: actions/checkout@v3 with: ref: master path: master_branch - name: Get version from master branch id: master_version run: | MASTER_VERSION=$(find master_branch -name '*.csproj' -exec grep '' {} \; | sed -E 's/.*(.*)<\/Version>.*/\1/') echo "MASTER_VERSION=$MASTER_VERSION" >> $GITHUB_ENV - name: Debug $GITHUB_ENV run: | echo "PR_VERSION: $PR_VERSION" echo "MASTER_VERSION: $MASTER_VERSION" - name: Compare versions run: | if [ -z "$PR_VERSION" ] || [ -z "$MASTER_VERSION" ]; then echo "One of the version variables is empty." exit 1 fi if [ "$(printf '%s\n' "$MASTER_VERSION" "$PR_VERSION" | sort -V | tail -n1)" != "$PR_VERSION" ] || [ "$PR_VERSION" = "$MASTER_VERSION" ]; then echo "Version in PR is not higher than master." exit 1 else echo "Version in PR is higher than master." fi