33on :
44 release :
55 types : [ published ] # Trigger on published pre-releases and releases
6- workflow_dispatch :
6+ workflow_dispatch :
7+ inputs :
8+ tag :
9+ description : ' Tag to build (e.g., v4.2.0)'
10+ required : true
11+ type : string
712
813jobs :
914 variables :
1015 name : Set Variables
1116 runs-on : ubuntu-latest
1217 env :
13- TAG : ${{ github.event.release.tag_name }}
18+ TAG : ${{ github.event.release.tag_name || inputs.tag }}
1419 steps :
1520 - name : Extract semantic version from tag
1621 id : set_version
1722 run : |
23+ if [ -z "${TAG}" ]; then
24+ echo "Error: No release tag available. Please provide a tag when manually triggering the workflow."
25+ exit 1
26+ fi
27+ echo "Processing tag: ${TAG}"
1828 # Remove the "v" prefix if it exists and extract the semantic version number
1929 SEMANTIC_VERSION=$(echo "${TAG}" | grep -Po "(?<=^|[^0-9])([0-9]+\.[0-9]+\.[0-9]+(\.[0-9]+)?(-[a-zA-Z]+[0-9]*)?)")
2030 SEMANTIC_VERSION=${SEMANTIC_VERSION#"v"}
2333 exit 1
2434 fi
2535 echo "Extracted semantic version: ${SEMANTIC_VERSION}"
36+ echo "Resolved git ref: ${TAG}"
37+ echo "tag=${TAG}" >> $GITHUB_OUTPUT
2638 echo "semantic_version=${SEMANTIC_VERSION}" >> $GITHUB_OUTPUT
2739 outputs :
28- tag : $TAG
40+ tag : ${{ steps.set_version.outputs.tag }}
2941 semanticVersion : ${{ steps.set_version.outputs.semantic_version }}
3042
3143 buildFrameworkVersions :
8496 - name : Upload Framework artifacts
8597 uses : actions/upload-artifact@v4
8698 with :
87- name : unsigned-dlls
99+ name : unsigned-dlls-framework
88100 if-no-files-found : error
89101 path : ./**/bin/Release/**/Optimizely*.dll
90102
@@ -106,7 +118,7 @@ jobs:
106118 - name : Upload Standard 1.6 artifact
107119 uses : actions/upload-artifact@v4
108120 with :
109- name : unsigned-dlls
121+ name : unsigned-dlls-netstandard16
110122 if-no-files-found : error
111123 path : ./**/bin/Release/**/Optimizely*.dll
112124
@@ -125,10 +137,10 @@ jobs:
125137 run : dotnet restore OptimizelySDK.NetStandard20/OptimizelySDK.NetStandard20.csproj
126138 - name : Build and strongly name Standard 2.0 project
127139 run : dotnet build OptimizelySDK.NetStandard20/OptimizelySDK.NetStandard20.csproj /p:SignAssembly=true /p:AssemblyOriginatorKeyFile=$(pwd)/keypair.snk -c Release
128- - name : Build and strongly name assemblies
140+ - name : Upload Standard 2.0 artifacts
129141 uses : actions/upload-artifact@v4
130142 with :
131- name : unsigned-dlls
143+ name : unsigned-dlls-netstandard20
132144 if-no-files-found : error
133145 path : ./**/bin/Release/**/Optimizely*.dll
134146
@@ -146,10 +158,20 @@ jobs:
146158 # TODO: Remove this when we're ready to automate
147159 - name : Temporarily halt progress
148160 run : exit 1
149- - name : Download the unsigned files
161+ - name : Download Framework DLLs
162+ uses : actions/download-artifact@v4
163+ with :
164+ name : unsigned-dlls-framework
165+ path : ./unsigned-dlls
166+ - name : Download NetStandard 1.6 DLLs
167+ uses : actions/download-artifact@v4
168+ with :
169+ name : unsigned-dlls-netstandard16
170+ path : ./unsigned-dlls
171+ - name : Download NetStandard 2.0 DLLs
150172 uses : actions/download-artifact@v4
151173 with :
152- name : unsigned-dlls
174+ name : unsigned-dlls-netstandard20
153175 path : ./unsigned-dlls
154176 - name : Setup SSH
155177 uses : shimataro/ssh-key-action@v2
0 commit comments