77 description : " Optional package version, usually the release tag without the leading v."
88 required : false
99 type : string
10+ core_version :
11+ description : " Optional manual version for ModularityKit.Mutator."
12+ required : false
13+ type : string
14+ governance_version :
15+ description : " Optional manual version for ModularityKit.Mutator.Governance."
16+ required : false
17+ type : string
18+ redis_version :
19+ description : " Optional manual version for ModularityKit.Mutator.Governance.Redis."
20+ required : false
21+ type : string
1022
1123permissions :
1224 contents : read
@@ -28,37 +40,69 @@ jobs:
2840 - name : Restore
2941 run : dotnet restore ModularityKit.Mutator.slnx
3042
31- - name : Resolve package version
43+ - name : Resolve package versions
3244 id : version
3345 env :
3446 PACKAGE_VERSION : ${{ inputs.package_version }}
47+ CORE_VERSION : ${{ inputs.core_version }}
48+ GOVERNANCE_VERSION : ${{ inputs.governance_version }}
49+ REDIS_VERSION : ${{ inputs.redis_version }}
3550 REF_NAME : ${{ github.ref_name }}
3651 run : |
37- version="$PACKAGE_VERSION"
38- if [ -z "$version" ]; then
39- version="$REF_NAME"
40- fi
41- version="${version#v}"
42- if ! printf '%s' "$version" | grep -Eq '^[0-9]+(\.[0-9]+){1,2}([-+][0-9A-Za-z.-]+)?$'; then
43- version="0.1.0"
44- fi
45- echo "package_version=$version" >> "$GITHUB_OUTPUT"
52+ resolve_version() {
53+ local value="$1"
54+ local fallback="$2"
55+
56+ if [ -z "$value" ]; then
57+ value="$fallback"
58+ fi
59+
60+ if [ -z "$value" ]; then
61+ value="$REF_NAME"
62+ fi
63+
64+ value="${value#v}"
65+
66+ if ! printf '%s' "$value" | grep -Eq '^[0-9]+(\.[0-9]+){1,2}([-+][0-9A-Za-z.-]+)?$'; then
67+ value="0.1.0"
68+ fi
69+
70+ printf '%s' "$value"
71+ }
72+
73+ shared_version="$(resolve_version "$PACKAGE_VERSION" "")"
74+ core_version="$(resolve_version "$CORE_VERSION" "$shared_version")"
75+ governance_version="$(resolve_version "$GOVERNANCE_VERSION" "$shared_version")"
76+ redis_version="$(resolve_version "$REDIS_VERSION" "$shared_version")"
77+
78+ echo "package_version=$shared_version" >> "$GITHUB_OUTPUT"
79+ echo "core_version=$core_version" >> "$GITHUB_OUTPUT"
80+ echo "governance_version=$governance_version" >> "$GITHUB_OUTPUT"
81+ echo "redis_version=$redis_version" >> "$GITHUB_OUTPUT"
4682
4783 - name : Pack core package
4884 run : >
4985 dotnet pack src/ModularityKit.Mutator.csproj
5086 -c Release
5187 --no-restore
5288 -o nupkg
53- -p:PackageVersion=${{ steps.version.outputs.package_version }}
89+ -p:PackageVersion=${{ steps.version.outputs.core_version }}
5490
5591 - name : Pack governance package
5692 run : >
5793 dotnet pack src/ModularityKit.Mutator.Governance.csproj
5894 -c Release
5995 --no-restore
6096 -o nupkg
61- -p:PackageVersion=${{ steps.version.outputs.package_version }}
97+ -p:PackageVersion=${{ steps.version.outputs.governance_version }}
98+
99+ - name : Pack Redis governance package
100+ run : >
101+ dotnet pack src/Redis/ModularityKit.Mutator.Governance.Redis.csproj
102+ -c Release
103+ --no-restore
104+ -o nupkg
105+ -p:PackageVersion=${{ steps.version.outputs.redis_version }}
62106
63107 - name : Upload packages
64108 uses : actions/upload-artifact@v4
0 commit comments