Skip to content

Commit 284759c

Browse files
authored
Merge pull request #9830 from bitfoundation/develop
Version 9.4.0 (#9806)
2 parents 7fda4df + 19d0519 commit 284759c

File tree

397 files changed

+8670
-3946
lines changed

Some content is hidden

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

397 files changed

+8670
-3946
lines changed

.devcontainer/devcontainer.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"hostRequirements": {
44
"cpus": 4
55
},
6-
"onCreateCommand": "wget https://download.visualstudio.microsoft.com/download/pr/d74fd2dd-3384-4952-924b-f5d492326e35/e91d8295d4cbe82ba3501e411d78c9b8/dotnet-sdk-9.0.101-linux-x64.tar.gz -O $HOME/dotnet.tar.gz && export DOTNET_ROOT=$HOME/.dotnet && mkdir -p \"$DOTNET_ROOT\" && tar zxf $HOME/dotnet.tar.gz -C \"$DOTNET_ROOT\" && export PATH=$DOTNET_ROOT:$DOTNET_ROOT/tools:$PATH && find . -type f -name '*.csproj' -exec sed -i 's/Microsoft.NET.Sdk.BlazorWebAssembly/Microsoft.NET.Sdk.Web/g' {} \\;",
6+
"onCreateCommand": "wget https://download.visualstudio.microsoft.com/download/pr/0e717d01-aad7-475a-8b67-50c59cf043b1/6eaa1c636e15ec8e1b97b3438360c770/dotnet-sdk-9.0.102-linux-x64.tar.gz -O $HOME/dotnet.tar.gz && export DOTNET_ROOT=$HOME/.dotnet && mkdir -p \"$DOTNET_ROOT\" && tar zxf $HOME/dotnet.tar.gz -C \"$DOTNET_ROOT\" && export PATH=$DOTNET_ROOT:$DOTNET_ROOT/tools:$PATH && find . -type f -name '*.csproj' -exec sed -i 's/Microsoft.NET.Sdk.BlazorWebAssembly/Microsoft.NET.Sdk.Web/g' {} \\;",
77
"waitFor": "onCreateCommand",
88
"customizations": {
99
"codespaces": {

.github/workflows/admin-sample.cd.yml

+10-10
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ jobs:
3535
cd src/Templates/Boilerplate && dotnet build -c Release
3636
dotnet pack -c Release -o . -p:ReleaseVersion=0.0.0 -p:PackageVersion=0.0.0
3737
dotnet new install Bit.Boilerplate.0.0.0.nupkg
38-
cd ../../../ && dotnet new bit-bp --name AdminPanel --database PostgreSQL --sample Admin --appInsights --sentry --apiServerUrl ${{ env.SERVER_ADDRESS }} --webAppUrl ${{ env.SERVER_ADDRESS }} --filesStorage AzureBlobStorage --notification --captcha reCaptcha --signalR --framework net9.0
38+
cd ../../../ && dotnet new bit-bp --name AdminPanel --database PostgreSQL --module Admin --appInsights --sentry --apiServerUrl ${{ env.SERVER_ADDRESS }} --webAppUrl ${{ env.SERVER_ADDRESS }} --filesStorage AzureBlobStorage --notification --captcha reCaptcha --signalR --framework net9.0
3939
4040
- name: Update core appsettings.json
4141
uses: devops-actions/[email protected]
@@ -51,7 +51,7 @@ jobs:
5151

5252
- uses: actions/setup-node@v4
5353
with:
54-
node-version: 22
54+
node-version: 23
5555

5656
- name: Install wasm
5757
run: cd src && dotnet workload install wasm-tools
@@ -88,7 +88,7 @@ jobs:
8888
cd src/Templates/Boilerplate && dotnet build -c Release
8989
dotnet pack -c Release -o . -p:ReleaseVersion=0.0.0 -p:PackageVersion=0.0.0
9090
dotnet new install Bit.Boilerplate.0.0.0.nupkg
91-
cd ../../../ && dotnet new bit-bp --name AdminPanel --database PostgreSQL --sample Admin --appInsights --sentry --apiServerUrl ${{ env.SERVER_ADDRESS }} --webAppUrl ${{ env.SERVER_ADDRESS }} --filesStorage AzureBlobStorage --notification --captcha reCaptcha --signalR --framework net9.0
91+
cd ../../../ && dotnet new bit-bp --name AdminPanel --database PostgreSQL --module Admin --appInsights --sentry --apiServerUrl ${{ env.SERVER_ADDRESS }} --webAppUrl ${{ env.SERVER_ADDRESS }} --filesStorage AzureBlobStorage --notification --captcha reCaptcha --signalR --framework net9.0
9292
9393
- name: Update core appsettings.json
9494
uses: devops-actions/[email protected]
@@ -103,7 +103,7 @@ jobs:
103103

104104
- uses: actions/setup-node@v4
105105
with:
106-
node-version: 22
106+
node-version: 23
107107

108108
- name: Install wasm
109109
run: cd src && dotnet workload install wasm-tools
@@ -179,14 +179,14 @@ jobs:
179179

180180
- uses: actions/setup-node@v4
181181
with:
182-
node-version: 22
182+
node-version: 23
183183

184184
- name: Create project from Boilerplate
185185
run: |
186186
cd src\Templates\Boilerplate && dotnet build -c Release
187187
dotnet pack -c Release -o . -p:ReleaseVersion=0.0.0 -p:PackageVersion=0.0.0
188188
dotnet new install Bit.Boilerplate.0.0.0.nupkg
189-
cd ..\..\..\ && dotnet new bit-bp --name AdminPanel --database PostgreSQL --sample Admin --windows --appInsights --sentry --apiServerUrl ${{ env.SERVER_ADDRESS }} --webAppUrl ${{ env.SERVER_ADDRESS }} --filesStorage AzureBlobStorage --captcha reCaptcha --signalR --framework net9.0
189+
cd ..\..\..\ && dotnet new bit-bp --name AdminPanel --database PostgreSQL --module Admin --windows --appInsights --sentry --apiServerUrl ${{ env.SERVER_ADDRESS }} --webAppUrl ${{ env.SERVER_ADDRESS }} --filesStorage AzureBlobStorage --captcha reCaptcha --signalR --framework net9.0
190190
191191
- name: Update core appsettings.json
192192
uses: devops-actions/[email protected]
@@ -235,11 +235,11 @@ jobs:
235235
cd src/Templates/Boilerplate && dotnet build -c Release
236236
dotnet pack -c Release -o . -p:ReleaseVersion=0.0.0 -p:PackageVersion=0.0.0
237237
dotnet new install Bit.Boilerplate.0.0.0.nupkg
238-
cd ../../../ && dotnet new bit-bp --name AdminPanel --database PostgreSQL --sample Admin --appInsights --sentry --apiServerUrl ${{ env.SERVER_ADDRESS }} --webAppUrl ${{ env.SERVER_ADDRESS }} --filesStorage AzureBlobStorage --notification --captcha reCaptcha --signalR --framework net9.0
238+
cd ../../../ && dotnet new bit-bp --name AdminPanel --database PostgreSQL --module Admin --appInsights --sentry --apiServerUrl ${{ env.SERVER_ADDRESS }} --webAppUrl ${{ env.SERVER_ADDRESS }} --filesStorage AzureBlobStorage --notification --captcha reCaptcha --signalR --framework net9.0
239239
240240
- uses: actions/setup-node@v4
241241
with:
242-
node-version: 22
242+
node-version: 23
243243

244244
- name: Extract Android signing key from env
245245
uses: timheuer/[email protected]
@@ -306,14 +306,14 @@ jobs:
306306

307307
- uses: actions/setup-node@v4
308308
with:
309-
node-version: 22
309+
node-version: 23
310310

311311
- name: Create project from Boilerplate
312312
run: |
313313
cd src/Templates/Boilerplate && dotnet build -c Release
314314
dotnet pack -c Release -o . -p:ReleaseVersion=0.0.0 -p:PackageVersion=0.0.0
315315
dotnet new install Bit.Boilerplate.0.0.0.nupkg
316-
cd ../../../ && dotnet new bit-bp --name AdminPanel --database PostgreSQL --sample Admin --appInsights --sentry --apiServerUrl ${{ env.SERVER_ADDRESS }} --webAppUrl ${{ env.SERVER_ADDRESS }} --filesStorage AzureBlobStorage --notification --captcha reCaptcha --signalR --framework net9.0
316+
cd ../../../ && dotnet new bit-bp --name AdminPanel --database PostgreSQL --module Admin --appInsights --sentry --apiServerUrl ${{ env.SERVER_ADDRESS }} --webAppUrl ${{ env.SERVER_ADDRESS }} --filesStorage AzureBlobStorage --notification --captcha reCaptcha --signalR --framework net9.0
317317
318318
- name: Update core appsettings.json
319319
uses: devops-actions/[email protected]

.github/workflows/bit.ci.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ jobs:
2828
2929
- uses: actions/setup-node@v4
3030
with:
31-
node-version: 22
31+
node-version: 23
3232

3333
- name: Install wasm and maui
3434
run: cd src && dotnet workload install maui-android wasm-tools wasm-tools-net8
@@ -66,7 +66,7 @@ jobs:
6666
6767
- uses: actions/setup-node@v4
6868
with:
69-
node-version: 22
69+
node-version: 23
7070

7171
- name: Install wasm and maui
7272
run: cd src && dotnet workload install maui-android wasm-tools wasm-tools-net8

.github/workflows/bit.full.ci.yml

+12-18
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ jobs:
3434
3535
- uses: actions/setup-node@v4
3636
with:
37-
node-version: 22
37+
node-version: 23
3838

3939
- name: Uninstall Bit.Boilerplate if running on ACT
4040
continue-on-error: true
@@ -90,8 +90,8 @@ jobs:
9090
cd ../../Tests
9191
dotnet build
9292
pwsh bin/Debug/net9.0/playwright.ps1 install --with-deps
93-
dotnet test --logger GitHubActions --filter "${{ env.BLAZOR_SERVER_TEST_FILTER }}"
94-
dotnet test --logger GitHubActions --filter "${{ env.BLAZOR_WASM_TEST_FILTER }}" -- MSTest.Parallelize.Workers=1
93+
# dotnet test --logger GitHubActions --filter "${{ env.BLAZOR_SERVER_TEST_FILTER }}"
94+
# dotnet test --logger GitHubActions --filter "${{ env.BLAZOR_WASM_TEST_FILTER }}" -- MSTest.Parallelize.Workers=1
9595
9696
- name: Upload Tests Artifact
9797
uses: actions/[email protected]
@@ -111,8 +111,8 @@ jobs:
111111
dotnet ef migrations add InitialMigration --verbose
112112
dotnet ef database update
113113
cd ../../Tests
114-
dotnet test --logger GitHubActions --filter "${{ env.BLAZOR_SERVER_TEST_FILTER }}"
115-
dotnet test --logger GitHubActions --filter "${{ env.BLAZOR_WASM_TEST_FILTER }}" -- MSTest.Parallelize.Workers=1
114+
# dotnet test --logger GitHubActions --filter "${{ env.BLAZOR_SERVER_TEST_FILTER }}"
115+
# dotnet test --logger GitHubActions --filter "${{ env.BLAZOR_WASM_TEST_FILTER }}" -- MSTest.Parallelize.Workers=1
116116
117117
- name: Upload Tests Artifact
118118
uses: actions/[email protected]
@@ -132,7 +132,7 @@ jobs:
132132
dotnet ef migrations add InitialMigration --verbose
133133
dotnet ef database update
134134
cd ../../Tests
135-
dotnet test -p:MultilingualEnabled=false --logger GitHubActions --filter "${{ env.MULTILINGUAL_DISABLED_TEST_FILTER }}" -- MSTest.Parallelize.Workers=1
135+
# dotnet test -p:MultilingualEnabled=false --logger GitHubActions --filter "${{ env.MULTILINGUAL_DISABLED_TEST_FILTER }}" -- MSTest.Parallelize.Workers=1
136136
137137
- name: Upload Tests Artifact
138138
uses: actions/[email protected]
@@ -145,15 +145,15 @@ jobs:
145145
- name: Test PostgreSQL, MySql, Other database options
146146
continue-on-error: true
147147
run: |
148-
dotnet new bit-bp --name TestPostgreSQL --database PostgreSQL --framework net8.0 --signalR
148+
dotnet new bit-bp --name TestPostgreSQL --database PostgreSQL --framework net8.0 --module Sales --signalR
149149
cd TestPostgreSQL/src/Server/TestPostgreSQL.Server.Web/
150150
dotnet build
151151
cd ../../../../
152-
dotnet new bit-bp --name TestMySql --database MySql --framework net8.0 --sample Admin --offlineDb
152+
dotnet new bit-bp --name TestMySql --database MySql --framework net8.0 --module Admin --offlineDb
153153
cd TestMySql/src/Server/TestMySql.Server.Web/
154154
dotnet build
155155
cd ../../../../
156-
dotnet new bit-bp --name TestOther --database Other --framework net9.0 --sample Todo --sentry
156+
dotnet new bit-bp --name TestOther --database Other --framework net9.0 --sample --sentry
157157
cd TestOther/src/Server/TestOther.Server.Web/
158158
dotnet build
159159
@@ -172,7 +172,7 @@ jobs:
172172
continue-on-error: true
173173
run: |
174174
dotnet new bit-bp --name TestStandalone --api Standalone --framework net8.0
175-
cd TestStandalone/src/Server/TestStandalone.Server.Web/
175+
cd TestStandalone/src/Server/TestStandalone.Server.Api/
176176
dotnet build
177177
cd ../
178178
cd TestStandalone.Server.Web/
@@ -185,13 +185,13 @@ jobs:
185185
- name: Test sample configuration 1
186186
continue-on-error: true
187187
run: |
188-
dotnet new bit-bp --name TestProject --database SqlServer --filesStorage AzureBlobStorage --api Integrated --captcha reCaptcha --pipeline Azure --sample Admin --offlineDb --windows --appInsights --sentry --signalR --notification --framework net9.0
188+
dotnet new bit-bp --name TestProject --database SqlServer --filesStorage AzureBlobStorage --api Integrated --captcha reCaptcha --pipeline Azure --module Admin --offlineDb --windows --appInsights --sentry --signalR --notification --cloudflare --framework net9.0
189189
dotnet build TestProject/TestProject.sln -p:MultilingualEnabled=true -p:PwaEnabled=true -p:Environment=Staging
190190
191191
- name: Test sample configuration 2
192192
continue-on-error: true
193193
run: |
194-
dotnet new bit-bp --name TestProject2 --database Other --filesStorage Other --api Standalone --captcha None --pipeline None --sample None --offlineDb false --windows false --appInsights false --sentry false --signalR false --notification false --framework net8.0
194+
dotnet new bit-bp --name TestProject2 --database Other --filesStorage Other --api Standalone --captcha None --pipeline None --module None --offlineDb false --windows false --appInsights false --sentry false --signalR false --notification false --cloudflare false --framework net8.0
195195
dotnet build TestProject2/TestProject2.sln -p:MultilingualEnabled=false -p:PwaEnabled=false -p:Environment=Development
196196
197197
- name: Run BeforeBuildTasks
@@ -207,12 +207,6 @@ jobs:
207207
dotnet build src/Websites/Careers/Bit.Websites.Careers.sln
208208
dotnet build src/Websites/Sales/Bit.Websites.Sales.sln
209209
210-
- name: Run bit blazor ui tests
211-
run: dotnet test src/BlazorUI/Bit.BlazorUI.Tests/Bit.BlazorUI.Tests.csproj
212-
213-
- name: Build bit blazor ui demo
214-
run: dotnet build src/BlazorUI/Bit.BlazorUI.sln
215-
216210
- name: Create projects from BlazorEmpty project template with different parameters
217211
run: |
218212
cd src/Templates/BlazorEmpty && dotnet build -c Release

.github/workflows/blazorui.demo.cd.yml

+4-4
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ jobs:
3737

3838
- uses: actions/setup-node@v4
3939
with:
40-
node-version: 22
40+
node-version: 23
4141

4242
- name: Install wasm
4343
run: cd src && dotnet workload install wasm-tools
@@ -104,7 +104,7 @@ jobs:
104104

105105
- uses: actions/setup-node@v4
106106
with:
107-
node-version: 22
107+
node-version: 23
108108

109109
- name: Update appsettings.json api server address
110110
uses: devops-actions/[email protected]
@@ -146,7 +146,7 @@ jobs:
146146

147147
- uses: actions/setup-node@v4
148148
with:
149-
node-version: 22
149+
node-version: 23
150150

151151
- name: Extract Android signing key from env
152152
uses: timheuer/[email protected]
@@ -200,7 +200,7 @@ jobs:
200200

201201
- uses: actions/setup-node@v4
202202
with:
203-
node-version: 22
203+
node-version: 23
204204

205205
- name: Update appsettings.json api server address
206206
uses: devops-actions/[email protected]

.github/workflows/nuget.org.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ jobs:
3131

3232
- uses: actions/setup-node@v4
3333
with:
34-
node-version: 22
34+
node-version: 23
3535

3636
- name: Delete AssemblyOriginatorKeyFile.snk
3737
run: |

.github/workflows/prerelease.nuget.org.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ jobs:
2121

2222
- uses: actions/setup-node@v4
2323
with:
24-
node-version: 22
24+
node-version: 23
2525

2626
- name: Delete AssemblyOriginatorKeyFile.snk
2727
run: |
+117
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,117 @@
1+
name: Sales module demo CD
2+
3+
# Project templates come equipped with CI/CD for both Azure DevOps and GitHub, providing you with a hassle-free way to get started with your new project. It is important to note that you should not depend on the contents of this file. More info at https://bitplatform.dev/templates/dev-ops
4+
5+
env:
6+
SERVER_ADDRESS: 'https://sales.bitplatform.dev'
7+
8+
on:
9+
workflow_dispatch:
10+
push:
11+
branches: [ "main" ]
12+
13+
permissions:
14+
contents: read
15+
16+
jobs:
17+
18+
build_api_blazor:
19+
name: build api + blazor web
20+
runs-on: ubuntu-24.04
21+
22+
steps:
23+
24+
- name: Checkout source code
25+
uses: actions/checkout@v4
26+
27+
- name: Setup .NET
28+
uses: actions/setup-dotnet@v4
29+
with:
30+
global-json-file: src/global.json
31+
32+
- uses: actions/setup-node@v4
33+
with:
34+
node-version: 23
35+
36+
- name: Create project from Boilerplate
37+
run: |
38+
cd src/Templates/Boilerplate && dotnet build -c Release
39+
dotnet pack -c Release -o . -p:ReleaseVersion=0.0.0 -p:PackageVersion=0.0.0
40+
dotnet new install Bit.Boilerplate.0.0.0.nupkg
41+
cd ../../../ && dotnet new bit-bp --name SalesModule --database PostgreSQL --module Sales --appInsights --apiServerUrl ${{ env.SERVER_ADDRESS }} --webAppUrl ${{ env.SERVER_ADDRESS }} --filesStorage AzureBlobStorage --notification --captcha reCaptcha --framework net9.0
42+
43+
- name: Update core appsettings.json
44+
uses: devops-actions/[email protected]
45+
with:
46+
files: 'SalesModule/src/Shared/appsettings.json, SalesModule/src/Client/SalesModule.Client.Core/appsettings.json, SalesModule/src/Client/SalesModule.Client.Web/appsettings.json, SalesModule/src/Client/SalesModule.Client.Web/appsettings.Production.json'
47+
env:
48+
WebAppRender.PrerenderEnabled: true
49+
ServerAddress: /
50+
WebAppRender.BlazorMode: BlazorWebAssembly
51+
AdsPushVapid.PublicKey: ${{ secrets.SALES_PUBLIC_VAPIDKEY }}
52+
GoogleRecaptchaSiteKey: ${{ secrets.GOOGLE_RECAPTCHA_SITE_KEY }}
53+
ApplicationInsights.ConnectionString: ${{ secrets.APPLICATION_INSIGHTS_CONNECTION_STRING }}
54+
55+
- name: Install wasm
56+
run: cd src && dotnet workload install wasm-tools
57+
58+
- name: Configure bswup
59+
run: |
60+
sed -i 's/\/\/ self.disablePassiveFirstBoot/self.disablePassiveFirstBoot/g' SalesModule/src/Client/SalesModule.Client.Web/wwwroot/service-worker.published.js
61+
62+
- name: Generate CSS/JS files
63+
run: dotnet build SalesModule/src/Client/SalesModule.Client.Core/SalesModule.Client.Core.csproj -t:BeforeBuildTasks -p:Version="${{ vars.APPLICATION_DISPLAY_VERSION}}" -p:MultilingualEnabled=false --no-restore -c Release
64+
65+
- name: Publish
66+
run: dotnet publish SalesModule/src/Server/SalesModule.Server.Web/SalesModule.Server.Web.csproj -c Release -p:PwaEnabled=true --self-contained -r linux-x64 -o ${{env.DOTNET_ROOT}}/server -p:Version="${{ vars.APPLICATION_DISPLAY_VERSION}}" -p:MultilingualEnabled=false
67+
68+
- name: Upload server artifact
69+
uses: actions/upload-artifact@v4
70+
with:
71+
name: server-bundle
72+
path: ${{env.DOTNET_ROOT}}/server
73+
include-hidden-files: true # Required for wwwroot/.well-known folder
74+
75+
deploy_api_blazor:
76+
name: deploy api + blazor
77+
needs: build_api_blazor
78+
runs-on: ubuntu-24.04
79+
environment:
80+
name: 'production'
81+
url: ${{ steps.deploy-to-webapp.outputs.webapp-url }}
82+
83+
steps:
84+
85+
- name: Retrieve server bundle
86+
uses: actions/download-artifact@v4
87+
with:
88+
name: server-bundle
89+
90+
- name: Delete DataProtectionCertificate.pfx
91+
run: |
92+
rm DataProtectionCertificate.pfx
93+
94+
- name: Extract identity certificate from env
95+
uses: timheuer/[email protected]
96+
with:
97+
fileDir: './'
98+
fileName: 'DataProtectionCertificate.pfx'
99+
encodedString: ${{ secrets.API_DATA_PROTECTION_CERTIFICATE_FILE_BASE64 }}
100+
101+
# - name: Retrieve AppleAuthKey.p8
102+
# run: echo "${{ secrets.APPSTORE_API_KEY_PRIVATE_KEY_SALES }}" > AppleAuthKey.p8
103+
104+
- name: Deploy to Azure Web App
105+
id: deploy-to-webapp
106+
uses: azure/webapps-deploy@v3
107+
with:
108+
app-name: 'bit-sales'
109+
slot-name: 'production'
110+
publish-profile: ${{ secrets.SALES_AZURE_APP_SERVICE_PUBLISH_PROFILE }}
111+
package: .
112+
113+
- name: Purge cache
114+
uses: jakejarvis/[email protected]
115+
env:
116+
CLOUDFLARE_ZONE: ${{ secrets.BITPLATFORM_DEV_CLOUDFLARE_ZONE }}
117+
CLOUDFLARE_TOKEN: ${{ secrets.CLOUDFLARE_TOKEN }}

0 commit comments

Comments
 (0)