Skip to content

Commit 8b41944

Browse files
committed
feat(button): squash
1 parent 111a0af commit 8b41944

File tree

59 files changed

+552
-1926
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

59 files changed

+552
-1926
lines changed

.github/workflows/dev.yml

Lines changed: 36 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,12 @@ jobs:
3535
uses: ./.github/workflows/reuseable-ci-checks.yml
3636
with:
3737
runall: true
38-
38+
secrets:
39+
UNITTESTS_APPSETTINGS_DEVELOPMENT: ${{ secrets.UNITTESTS_APPSETTINGS_DEVELOPMENT }}
40+
WASMSTATICCLIENT_APPSETTINGS_DEVELOPMENT: ${{ secrets.WASMSTATICCLIENT_APPSETTINGS_DEVELOPMENT }}
41+
WASMSERVERHOSTCLIENT_APPSETTINGS_DEVELOPMENT: ${{ secrets.WASMSERVERHOSTCLIENT_APPSETTINGS_DEVELOPMENT }}
42+
WASMSERVERHOST_APPSETTINGS_DEVELOPMENT: ${{ secrets.WASMSERVERHOST_APPSETTINGS_DEVELOPMENT }}
43+
FAKE_WASMSERVERHOST_APPSETTINGS_DEVELOPMENT: ${{ secrets.FAKE_WASMSERVERHOST_APPSETTINGS_DEVELOPMENT }}
3944

4045
# Now we've done due diligence
4146
# The checks have been allowed to run if the workflow fails so if there a multiple fails we know.
@@ -68,9 +73,6 @@ jobs:
6873
@semantic-release/github
6974
echo "Semantic Release packages installed."
7075
npm ls --depth=0 # Debug: List installed packages
71-
72-
73-
7476
7577
- name: Run semantic version (None Blocking)
7678
run: |
@@ -143,6 +145,21 @@ jobs:
143145
- name: Replace local environment variable in nuget config because cant provide it as a parameter
144146
run: sed -i "s|%TELBlazorPackageSource%|$TELBLAZOR_PACKAGE_LOCAL_OUTPUT_PATH|g" nuget.config
145147

148+
- name: Create appsettings development from secrets
149+
run: |
150+
declare -A paths=(
151+
["./TELBlazor.Components.UnitTests/appsettings.Development.json"]="${{ secrets.UNITTESTS_APPSETTINGS_DEVELOPMENT }}"
152+
["./TELBlazor.Components.ShowCase.WasmStaticClient/wwwroot/appsettings.Development.json"]="${{ secrets.WASMSTATICCLIENT_APPSETTINGS_DEVELOPMENT }}"
153+
["./TELBlazor.Components.ShowCase.E2ETests.WasmServerHost/TELBlazor.Components.ShowCase.E2ETests.WasmServerHost.Client/wwwroot/appsettings.Development.json"]="${{ secrets.WASMSERVERHOSTCLIENT_APPSETTINGS_DEVELOPMENT }}"
154+
["./TELBlazor.Components.ShowCase.E2ETests.WasmServerHost/appsettings.Development.json"]="${{ secrets.WASMSERVERHOST_APPSETTINGS_DEVELOPMENT }}"
155+
)
156+
157+
for path in "${!paths[@]}"; do
158+
mkdir -p "$(dirname "$path")"
159+
printf '%s' "${paths[$path]}" > "$path"
160+
done
161+
162+
146163
- name: Clean lock files because the newly generated package file will supersede the locks
147164
run: |
148165
find . -name "packages.lock.json" -type f -exec rm -f {} \;
@@ -208,7 +225,21 @@ jobs:
208225
- name: debug DEV_TELBLAZOR_PACKAGE_VERSION
209226
run: |
210227
echo "DEV_TELBLAZOR_PACKAGE_VERSION $DEV_TELBLAZOR_PACKAGE_VERSION"
211-
228+
229+
- name: Create appsettings development from secrets
230+
run: |
231+
declare -A paths=(
232+
["./TELBlazor.Components.UnitTests/appsettings.Development.json"]="${{ secrets.UNITTESTS_APPSETTINGS_DEVELOPMENT }}"
233+
["./TELBlazor.Components.ShowCase.WasmStaticClient/wwwroot/appsettings.Development.json"]="${{ secrets.WASMSTATICCLIENT_APPSETTINGS_DEVELOPMENT }}"
234+
["./TELBlazor.Components.ShowCase.E2ETests.WasmServerHost/TELBlazor.Components.ShowCase.E2ETests.WasmServerHost.Client/wwwroot/appsettings.Development.json"]="${{ secrets.WASMSERVERHOSTCLIENT_APPSETTINGS_DEVELOPMENT }}"
235+
["./TELBlazor.Components.ShowCase.E2ETests.WasmServerHost/appsettings.Development.json"]="${{ secrets.WASMSERVERHOST_APPSETTINGS_DEVELOPMENT }}"
236+
)
237+
238+
for path in "${!paths[@]}"; do
239+
mkdir -p "$(dirname "$path")"
240+
printf '%s' "${paths[$path]}" > "$path"
241+
done
242+
212243
- name: Clean lock files because the newly generated package file will superseed the locks
213244
run: |
214245
echo "Listing packages.lock.json files:"
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
name: Test Make Appsettings
2+
3+
on:
4+
push:
5+
branches-ignore:
6+
- 'main'
7+
- 'master'
8+
9+
permissions:
10+
contents: write
11+
actions: write
12+
13+
##env:
14+
15+
# # Permission
16+
# # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
17+
# # PACKAGES_TOKEN: ${{ secrets.NUGETKEY }}
18+
# # GITHUB_USERNAME: "Phil-NHS"
19+
20+
# # Nuget Set Up
21+
# TELBLAZOR_PACKAGE_LOCAL_OUTPUT_PATH: ${{ github.workspace }}/CICDPackageLocation
22+
# TELBLAZOR_PACKAGE_SOURCE: ${{ github.workspace }}/CICDPackageLocation
23+
# #TELBLAZOR_PACKAGE_SOURCE: "https://nuget.pkg.github.com/TechnologyEnhancedLearning/index.json"
24+
25+
# # Build Set Up
26+
# USE_TEL_BLAZOR_COMPONENTS_PROJECT_REFERENCE: false
27+
# DISABLE_PACKAGE_GENERATION: true
28+
# E2E_TRACING_ENABLED: false
29+
30+
# # Check Dummy Data
31+
# TELBLAZOR_PACKAGE_VERSION: "0.0.0-ci-checks"
32+
33+
34+
jobs:
35+
36+
make-appsettings-work-in-push-yml:
37+
name: app settings 2
38+
runs-on: ubuntu-latest
39+
steps:
40+
41+
- name: Checkout code
42+
uses: actions/checkout@v3
43+
continue-on-error: true
44+
45+
- name: Debug - Create temporary file with secret content
46+
run: |
47+
# Write the secret to a file
48+
echo '${{ secrets.FAKE_WASMSERVERHOST_APPSETTINGS_DEVELOPMENT }}' > appsettings.Development.json
49+
50+
# Display file content
51+
echo "File content:"
52+
cat appsettings.Development.json
53+
54+
# Validate if it's proper JSON
55+
echo "Validating JSON format:"
56+
if cat appsettings.Development.json | jq . >/dev/null 2>&1; then
57+
echo "✅ Valid JSON"
58+
echo "JSON structure:"
59+
cat appsettings.Development.json | jq .
60+
else
61+
echo "❌ Not valid JSON"
62+
fi
63+
continue-on-error: true

.github/workflows/pull_request.yml

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
# qqqq to do
2-
31
name: Pull Request Checks
42

53
on:
@@ -11,4 +9,9 @@ jobs:
119
name: Pull Request run CI Checks
1210
uses: ./.github/workflows/reuseable-ci-checks.yml
1311
with:
14-
runall: true
12+
runall: true
13+
secrets:
14+
UNITTESTS_APPSETTINGS_DEVELOPMENT: ${{ secrets.UNITTESTS_APPSETTINGS_DEVELOPMENT }}
15+
WASMSTATICCLIENT_APPSETTINGS_DEVELOPMENT: ${{ secrets.WASMSTATICCLIENT_APPSETTINGS_DEVELOPMENT }}
16+
WASMSERVERHOSTCLIENT_APPSETTINGS_DEVELOPMENT: ${{ secrets.WASMSERVERHOSTCLIENT_APPSETTINGS_DEVELOPMENT }}
17+
WASMSERVERHOST_APPSETTINGS_DEVELOPMENT: ${{ secrets.WASMSERVERHOST_APPSETTINGS_DEVELOPMENT }}

.github/workflows/release.yml

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,20 @@ jobs:
103103
- name: Replace local environment variable in nuget config because cant provide it as a parameter
104104
run: sed -i "s|%TELBlazorPackageSource%|$TELBLAZOR_PACKAGE_LOCAL_OUTPUT_PATH|g" nuget.config
105105

106+
- name: Create appsettings development from secrets
107+
run: |
108+
declare -A paths=(
109+
["./TELBlazor.Components.UnitTests/appsettings.Development.json"]="${{ secrets.UNITTESTS_APPSETTINGS_DEVELOPMENT }}"
110+
["./TELBlazor.Components.ShowCase.WasmStaticClient/wwwroot/appsettings.Development.json"]="${{ secrets.WASMSTATICCLIENT_APPSETTINGS_DEVELOPMENT }}"
111+
["./TELBlazor.Components.ShowCase.E2ETests.WasmServerHost/TELBlazor.Components.ShowCase.E2ETests.WasmServerHost.Client/wwwroot/appsettings.Development.json"]="${{ secrets.WASMSERVERHOSTCLIENT_APPSETTINGS_DEVELOPMENT }}"
112+
["./TELBlazor.Components.ShowCase.E2ETests.WasmServerHost/appsettings.Development.json"]="${{ secrets.WASMSERVERHOST_APPSETTINGS_DEVELOPMENT }}"
113+
)
114+
115+
for path in "${!paths[@]}"; do
116+
mkdir -p "$(dirname "$path")"
117+
printf '%s' "${paths[$path]}" > "$path"
118+
done
119+
106120
- name: Clean lock files because the newly generated package file will supersede the locks
107121
run: |
108122
find . -name "packages.lock.json" -type f -exec rm -f {} \;
@@ -160,7 +174,21 @@ jobs:
160174
sed -i "s|%GITHUB_USERNAME%|$GITHUB_USERNAME|g" nuget.config
161175
sed -i "s|%GITHUB_PACKAGES_TOKEN%|$PACKAGES_TOKEN |g" nuget.config
162176
163-
177+
178+
- name: Create appsettings development from secrets
179+
run: |
180+
declare -A paths=(
181+
["./TELBlazor.Components.UnitTests/appsettings.Development.json"]="${{ secrets.UNITTESTS_APPSETTINGS_DEVELOPMENT }}"
182+
["./TELBlazor.Components.ShowCase.WasmStaticClient/wwwroot/appsettings.Development.json"]="${{ secrets.WASMSTATICCLIENT_APPSETTINGS_DEVELOPMENT }}"
183+
["./TELBlazor.Components.ShowCase.E2ETests.WasmServerHost/TELBlazor.Components.ShowCase.E2ETests.WasmServerHost.Client/wwwroot/appsettings.Development.json"]="${{ secrets.WASMSERVERHOSTCLIENT_APPSETTINGS_DEVELOPMENT }}"
184+
["./TELBlazor.Components.ShowCase.E2ETests.WasmServerHost/appsettings.Development.json"]="${{ secrets.WASMSERVERHOST_APPSETTINGS_DEVELOPMENT }}"
185+
)
186+
187+
for path in "${!paths[@]}"; do
188+
mkdir -p "$(dirname "$path")"
189+
printf '%s' "${paths[$path]}" > "$path"
190+
done
191+
164192
- name: Clean lock files because the newly generated package file will supersede the locks
165193
run: |
166194
echo "Listing packages.lock.json files:"

.github/workflows/reuseable-ci-checks.yml

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

1122
env:
1223

@@ -27,10 +38,40 @@ env:
2738

2839
# Check Dummy Data
2940
TELBLAZOR_PACKAGE_VERSION: "0.0.0-ci-checks"
30-
41+
HEADLESS_TESTING: true
3142

3243
jobs:
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:
@@ -51,7 +92,21 @@ jobs:
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 {} \;
@@ -90,8 +145,8 @@ jobs:
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

Comments
 (0)