77 required : false
88 type : boolean
99 default : false
10+ secrets :
11+ UNITTESTS_APPSETTINGS_DEVELOPMENT :
12+ required : true
13+ WASMSTATICCLIENT_APPSETTINGS_DEVELOPMENT :
14+ required : true
15+ WASMSERVERHOSTCLIENT_APPSETTINGS_DEVELOPMENT :
16+ required : true
17+ WASMSERVERHOST_APPSETTINGS_DEVELOPMENT :
18+ required : true
19+ FAKE_WASMSERVERHOST_APPSETTINGS_DEVELOPMENT :
20+ required : false # Set to true if it's always required
1021
1122env :
1223
2738
2839 # Check Dummy Data
2940 TELBLAZOR_PACKAGE_VERSION : " 0.0.0-ci-checks"
30-
41+ HEADLESS_TESTING : true
3142
3243jobs :
3344
45+ # make-appsettings-work-in-push-yml:
46+ # name: app settings 2
47+ # if: ${{ secrets.FAKE_WASMSERVERHOST_APPSETTINGS_DEVELOPMENT != '' }}
48+ # runs-on: ubuntu-latest
49+ # steps:
50+
51+ # - name: Checkout code
52+ # uses: actions/checkout@v3
53+ # continue-on-error: true
54+
55+ # - name: Debug - Create temporary file with secret content
56+ # run: |
57+ # # Write the secret to a file
58+ # echo '${{ secrets.FAKE_WASMSERVERHOST_APPSETTINGS_DEVELOPMENT }}' > appsettings.Development.json
59+
60+ # # Display file content
61+ # echo "File content:"
62+ # cat appsettings.Development.json
63+
64+ # # Validate if it's proper JSON
65+ # echo "Validating JSON format:"${{ secrets.FAKE_WASMSERVERHOST_APPSETTINGS_DEVELOPMENT != '' }}
66+ # if cat appsettings.Development.json | jq . >/dev/null 2>&1; then
67+ # echo "✅ Valid JSON"
68+ # echo "JSON structure:"
69+ # cat appsettings.Development.json | jq .
70+ # else
71+ # echo "❌ Not valid JSON"
72+ # fi
73+ # continue-on-error: true
74+
3475 # Build Package
3576 # Build Solution useing package
3677 reuseable-ci-checks-solution-build :
5192
5293 - name : Replace local environment variable in nuget config because cant provide it as a parameter
5394 run : sed -i "s|%TELBlazorPackageSource%|$TELBLAZOR_PACKAGE_LOCAL_OUTPUT_PATH|g" nuget.config
54-
95+
96+ - name : Create appsettings development from secrets
97+ run : |
98+ declare -A paths
99+ paths["./TELBlazor.Components.UnitTests/appsettings.Development.json"]='${{ secrets.UNITTESTS_APPSETTINGS_DEVELOPMENT }}'
100+ paths["./TELBlazor.Components.ShowCase.WasmStaticClient/wwwroot/appsettings.Development.json"]='${{ secrets.WASMSTATICCLIENT_APPSETTINGS_DEVELOPMENT }}'
101+ paths["./TELBlazor.Components.ShowCase.E2ETests.WasmServerHost/TELBlazor.Components.ShowCase.E2ETests.WasmServerHost.Client/wwwroot/appsettings.Development.json"]='${{ secrets.WASMSERVERHOSTCLIENT_APPSETTINGS_DEVELOPMENT }}'
102+ paths["./TELBlazor.Components.ShowCase.E2ETests.WasmServerHost/TELBlazor.Components.ShowCase.E2ETests.WasmServerHost/appsettings.Development.json"]='${{ secrets.WASMSERVERHOST_APPSETTINGS_DEVELOPMENT }}'
103+
104+ for path in "${!paths[@]}"; do
105+ mkdir -p "$(dirname "$path")"
106+ printf '%s' "${paths[$path]}" > "$path"
107+ done
108+
109+
55110 - name : Clean lock files because the newly generated package file will superseed the locks
56111 run : |
57112 find . -name "packages.lock.json" -type f -exec rm -f {} \;
90145 /p:TELBlazorPackageSource=$TELBLAZOR_PACKAGE_SOURCE \
91146 /p:DisablePackageGeneration=$DISABLE_PACKAGE_GENERATION \
92147 /p:E2ETracingEnabled=$E2E_TRACING_ENABLED
148+
93149
94-
95150 reuseable-ci-checks-branch-name-check :
96151 name : Check branch names
97152 if : success() || failure()
@@ -152,7 +207,20 @@ jobs:
152207
153208 - name : Replace local environment variable in nuget config because cant provide it as a parameter
154209 run : sed -i "s|%TELBlazorPackageSource%|$TELBLAZOR_PACKAGE_LOCAL_OUTPUT_PATH|g" nuget.config
155-
210+
211+ - name : Create appsettings development from secrets
212+ run : |
213+ declare -A paths
214+ paths["./TELBlazor.Components.UnitTests/appsettings.Development.json"]='${{ secrets.UNITTESTS_APPSETTINGS_DEVELOPMENT }}'
215+ paths["./TELBlazor.Components.ShowCase.WasmStaticClient/wwwroot/appsettings.Development.json"]='${{ secrets.WASMSTATICCLIENT_APPSETTINGS_DEVELOPMENT }}'
216+ paths["./TELBlazor.Components.ShowCase.E2ETests.WasmServerHost/TELBlazor.Components.ShowCase.E2ETests.WasmServerHost.Client/wwwroot/appsettings.Development.json"]='${{ secrets.WASMSERVERHOSTCLIENT_APPSETTINGS_DEVELOPMENT }}'
217+ paths["./TELBlazor.Components.ShowCase.E2ETests.WasmServerHost/TELBlazor.Components.ShowCase.E2ETests.WasmServerHost/appsettings.Development.json"]='${{ secrets.WASMSERVERHOST_APPSETTINGS_DEVELOPMENT }}'
218+
219+ for path in "${!paths[@]}"; do
220+ mkdir -p "$(dirname "$path")"
221+ printf '%s' "${paths[$path]}" > "$path"
222+ done
223+
156224 - name : Clean lock files because the newly generated package file will superseed the locks
157225 run : |
158226 find . -name "packages.lock.json" -type f -exec rm -f {} \;
@@ -195,8 +263,6 @@ jobs:
195263 - name : Run Unit tests
196264 run : dotnet test "TELBlazor.Components.UnitTests.csproj" --no-build --verbosity normal
197265 working-directory : " ./TELBlazor.Components.UnitTests"
198- env :
199- ASPNETCORE_ENVIRONMENT : ci
200266
201267
202268 reuseable-ci-checks-e2e-tests :
@@ -222,6 +288,20 @@ jobs:
222288 - name : Clean lock files because the newly generated package file will superseed the locks
223289 run : |
224290 find . -name "packages.lock.json" -type f -exec rm -f {} \;
291+
292+ - name : Create appsettings development from secrets
293+ run : |
294+ declare -A paths
295+ paths["./TELBlazor.Components.UnitTests/appsettings.Development.json"]='${{ secrets.UNITTESTS_APPSETTINGS_DEVELOPMENT }}'
296+ paths["./TELBlazor.Components.ShowCase.WasmStaticClient/wwwroot/appsettings.Development.json"]='${{ secrets.WASMSTATICCLIENT_APPSETTINGS_DEVELOPMENT }}'
297+ paths["./TELBlazor.Components.ShowCase.E2ETests.WasmServerHost/TELBlazor.Components.ShowCase.E2ETests.WasmServerHost.Client/wwwroot/appsettings.Development.json"]='${{ secrets.WASMSERVERHOSTCLIENT_APPSETTINGS_DEVELOPMENT }}'
298+ paths["./TELBlazor.Components.ShowCase.E2ETests.WasmServerHost/TELBlazor.Components.ShowCase.E2ETests.WasmServerHost/appsettings.Development.json"]='${{ secrets.WASMSERVERHOST_APPSETTINGS_DEVELOPMENT }}'
299+
300+ for path in "${!paths[@]}"; do
301+ mkdir -p "$(dirname "$path")"
302+ printf '%s' "${paths[$path]}" > "$path"
303+ done
304+
225305
226306 - name : Set up Node.js so we have gulp for retrieving TEL Frontend Css
227307 uses : actions/setup-node@v4
@@ -232,6 +312,9 @@ jobs:
232312 working-directory : ./TELBlazor.Components
233313 run : npm ci
234314
315+
316+
317+
235318 - name : Build and create package locally
236319 env :
237320 # Overwrite package generation
@@ -243,7 +326,8 @@ jobs:
243326 /p:UseTELBlazorComponentsProjectReference=$USE_TEL_BLAZOR_COMPONENTS_PROJECT_REFERENCE \
244327 /p:TELBlazorPackageSource=$TELBLAZOR_PACKAGE_SOURCE \
245328 /p:DisablePackageGeneration=$DISABLE_PACKAGE_GENERATION \
246- /p:E2ETracingEnabled=$E2E_TRACING_ENABLED
329+ /p:E2ETracingEnabled=$E2E_TRACING_ENABLED \
330+ /p:HeadlessTesting=$HEADLESS_TESTING
247331
248332 - name : Build solution without generating new package
249333 env :
@@ -256,20 +340,25 @@ jobs:
256340 /p:UseTELBlazorComponentsProjectReference=$USE_TEL_BLAZOR_COMPONENTS_PROJECT_REFERENCE \
257341 /p:TELBlazorPackageSource=$TELBLAZOR_PACKAGE_SOURCE \
258342 /p:DisablePackageGeneration=$DISABLE_PACKAGE_GENERATION \
259- /p:E2ETracingEnabled=$E2E_TRACING_ENABLED
260-
343+ /p:E2ETracingEnabled=$E2E_TRACING_ENABLED \
344+ /p:HeadlessTesting=$HEADLESS_TESTING
261345
262346 - name : Ensure browsers are installed
263- run : pwsh TELBlazor.Components.ShowCase.E2ETests/bin/Debug/net8.0/playwright.ps1 install --with-deps
347+ run : pwsh TELBlazor.Components.ShowCase.E2ETests/bin/Debug/net8.0/playwright.ps1 install --with-deps
264348
265349 - name : E2E tests excepted filtered
266- run : dotnet test --filter "Category!=LocalOnly & Category!=HeadlessFalse" TELBlazor.Components.ShowCase.E2ETests.csproj --no-restore --verbosity minimal
267- working-directory : ./TELBlazor.Components.ShowCase.E2ETests
268- env :
269- ASPNETCORE_ENVIRONMENT : ci
270-
350+ env :
351+ TELBlazorPackageVersion : ${{ env.TELBLAZOR_PACKAGE_VERSION }}
352+ NupkgOutputPath : ${{ env.TELBLAZOR_PACKAGE_LOCAL_OUTPUT_PATH }}
353+ UseTELBlazorComponentsProjectReference : ${{ env.USE_TEL_BLAZOR_COMPONENTS_PROJECT_REFERENCE }}
354+ TELBlazorPackageSource : ${{ env.TELBLAZOR_PACKAGE_SOURCE }}
355+ DisablePackageGeneration : ${{ env.DISABLE_PACKAGE_GENERATION }}
356+ E2ETracingEnabled : ${{ env.E2E_TRACING_ENABLED }}
357+ HeadlessTesting : ${{ env.HEADLESS_TESTING }}
358+ run : |
359+ dotnet test --filter "Category!=LocalOnly & Category!=HeadlessFalse" TELBlazor.Components.ShowCase.E2ETests.csproj --no-build --no-restore --verbosity minimal
360+ working-directory : ./TELBlazor.Components.ShowCase.E2ETests
271361
272-
273362 reuseable-ci-checks-code-coverage :
274363 name : Check for code coverage
275364 runs-on : ubuntu-latest
0 commit comments