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=$(grep '' **/*.csproj | sed -E 's/.*(.*)<\/Version>.*/\1/') echo "PR_VERSION=$PR_VERSION" >> $GITHUB_ENV - name: Checkout master branch run: | git fetch origin master git checkout origin/master - name: Get version from master branch id: master_version run: | MASTER_VERSION=$(grep '' **/*.csproj | sed -E 's/.*(.*)<\/Version>.*/\1/') echo "MASTER_VERSION=$MASTER_VERSION" >> $GITHUB_ENV - name: Compare versions run: | if [ "$(printf '%s\n' "$PR_VERSION" "$MASTER_VERSION" | sort -V | head -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