Skip to content

Commit 410e716

Browse files
committed
CI: enable multi-RID build and automated NuGet pack/publish - fix nuget version
1 parent f143b12 commit 410e716

File tree

2 files changed

+30
-26
lines changed

2 files changed

+30
-26
lines changed

.github/workflows/nuget.yml

Lines changed: 29 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,8 @@ jobs:
6464
6565
- name: Check version change
6666
id: version_check
67-
continue-on-error: true
67+
env:
68+
BRANCH_NAME: ${{ github.ref_name }}
6869
run: |
6970
if [ ! -f "${{ env.CSPROJ_PATH }}" ]; then
7071
echo "::error::Project file not found at ${{ env.CSPROJ_PATH }}"
@@ -73,39 +74,42 @@ jobs:
7374
echo "version_specified=false" >> $GITHUB_OUTPUT
7475
exit 1
7576
fi
77+
7678
CURRENT_VERSION=$(grep -o '<Version>.*</Version>' ${{ env.CSPROJ_PATH }} | sed 's/<Version>\(.*\)<\/Version>/\1/')
7779
if [ -z "$CURRENT_VERSION" ]; then
78-
echo "::warning::Version tag not found in csproj file"
79-
echo "can_publish=false" >> $GITHUB_OUTPUT
8080
echo "version_specified=false" >> $GITHUB_OUTPUT
81+
echo "can_publish=false" >> $GITHUB_OUTPUT
8182
exit 0
8283
fi
8384
echo "version_specified=true" >> $GITHUB_OUTPUT
8485
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
10788
echo "is_master=false" >> $GITHUB_OUTPUT
10889
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
109113
fi
110114
111115
- name: prepare

nuget/SimpleCpp.Native.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<PropertyGroup>
33
<PackageId>SimpleCpp.Native</PackageId>
44
<TargetFramework>netstandard2.0</TargetFramework>
5-
<Version>1.3.2.0</Version>
5+
<Version>1.3.2.1</Version>
66
<Description>Cross-platform native binaries for SimpleCpp.</Description>
77
<Authors>Denis Kudelin</Authors>
88
<PackageLicenseFile>LICENSE</PackageLicenseFile>

0 commit comments

Comments
 (0)