Skip to content

Commit 5449574

Browse files
committed
CI: support manual package versions for publish workflows
1 parent 67290d9 commit 5449574

2 files changed

Lines changed: 83 additions & 12 deletions

File tree

.github/workflows/publish-artifacts.yml

Lines changed: 56 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,18 @@ on:
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

1123
permissions:
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

.github/workflows/publish-packages.yml

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,18 @@ on:
77
description: Release version 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
publish_nuget:
1123
description: Publish to NuGet.org
1224
required: false
@@ -23,6 +35,18 @@ on:
2335
description: Release version without the leading "v"
2436
required: false
2537
type: string
38+
core_version:
39+
description: Optional manual version for ModularityKit.Mutator
40+
required: false
41+
type: string
42+
governance_version:
43+
description: Optional manual version for ModularityKit.Mutator.Governance
44+
required: false
45+
type: string
46+
redis_version:
47+
description: Optional manual version for ModularityKit.Mutator.Governance.Redis
48+
required: false
49+
type: string
2650
publish_nuget:
2751
description: Publish to NuGet.org
2852
required: false
@@ -41,6 +65,9 @@ jobs:
4165
uses: ./.github/workflows/publish-artifacts.yml
4266
with:
4367
package_version: ${{ inputs.version }}
68+
core_version: ${{ inputs.core_version }}
69+
governance_version: ${{ inputs.governance_version }}
70+
redis_version: ${{ inputs.redis_version }}
4471

4572
publish-nuget:
4673
name: Publish to NuGet.org

0 commit comments

Comments
 (0)