64
64
65
65
- name : Check version change
66
66
id : version_check
67
- continue-on-error : true
67
+ env :
68
+ BRANCH_NAME : ${{ github.ref_name }}
68
69
run : |
69
70
if [ ! -f "${{ env.CSPROJ_PATH }}" ]; then
70
71
echo "::error::Project file not found at ${{ env.CSPROJ_PATH }}"
@@ -73,39 +74,42 @@ jobs:
73
74
echo "version_specified=false" >> $GITHUB_OUTPUT
74
75
exit 1
75
76
fi
77
+
76
78
CURRENT_VERSION=$(grep -o '<Version>.*</Version>' ${{ env.CSPROJ_PATH }} | sed 's/<Version>\(.*\)<\/Version>/\1/')
77
79
if [ -z "$CURRENT_VERSION" ]; then
78
- echo "::warning::Version tag not found in csproj file"
79
- echo "can_publish=false" >> $GITHUB_OUTPUT
80
80
echo "version_specified=false" >> $GITHUB_OUTPUT
81
+ echo "can_publish=false" >> $GITHUB_OUTPUT
81
82
exit 0
82
83
fi
83
84
echo "version_specified=true" >> $GITHUB_OUTPUT
84
85
echo "current_version=$CURRENT_VERSION" >> $GITHUB_OUTPUT
85
- if [[ "${{ github.ref_name }}" == "master" || "${{ github.ref_name }}" == "main" ]]; then
86
- echo "is_master=true" >> $GITHUB_OUTPUT
87
- git fetch origin
88
- if ! git ls-remote --exit-code --quiet origin refs/heads/master || ! git cat-file -e origin/master:${{ env.CSPROJ_PATH }} 2>/dev/null; then
89
- echo "version_changed=true" >> $GITHUB_OUTPUT
90
- echo "can_publish=true" >> $GITHUB_OUTPUT
91
- exit 0
92
- fi
93
- PREV_VERSION=$(git show origin/master:${{ env.CSPROJ_PATH }} 2>/dev/null | grep -o '<Version>.*</Version>' | sed 's/<Version>\(.*\)<\/Version>/\1/' || echo "")
94
- if [ -z "$PREV_VERSION" ] || [ "$PREV_VERSION" != "$CURRENT_VERSION" ]; then
95
- echo "version_changed=true" >> $GITHUB_OUTPUT
96
- else
97
- echo "version_changed=false" >> $GITHUB_OUTPUT
98
- fi
99
- if [ -n "${{ secrets.NUGET_API_KEY }}" ] && [ "$PREV_VERSION" != "$CURRENT_VERSION" ]; then
100
- echo "api_key_available=true" >> $GITHUB_OUTPUT
101
- echo "can_publish=true" >> $GITHUB_OUTPUT
102
- else
103
- echo "api_key_available=false" >> $GITHUB_OUTPUT
104
- echo "can_publish=false" >> $GITHUB_OUTPUT
105
- fi
106
- else
86
+
87
+ if [ "$BRANCH_NAME" != "master" ]; then
107
88
echo "is_master=false" >> $GITHUB_OUTPUT
108
89
echo "can_publish=false" >> $GITHUB_OUTPUT
90
+ exit 0
91
+ fi
92
+ echo "is_master=true" >> $GITHUB_OUTPUT
93
+
94
+ git fetch --quiet
95
+ if git cat-file -e HEAD~1:${{ env.CSPROJ_PATH }} 2>/dev/null; then
96
+ PREV_VERSION=$(git show HEAD~1:${{ env.CSPROJ_PATH }} | grep -o '<Version>.*</Version>' | sed 's/<Version>\(.*\)<\/Version>/\1/')
97
+ else
98
+ PREV_VERSION=""
99
+ fi
100
+
101
+ if [ -z "$PREV_VERSION" ] || [ "$PREV_VERSION" != "$CURRENT_VERSION" ]; then
102
+ echo "version_changed=true" >> $GITHUB_OUTPUT
103
+ else
104
+ echo "version_changed=false" >> $GITHUB_OUTPUT
105
+ fi
106
+
107
+ if [ -n "${{ secrets.NUGET_API_KEY }}" ] && [ "$PREV_VERSION" != "$CURRENT_VERSION" ]; then
108
+ echo "api_key_available=true" >> $GITHUB_OUTPUT
109
+ echo "can_publish=true" >> $GITHUB_OUTPUT
110
+ else
111
+ echo "api_key_available=false" >> $GITHUB_OUTPUT
112
+ echo "can_publish=false" >> $GITHUB_OUTPUT
109
113
fi
110
114
111
115
- name : prepare
0 commit comments