@@ -12,10 +12,7 @@ permissions:
1212env :
1313
1414 # Permission
15-
16- # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
17-
18- # Try other token so semver has the ability to add comments
15+ # Need more permissive token
1916 GITHUB_TOKEN : ${{ secrets.NUGETKEY }}
2017 PACKAGES_TOKEN : ${{ secrets.NUGETKEY }}
2118 GITHUB_USERNAME : " Phil-NHS"
2724 # Build Set Up
2825 USE_TEL_BLAZOR_COMPONENTS_PROJECT_REFERENCE : false
2926 DISABLE_PACKAGE_GENERATION : false
27+ E2E_TRACING_ENABLED : false
3028
3129jobs :
3230
3533 uses : ./.github/workflows/reuseable-ci-checks.yml
3634 with :
3735 runall : true
38-
36+ secrets :
37+ # Dev
38+ UNITTESTS_APPSETTINGS_DEVELOPMENT : ${{ secrets.UNITTESTS_APPSETTINGS_DEVELOPMENT }}
39+ WASMSTATICCLIENT_APPSETTINGS_DEVELOPMENT : ${{ secrets.WASMSTATICCLIENT_APPSETTINGS_DEVELOPMENT }}
40+ WASMSERVERHOSTCLIENT_APPSETTINGS_DEVELOPMENT : ${{ secrets.WASMSERVERHOSTCLIENT_APPSETTINGS_DEVELOPMENT }}
41+ WASMSERVERHOST_APPSETTINGS_DEVELOPMENT : ${{ secrets.WASMSERVERHOST_APPSETTINGS_DEVELOPMENT }}
42+
43+ # Token
44+ PACKAGES_TOKEN : ${{secrets.NUGETKEY }}
45+
46+ # Prod
47+ UNITTESTS_APPSETTINGS_PRODUCTION : ${{ secrets.UNITTESTS_APPSETTINGS_PRODUCTION }}
48+ WASMSTATICCLIENT_APPSETTINGS_PRODUCTION : ${{ secrets.WASMSTATICCLIENT_APPSETTINGS_PRODUCTION }}
49+ WASMSERVERHOSTCLIENT_APPSETTINGS_PRODUCTION : ${{ secrets.WASMSERVERHOSTCLIENT_APPSETTINGS_PRODUCTION }}
50+ WASMSERVERHOST_APPSETTINGS_PRODUCTION : ${{ secrets.WASMSERVERHOST_APPSETTINGS_PRODUCTION }}
51+
3952
4053 # Now we've done due diligence
4154 # The checks have been allowed to run if the workflow fails so if there a multiple fails we know.
6881 @semantic-release/github
6982 echo "Semantic Release packages installed."
7083 npm ls --depth=0 # Debug: List installed packages
71-
72-
73-
7484
7585 - name : Run semantic version (None Blocking)
7686 run : |
@@ -143,6 +153,26 @@ jobs:
143153 - name : Replace local environment variable in nuget config because cant provide it as a parameter
144154 run : sed -i "s|%TELBlazorPackageSource%|$TELBLAZOR_PACKAGE_LOCAL_OUTPUT_PATH|g" nuget.config
145155
156+ - name : Create appsettings development from secrets
157+ run : |
158+ declare -A paths
159+ paths["./TELBlazor.Components.UnitTests/appsettings.Development.json"]='${{ secrets.UNITTESTS_APPSETTINGS_DEVELOPMENT }}'
160+ paths["./TELBlazor.Components.ShowCase.WasmStaticClient/wwwroot/appsettings.Development.json"]='${{ secrets.WASMSTATICCLIENT_APPSETTINGS_DEVELOPMENT }}'
161+ paths["./TELBlazor.Components.ShowCase.E2ETests.WasmServerHost/TELBlazor.Components.ShowCase.E2ETests.WasmServerHost.Client/wwwroot/appsettings.Development.json"]='${{ secrets.WASMSERVERHOSTCLIENT_APPSETTINGS_DEVELOPMENT }}'
162+ paths["./TELBlazor.Components.ShowCase.E2ETests.WasmServerHost/TELBlazor.Components.ShowCase.E2ETests.WasmServerHost/appsettings.Development.json"]='${{ secrets.WASMSERVERHOST_APPSETTINGS_DEVELOPMENT }}'
163+
164+ paths["./TELBlazor.Components.UnitTests/appsettings.Production.json"]='${{ secrets.UNITTESTS_APPSETTINGS_PRODUCTION }}'
165+ paths["./TELBlazor.Components.ShowCase.WasmStaticClient/wwwroot/appsettings.Production.json"]='${{ secrets.WASMSTATICCLIENT_APPSETTINGS_PRODUCTION }}'
166+ paths["./TELBlazor.Components.ShowCase.E2ETests.WasmServerHost/TELBlazor.Components.ShowCase.E2ETests.WasmServerHost.Client/wwwroot/appsettings.Production.json"]='${{ secrets.WASMSERVERHOSTCLIENT_APPSETTINGS_PRODUCTION }}'
167+ paths["./TELBlazor.Components.ShowCase.E2ETests.WasmServerHost/TELBlazor.Components.ShowCase.E2ETests.WasmServerHost/appsettings.Production.json"]='${{ secrets.WASMSERVERHOST_APPSETTINGS_PRODUCTION }}'
168+
169+
170+ for path in "${!paths[@]}"; do
171+ mkdir -p "$(dirname "$path")"
172+ printf '%s' "${paths[$path]}" > "$path"
173+ done
174+
175+
146176 - name : Clean lock files because the newly generated package file will supersede the locks
147177 run : |
148178 find . -name "packages.lock.json" -type f -exec rm -f {} \;
@@ -153,7 +183,6 @@ jobs:
153183 node-version : ' 20'
154184
155185 - name : Install npm packages so we have gulp for retrieving TEL Frontend Css
156- working-directory : ./TELBlazor.Components
157186 run : npm ci
158187 # CI is an install that adheres to package-lock
159188
@@ -185,6 +214,7 @@ jobs:
185214 DEV_TELBLAZOR_PACKAGE_VERSION : ${{ needs.generate-dev-semantic-version.outputs.dev-package-version }}
186215
187216 steps :
217+
188218 - name : Checkout Code
189219 uses : actions/checkout@v4
190220
@@ -208,7 +238,25 @@ jobs:
208238 - name : debug DEV_TELBLAZOR_PACKAGE_VERSION
209239 run : |
210240 echo "DEV_TELBLAZOR_PACKAGE_VERSION $DEV_TELBLAZOR_PACKAGE_VERSION"
211-
241+
242+ - name : Create appsettings development from secrets
243+ run : |
244+ declare -A paths
245+ paths["./TELBlazor.Components.UnitTests/appsettings.Development.json"]='${{ secrets.UNITTESTS_APPSETTINGS_DEVELOPMENT }}'
246+ paths["./TELBlazor.Components.ShowCase.WasmStaticClient/wwwroot/appsettings.Development.json"]='${{ secrets.WASMSTATICCLIENT_APPSETTINGS_DEVELOPMENT }}'
247+ paths["./TELBlazor.Components.ShowCase.E2ETests.WasmServerHost/TELBlazor.Components.ShowCase.E2ETests.WasmServerHost.Client/wwwroot/appsettings.Development.json"]='${{ secrets.WASMSERVERHOSTCLIENT_APPSETTINGS_DEVELOPMENT }}'
248+ paths["./TELBlazor.Components.ShowCase.E2ETests.WasmServerHost/TELBlazor.Components.ShowCase.E2ETests.WasmServerHost/appsettings.Development.json"]='${{ secrets.WASMSERVERHOST_APPSETTINGS_DEVELOPMENT }}'
249+
250+ paths["./TELBlazor.Components.UnitTests/appsettings.Production.json"]='${{ secrets.UNITTESTS_APPSETTINGS_PRODUCTION }}'
251+ paths["./TELBlazor.Components.ShowCase.WasmStaticClient/wwwroot/appsettings.Production.json"]='${{ secrets.WASMSTATICCLIENT_APPSETTINGS_PRODUCTION }}'
252+ paths["./TELBlazor.Components.ShowCase.E2ETests.WasmServerHost/TELBlazor.Components.ShowCase.E2ETests.WasmServerHost.Client/wwwroot/appsettings.Production.json"]='${{ secrets.WASMSERVERHOSTCLIENT_APPSETTINGS_PRODUCTION }}'
253+ paths["./TELBlazor.Components.ShowCase.E2ETests.WasmServerHost/TELBlazor.Components.ShowCase.E2ETests.WasmServerHost/appsettings.Production.json"]='${{ secrets.WASMSERVERHOST_APPSETTINGS_PRODUCTION }}'
254+
255+ for path in "${!paths[@]}"; do
256+ mkdir -p "$(dirname "$path")"
257+ printf '%s' "${paths[$path]}" > "$path"
258+ done
259+
212260 - name : Clean lock files because the newly generated package file will superseed the locks
213261 run : |
214262 echo "Listing packages.lock.json files:"
@@ -220,7 +268,26 @@ jobs:
220268 echo "Listing packages.lock.json files:"
221269 find . -name "packages.lock.json" -type f -print
222270
271+ - name : Set up Node.js so we have gulp for retrieving TEL Frontend Css
272+ uses : actions/setup-node@v4
273+ with :
274+ node-version : ' 20'
275+
276+ - name : Install npm packages so we have gulp for retrieving TEL Frontend Css
277+ run : npm ci
223278
279+ - name : Build solution without generating new package
280+ env :
281+ # Overwrite package generation
282+ DISABLE_PACKAGE_GENERATION : true
283+ run : |
284+ dotnet build TELBlazor.sln -c Release \
285+ /p:TELBlazorPackageVersion=$DEV_TELBLAZOR_PACKAGE_VERSION \
286+ /p:NupkgOutputPath=$TELBLAZOR_PACKAGE_LOCAL_OUTPUT_PATH \
287+ /p:UseTELBlazorComponentsProjectReference=$USE_TEL_BLAZOR_COMPONENTS_PROJECT_REFERENCE \
288+ /p:TELBlazorPackageSource=$TELBLAZOR_PACKAGE_SOURCE \
289+ /p:DisablePackageGeneration=$DISABLE_PACKAGE_GENERATION \
290+ /p:E2ETracingEnabled=$E2E_TRACING_ENABLED
224291
225292 - name : Publish WasmStaticClient
226293 run : |
@@ -247,12 +314,14 @@ jobs:
247314 ARTIFACT_LIST=$(gh api "repos/TechnologyEnhancedLearning/TELBlazor/actions/runs/${GITHUB_RUN_ID}/artifacts")
248315 # Echo the entire artifact list for debugging purposes
249316 echo "Artifact List: $ARTIFACT_LIST"
250- # Extract the download URL from the artifact list (first artifact in the list)
251- #ARTIFACT_URL=$(echo "$ARTIFACT_LIST" | jq -r '.artifacts[0].archive_download_url')
252- ARTIFACT_URL=$(echo "$ARTIFACT_LIST" | jq -r '.artifacts[0].url')
317+
318+ # Change this line to select by name instead of position
319+ ARTIFACT_URL=$(echo "$ARTIFACT_LIST" | jq -r '.artifacts[] | select(.name=="published-telblazor-components-showcase-wasmstaticclient-using-dev-package-${{env.DEV_TELBLAZOR_PACKAGE_VERSION}}") | .url')
320+
253321 # Echo the artifact URL to confirm
254322 echo "Artifact URL: $ARTIFACT_URL"
255323 echo "artifact_url=$ARTIFACT_URL" >> $GITHUB_ENV
324+
256325
257326 - name : Trigger workflow in TELBlazor-DevShowCase repo
258327 run : |
0 commit comments