@positron-js/cli 1.0.6 → 1.0.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/README.md +10 -2
  2. package/content/app/PositronApp/PositronApp.csproj +37 -21
  3. package/content/build-android.js +53 -0
  4. package/content/build-android.js.map +1 -0
  5. package/{build-android.jsx → content/build-android.jsx} +90 -85
  6. package/{build-ios.jsx → content/build-ios.jsx} +110 -107
  7. package/content/common.jsx +85 -0
  8. package/content/common.jsx.mjs +74 -0
  9. package/dist/AppInfo.d.ts.map +1 -1
  10. package/dist/cli.js +1 -1
  11. package/dist/cli.js.map +1 -1
  12. package/dist/commands/init/init.js +4 -10
  13. package/dist/commands/init/init.js.map +1 -1
  14. package/dist/commands/sync/sync.js.map +1 -1
  15. package/dist/core/LocalFile.js.map +1 -1
  16. package/dist/cwd/cwd.d.ts +2 -2
  17. package/dist/cwd/cwd.d.ts.map +1 -1
  18. package/dist/cwd/cwd.js.map +1 -1
  19. package/dist/tsconfig.tsbuildinfo +1 -1
  20. package/package.json +7 -3
  21. package/src/cli.ts +1 -1
  22. package/src/commands/init/init.ts +4 -12
  23. package/src/commands/sync/sync.ts +2 -2
  24. package/src/core/LocalFile.ts +1 -1
  25. package/src/cwd/cwd.ts +2 -2
  26. package/{build-android.config.js → template/build-android.config.js} +29 -29
  27. package/{build-ios.config.js → template/build-ios.config.js} +26 -26
  28. package/template/cert/android.keystore +1 -0
  29. package/template/cert/ios-app.mobileprovision +1 -0
  30. package/template/cert/ios-distribution.p12 +1 -0
  31. package/template/config/google-services.json +3 -0
  32. package/template/privacy-policy.md +1 -0
  33. package/template/res/app-icon-background.svg +42 -0
  34. package/template/res/app-icon.droid.svg +41 -0
  35. package/template/res/app-icon.ios.svg +41 -0
  36. package/template/res/splash.svg +41 -0
  37. package/tests/android/README.md +2 -0
  38. package/tests/android/build-android.config.js +30 -0
  39. package/tests/android/config/google-services.json +3 -0
  40. package/tests/android/package-lock.json +12 -0
  41. package/tests/android/package.json +4 -0
  42. package/tests/android/res/app-icon-background.svg +42 -0
  43. package/tests/android/res/app-icon.droid.svg +41 -0
  44. package/tests/android/res/app-icon.ios.svg +41 -0
  45. package/tests/android/res/splash.svg +41 -0
  46. package/tsconfig.json +1 -1
  47. package/content/app/PositronApp/Resources/Images/dotnet_bot.svg +0 -8
package/README.md CHANGED
@@ -1,3 +1,11 @@
1
- # CLI Interface for Positron-JS
1
+ # Installation
2
2
 
3
- Please read https://github.com/Positron-JS/positron-web-view on how to use.
3
+ ## init
4
+ ```
5
+ npx @positron-js/cli init
6
+ ```
7
+
8
+ ## build
9
+ ```
10
+ npx @neurospeech/jex /node_modules/@positron-js/cli/content/build-android.jsx
11
+ ```
@@ -1,7 +1,7 @@
1
1
  <Project Sdk="Microsoft.NET.Sdk">
2
2
 
3
3
  <PropertyGroup>
4
- <TargetFrameworks>net8.0-ios;net8.0-android34.0;</TargetFrameworks>
4
+ <TargetFrameworks>net10.0-ios;net10.0-android;</TargetFrameworks>
5
5
  <!--<TargetFrameworks Condition="$([MSBuild]::IsOSPlatform('windows')) and '$(MSBuildRuntimeType)' == 'Full'">$(TargetFrameworks);net7.0-windows10.0.19041</TargetFrameworks> -->
6
6
  <!-- Uncomment to also build the tizen app. You will need to install tizen by following this: https://github.com/Samsung/Tizen.NET -->
7
7
  <!-- <TargetFrameworks>$(TargetFrameworks);net6.0-tizen</TargetFrameworks> -->
@@ -26,7 +26,7 @@
26
26
 
27
27
  <SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'ios'">16.0</SupportedOSPlatformVersion>
28
28
  <SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'maccatalyst'">11</SupportedOSPlatformVersion>
29
- <SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'android'">21</SupportedOSPlatformVersion>
29
+ <SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'android'">24</SupportedOSPlatformVersion>
30
30
  <SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'windows'">7.0</SupportedOSPlatformVersion>
31
31
  <TargetPlatformMinVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'windows'">7.0</TargetPlatformMinVersion>
32
32
  <SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'tizen'">8.0</SupportedOSPlatformVersion>
@@ -42,7 +42,7 @@
42
42
  <RuntimeIdentifier>ios-arm64</RuntimeIdentifier>
43
43
  <ArchiveOnBuild>true</ArchiveOnBuild>
44
44
  </PropertyGroup>
45
- <PropertyGroup Condition="'$(TargetFramework)'=='net8.0-ios'">
45
+ <PropertyGroup Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'ios'">
46
46
  <UseInterpreter>true</UseInterpreter>
47
47
  <MTouchInterpreter>all</MTouchInterpreter>
48
48
  <MtouchLink>None</MtouchLink>
@@ -52,24 +52,39 @@
52
52
  </PropertyGroup>
53
53
 
54
54
  <ItemGroup>
55
- <PackageReference Include="NeuroSpeech.Positron" Version="1.2.14"/>
56
- <PackageReference Include="Microsoft.Maui.Controls" Version="8.0.80"/>
57
- <PackageReference Update="Microsoft.Maui.Controls.Compatibility" Version="8.0.80"/>
58
- <PackageReference Include="Microsoft.Maui.Essentials" Version="8.0.80" />
59
- <PackageReference Include="Microsoft.Extensions.Configuration.Binder" Version="8.0.2"/>
60
- <PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="8.0.0"/>
55
+ <PackageReference Include="NeuroSpeech.Positron" Version="1.2.33" />
56
+ <PackageReference Include="Plugin.Maui.CalendarStore" Version="4.0.0" />
57
+ <PackageReference Include="Microsoft.Maui.Controls" Version="10.0.31" />
58
+ <PackageReference Update="Microsoft.Maui.Controls.Compatibility" Version="10.0.31" />
59
+ <PackageReference Include="Microsoft.Maui.Essentials" Version="10.0.31" />
60
+ <PackageReference Include="Microsoft.Extensions.Configuration.Binder" Version="10.0.2" />
61
+ <PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="10.0.2" />
61
62
  </ItemGroup>
62
63
 
64
+ <ItemGroup Condition="$(TargetFramework.Contains('-ios'))">
65
+ <MauiIcon
66
+ Include="Resources\AppIcon\appicon.svg"
67
+ ForegroundFile="Resources\AppIcon\appicon.ios.svg"
68
+ Color="$(MAUI_ICON_IOS_COLOR)"
69
+ />
70
+ </ItemGroup>
71
+ <ItemGroup Condition="$(TargetFramework.Contains('-android'))">
72
+ <MauiIcon
73
+ Include="Resources\AppIcon\appicon.svg"
74
+ ForegroundFile="Resources\AppIcon\appicon.droid.svg"
75
+ Color="$(MAUI_ICON_DROID_COLOR)" />
76
+ </ItemGroup>
77
+
63
78
  <ItemGroup>
64
- <!-- App Icon -->
65
- <MauiIcon Include="Resources\AppIcon\appicon.svg" ForegroundFile="Resources\AppIcon\appiconfg.svg" Color="#512BD4" />
66
-
79
+
67
80
  <!-- Splash Screen -->
68
- <MauiSplashScreen Include="Resources\Splash\splash.svg" Color="#512BD4" BaseSize="128,128" />
81
+ <MauiSplashScreen
82
+ Include="Resources\Splash\splash.svg"
83
+ Color="$(MAUI_SPLASH_SCREEN_COLOR)"
84
+ BaseSize="$(MAUI_SPLASH_BASE_SIZE)" />
69
85
 
70
86
  <!-- Images -->
71
- <MauiImage Include="Resources\Images\*" />
72
- <MauiImage Update="Resources\Images\dotnet_bot.svg" BaseSize="168,208" />
87
+ <MauiImage Include="Resources\Images\*" />
73
88
 
74
89
  <!-- Custom Fonts -->
75
90
  <MauiFont Include="Resources\Fonts\*" />
@@ -81,12 +96,13 @@
81
96
  <ItemGroup Condition="$(TargetFramework.Contains('-android'))">
82
97
 
83
98
  <!-- <PackageReference Include="Xamarin.GooglePlayServices.Location" Version="121.0.1.4" /> -->
84
- <PackageReference Include="Xamarin.AndroidX.Collection" Version="1.4.2" />
85
- <PackageReference Include="Xamarin.AndroidX.Collection.Ktx" Version="1.4.2" />
86
-
87
- <PackageReference Include="Xamarin.AndroidX.Activity" Version="1.9.1" />
88
- <PackageReference Include="Xamarin.AndroidX.Activity.Ktx" Version="1.9.1" />
89
- <PackageReference Include="Xamarin.AndroidX.Fragment.Ktx" Version="1.8.2" />
99
+ <PackageReference Include="Xamarin.AndroidX.Collection" Version="1.5.0.4" />
100
+ <PackageReference Include="Xamarin.AndroidX.Collection.Ktx" Version="1.5.0.4" />
101
+ <PackageReference Include="Xamarin.AndroidX.SavedState" Version="1.4.0.1" />
102
+ <PackageReference Include="Xamarin.AndroidX.SavedState.SavedState.Android" Version="1.4.0.1" />
103
+ <PackageReference Include="Xamarin.AndroidX.Activity" Version="1.12.2.1" />
104
+ <PackageReference Include="Xamarin.AndroidX.Activity.Ktx" Version="1.12.2.1" />
105
+ <PackageReference Include="Xamarin.AndroidX.Fragment.Ktx" Version="1.8.9.1" />
90
106
 
91
107
  <!-- <GoogleServicesJson Include="config\google-services.json" /> -->
92
108
  </ItemGroup>
@@ -0,0 +1,53 @@
1
+ import XNode from "@neurospeech/jex/dist/core/XNode.js";
2
+ import { invoke, Batch, Run, mask } from "@neurospeech/jex/index.js";
3
+ import { FileSystem } from "@neurospeech/jex/dist/utils/FileSystem.js";
4
+ import { PlayStore } from "@neurospeech/jex/dist/ci/android/PlayStore.js";
5
+ import { Build } from "@neurospeech/jex/dist/ci/build/Build.js";
6
+ import assert from "assert";
7
+ import { Common } from "./common.js";
8
+ import configs from "../build-android.config.js";
9
+ let applicationDisplayVersion;
10
+ let applicationVersion;
11
+ for (const config of configs) {
12
+ if (!config) {
13
+ continue;
14
+ }
15
+ await invoke(XNode.create(Batch, null, () => "\n\n ", () => "\n\n ", () => XNode.create(Build.PrepareVersion, {
16
+ mode: config.buildNumber,
17
+ then: x => (applicationDisplayVersion = `${x.major}.${x.minor}`, applicationVersion = x.build),
18
+ location: "D:\\git\\github\\positron\\cli\\content\\build-android.jsx 27,8"
19
+ }), () => "\n\n ", () => XNode.create(Common.PreBuild, {
20
+ positronAppDir: positronAppDir,
21
+ location: "D:\\git\\github\\positron\\cli\\content\\build-android.jsx 32,8"
22
+ }), () => "\n\n ", () => XNode.create(FileSystem.MergeJson, {
23
+ json: {
24
+ App: {
25
+ Url: config.url
26
+ }
27
+ },
28
+ path: "./maui/PositronApp/appsettings.json",
29
+ location: "D:\\git\\github\\positron\\cli\\content\\build-android.jsx 34,8"
30
+ }), () => "\n\n ", () => (assert(applicationDisplayVersion), null), () => "\n ", () => (assert(applicationVersion), null), () => "\n\n ", () => XNode.create(Run, {
31
+ cmd: "dotnet",
32
+ timeout: 300000,
33
+ args: "workload install maui",
34
+ location: "D:\\git\\github\\positron\\cli\\content\\build-android.jsx 46,8"
35
+ }), () => "\n\n ", () => XNode.create(Run, {
36
+ cmd: "dotnet",
37
+ timeout: 300000,
38
+ args: "workload install android",
39
+ location: "D:\\git\\github\\positron\\cli\\content\\build-android.jsx 52,8"
40
+ }), () => "\n\n \n ", () => XNode.create(Run, {
41
+ cmd: "dotnet",
42
+ timeout: 240000,
43
+ logData: true,
44
+ args: ["publish", "-f", config.targetFramework, "-c", "Release", `/p:ApplicationId=${config.id}`, `/p:ApplicationTitle=${config.name}`, `/p:ApplicationVersion=${applicationVersion}`, `/p:ApplicationDisplayVersion=${applicationDisplayVersion}`, "/p:AndroidKeyStore=true", `/p:AndroidSigningKeyAlias=${config.androidSigningKeyAlias}`, `/p:AndroidSigningKeyStore=${config.androidKeyStore}`, mask`/p:AndroidSigningStorePass=${config.androidKeyStorePassword}`, mask`/p:AndroidSigningKeyPass=${config.androidKeyStorePassword}`, config.androidSdkRoot ? `/p:AndroidSdkPath=${config.androidSdkRoot}` : void 0, config.javaHome ? `/p:JavaSdkDirectory=${config.javaHome}` : void 0, "./maui/PositronApp/PositronApp.csproj"],
45
+ location: "D:\\git\\github\\positron\\cli\\content\\build-android.jsx 59,8"
46
+ }), () => "\n\n ", () => XNode.create(PlayStore.Upload, {
47
+ packageName: config.id,
48
+ releaseFiles: [`./maui/PositronApp/bin/Release/${config.targetFramework}/publish/*-Signed.apk`],
49
+ serviceAccountJsonRaw: config.serviceAccountJsonRaw,
50
+ serviceAccountJson: config.serviceAccountJson,
51
+ location: "D:\\git\\github\\positron\\cli\\content\\build-android.jsx 80,8"
52
+ }), () => "\n\n "));
53
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"names":["XNode","invoke","Batch","Run","mask","FileSystem","PlayStore","Build","assert","Common","configs","applicationDisplayVersion","applicationVersion","config","create","PrepareVersion","mode","buildNumber","then","x","major","minor","build","location","PreBuild","positronAppDir","MergeJson","json","App","Url","url","path","cmd","timeout","args","logData","targetFramework","id","name","androidSigningKeyAlias","androidKeyStore","androidKeyStorePassword","androidSdkRoot","javaHome","Upload","packageName","releaseFiles","serviceAccountJsonRaw","serviceAccountJson"],"sources":["build-android.jsx"],"sourcesContent":["import XNode from \"@neurospeech/jex/dist/core/XNode.js\";import { invoke, Batch, Run, mask } from \"@neurospeech/jex/index.js\";\r\nimport { FileSystem } from \"@neurospeech/jex/dist/utils/FileSystem.js\";\r\nimport { PlayStore } from \"@neurospeech/jex/dist/ci/android/PlayStore.js\";\r\nimport { Build } from \"@neurospeech/jex/dist/ci/build/Build.js\";\r\nimport assert from \"assert\";\r\nimport { Common } from \"./common.jsx\";\r\n\r\nimport configs from \"../build-android.config.js\";\r\n\r\nlet applicationDisplayVersion;\r\nlet applicationVersion;\r\n\r\nfor(const config of configs) {\r\n\r\n if (!config) {\r\n continue;\r\n }\r\n\r\n await invoke(<Batch>\r\n\r\n {/* <Run\r\n cmd=\"dotnet\"\r\n throwOnFail={false}\r\n args=\"nuget locals all --clear\"\r\n /> */}\r\n\r\n <Build.PrepareVersion\r\n mode={config.buildNumber}\r\n then={(x) => (applicationDisplayVersion = `${x.major}.${x.minor}`, applicationVersion = x.build)}\r\n />\r\n\r\n <Common.PreBuild positronAppDir={positronAppDir} />\r\n\r\n <FileSystem.MergeJson\r\n json={({\r\n App: {\r\n Url: config.url\r\n }\r\n })}\r\n path=\"./maui/PositronApp/appsettings.json\"\r\n />\r\n\r\n { assert(applicationDisplayVersion) }\r\n { assert(applicationVersion) }\r\n\r\n <Run\r\n cmd=\"dotnet\"\r\n timeout={300000}\r\n args=\"workload install maui\"\r\n />\r\n\r\n <Run\r\n cmd=\"dotnet\"\r\n timeout={300000}\r\n args=\"workload install android\"\r\n />\r\n\r\n \r\n <Run\r\n cmd=\"dotnet\"\r\n timeout={240000}\r\n logData={true}\r\n args={[\"publish\",\r\n \"-f\", config.targetFramework,\r\n \"-c\", \"Release\",\r\n `/p:ApplicationId=${config.id}`,\r\n `/p:ApplicationTitle=${config.name}`,\r\n `/p:ApplicationVersion=${applicationVersion}`,\r\n `/p:ApplicationDisplayVersion=${applicationDisplayVersion}`,\r\n \"/p:AndroidKeyStore=true\",\r\n `/p:AndroidSigningKeyAlias=${config.androidSigningKeyAlias}`,\r\n `/p:AndroidSigningKeyStore=${config.androidKeyStore}`,\r\n mask `/p:AndroidSigningStorePass=${config.androidKeyStorePassword}`,\r\n mask `/p:AndroidSigningKeyPass=${config.androidKeyStorePassword}`,\r\n config.androidSdkRoot ? `/p:AndroidSdkPath=${config.androidSdkRoot}` : void 0,\r\n config.javaHome ? `/p:JavaSdkDirectory=${config.javaHome}`: void 0,\r\n \"./maui/PositronApp/PositronApp.csproj\"]}\r\n />\r\n\r\n <PlayStore.Upload\r\n packageName={config.id}\r\n releaseFiles={[`./maui/PositronApp/bin/Release/${config.targetFramework}/publish/*-Signed.apk`]}\r\n serviceAccountJsonRaw={config.serviceAccountJsonRaw}\r\n serviceAccountJson={config.serviceAccountJson}\r\n />\r\n\r\n </Batch>);\r\n}"],"mappings":"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","ignoreList":[]}
@@ -1,86 +1,91 @@
1
- import { invoke, Batch, Run, mask } from "@neurospeech/jex/index.js";
2
- import { FileSystem } from "@neurospeech/jex/dist/utils/FileSystem.js";
3
- import { PlayStore } from "@neurospeech/jex/dist/ci/android/PlayStore.js";
4
- import { Build } from "@neurospeech/jex/dist/ci/build/Build.js";
5
- import assert from "assert";
6
-
7
-
8
- import configs from "./build-android.config.js";
9
-
10
- let applicationDisplayVersion;
11
- let applicationVersion;
12
-
13
- for(const config of configs) {
14
-
15
- if (!config) {
16
- continue;
17
- }
18
-
19
- await invoke(<Batch>
20
-
21
- {/* <Run
22
- cmd="dotnet"
23
- throwOnFail={false}
24
- args="nuget locals all --clear"
25
- /> */}
26
-
27
- <Build.PrepareVersion
28
- mode={config.buildNumber}
29
- then={(x) => (applicationDisplayVersion = `${x.major}.${x.minor}`, applicationVersion = x.build)}
30
- />
31
-
32
- <FileSystem.MergeJson
33
- json={({
34
- App: {
35
- Url: config.url
36
- }
37
- })}
38
- path="./maui/PositronApp/appsettings.json"
39
- />
40
-
41
- { assert(applicationDisplayVersion) }
42
- { assert(applicationVersion) }
43
-
44
- <Run
45
- cmd="dotnet"
46
- timeout={300000}
47
- args="workload install maui"
48
- />
49
-
50
- <Run
51
- cmd="dotnet"
52
- timeout={300000}
53
- args="workload install android"
54
- />
55
-
56
-
57
- <Run
58
- cmd="dotnet"
59
- timeout={240000}
60
- logData={true}
61
- args={["publish",
62
- "-f", config.targetFramework,
63
- "-c", "Release",
64
- `/p:ApplicationId=${config.id}`,
65
- `/p:ApplicationTitle=${config.name}`,
66
- `/p:ApplicationVersion=${applicationVersion}`,
67
- `/p:ApplicationDisplayVersion=${applicationDisplayVersion}`,
68
- "/p:AndroidKeyStore=true",
69
- `/p:AndroidSigningKeyAlias=${config.androidSigningKeyAlias}`,
70
- `/p:AndroidSigningKeyStore=${config.androidKeyStore}`,
71
- mask `/p:AndroidSigningStorePass=${config.androidKeyStorePassword}`,
72
- mask `/p:AndroidSigningKeyPass=${config.androidKeyStorePassword}`,
73
- config.androidSdkRoot ? `/p:AndroidSdkPath=${config.androidSdkRoot}` : void 0,
74
- config.javaHome ? `/p:JavaSdkDirectory=${config.javaHome}`: void 0,
75
- "./maui/PositronApp/PositronApp.csproj"]}
76
- />
77
-
78
- <PlayStore.Upload
79
- packageName={config.id}
80
- releaseFiles={[`./maui/PositronApp/bin/Release/${config.targetFramework}/publish/*-Signed.apk`]}
81
- serviceAccountJsonRaw={config.serviceAccountJsonRaw}
82
- serviceAccountJson={config.serviceAccountJson}
83
- />
84
-
85
- </Batch>);
1
+ import { invoke, Batch, Run, mask } from "@neurospeech/jex/index.js";
2
+ import { FileSystem } from "@neurospeech/jex/dist/utils/FileSystem.js";
3
+ import { PlayStore } from "@neurospeech/jex/dist/ci/android/PlayStore.js";
4
+ import { Build } from "@neurospeech/jex/dist/ci/build/Build.js";
5
+ import assert from "assert";
6
+ import { Common } from "./common.jsx";
7
+ import { pathToFileURL } from "url";
8
+ import { resolve } from "path";
9
+
10
+
11
+ let applicationDisplayVersion;
12
+ let applicationVersion;
13
+
14
+ const { default: configs } = await import( pathToFileURL( resolve("./build-android.config.js")));
15
+
16
+ for(const config of configs) {
17
+
18
+ if (!config) {
19
+ continue;
20
+ }
21
+
22
+ await invoke(<Batch>
23
+
24
+ {/* <Run
25
+ cmd="dotnet"
26
+ throwOnFail={false}
27
+ args="nuget locals all --clear"
28
+ /> */}
29
+
30
+ <Build.PrepareVersion
31
+ mode={config.buildNumber}
32
+ then={(x) => (applicationDisplayVersion = `${x.major}.${x.minor}`, applicationVersion = x.build)}
33
+ />
34
+
35
+ <Common.PreBuild />
36
+
37
+ <FileSystem.MergeJson
38
+ json={({
39
+ App: {
40
+ Url: config.url
41
+ }
42
+ })}
43
+ path="./maui/PositronApp/appsettings.json"
44
+ />
45
+
46
+ { assert(applicationDisplayVersion) }
47
+ { assert(applicationVersion) }
48
+
49
+ <Run
50
+ cmd="dotnet"
51
+ timeout={300000}
52
+ args="workload install maui"
53
+ />
54
+
55
+ <Run
56
+ cmd="dotnet"
57
+ timeout={300000}
58
+ args="workload install android"
59
+ />
60
+
61
+
62
+ <Run
63
+ cmd="dotnet"
64
+ timeout={240000}
65
+ logData={true}
66
+ args={["publish",
67
+ "-f", config.targetFramework,
68
+ "-c", "Release",
69
+ `/p:ApplicationId=${config.id}`,
70
+ `/p:ApplicationTitle=${config.name}`,
71
+ `/p:ApplicationVersion=${applicationVersion}`,
72
+ `/p:ApplicationDisplayVersion=${applicationDisplayVersion}`,
73
+ "/p:AndroidKeyStore=true",
74
+ `/p:AndroidSigningKeyAlias=${config.androidSigningKeyAlias}`,
75
+ `/p:AndroidSigningKeyStore=${config.androidKeyStore}`,
76
+ mask `/p:AndroidSigningStorePass=${config.androidKeyStorePassword}`,
77
+ mask `/p:AndroidSigningKeyPass=${config.androidKeyStorePassword}`,
78
+ config.androidSdkRoot ? `/p:AndroidSdkPath=${config.androidSdkRoot}` : void 0,
79
+ config.javaHome ? `/p:JavaSdkDirectory=${config.javaHome}`: void 0,
80
+ "./maui/PositronApp/PositronApp.csproj"]}
81
+ />
82
+
83
+ <PlayStore.Upload
84
+ packageName={config.id}
85
+ releaseFiles={[`./maui/PositronApp/bin/Release/${config.targetFramework}/publish/*-Signed.apk`]}
86
+ serviceAccountJsonRaw={config.serviceAccountJsonRaw}
87
+ serviceAccountJson={config.serviceAccountJson}
88
+ />
89
+
90
+ </Batch>);
86
91
  }
@@ -1,108 +1,111 @@
1
- import { invoke, Batch, Run} from "@neurospeech/jex/index.js";
2
- import { FileSystem } from "@neurospeech/jex/dist/utils/FileSystem.js";
3
- import { AppleDev } from "@neurospeech/jex/dist/ci/mac/AppleDev.js";
4
- import { Build } from "@neurospeech/jex/dist/ci/build/Build.js";
5
- import { XCRun } from "@neurospeech/jex/dist/ci/mac/XCRun.js";
6
- import assert from "assert";
7
- import configs from "./build-ios.config.js";
8
-
9
- let applicationDisplayVersion;
10
- let applicationVersion;
11
-
12
- const keyChainPath= "./kc1.db";
13
-
14
- let signingIdentity;
15
- let provisioningProfile;
16
-
17
- for (const config of configs) {
18
-
19
- if (!config) {
20
- continue;
21
- }
22
-
23
- await invoke(<Batch
24
- cleanup={<Batch>
25
- <AppleDev.Clear
26
- keyChainPath={keyChainPath}
27
- provisioningProfile={config.provisioningProfileFile}
28
- />
29
- </Batch>}
30
- >
31
-
32
-
33
- <FileSystem.MergeJson
34
- json={({
35
- App: {
36
- Url: config.url
37
- }
38
- })}
39
- path="./maui/PositronApp/appsettings.json"
40
- />
41
-
42
- <Build.PrepareVersion
43
- mode={config.buildNumber}
44
- then={(x) => (applicationDisplayVersion = `${x.major}.${x.minor}`, applicationVersion = x.build)}
45
- />
46
-
47
- { assert(applicationDisplayVersion) }
48
- { assert(applicationVersion) }
49
-
50
- <AppleDev.InstallCert
51
- certPath={config.certPath}
52
- certPass={config.certPass}
53
- keyChainPath={keyChainPath}
54
- keyChainPass=""
55
- provisioningProfile={config.provisioningProfileFile}
56
- then={(r) => (signingIdentity = r.friendlyName, provisioningProfile = r.pp.name)}
57
- />
58
-
59
- { console.log(`Using identity ${signingIdentity}`)}
60
- { console.log(`Using profile ${provisioningProfile}`)}
61
-
62
- {/* <Run
63
- cmd="dotnet"
64
- args="nuget locals all --clear"
65
- /> */}
66
-
67
- <Run
68
- cmd="dotnet"
69
- timeout={300000}
70
- args="workload install maui"
71
- />
72
-
73
- <Run
74
- cmd="dotnet"
75
- timeout={300000}
76
- args="workload install android ios"
77
- />
78
-
79
-
80
- <Run
81
- cmd="dotnet"
82
- timeout={600000}
83
- logData={true}
84
- args={["publish",
85
- "-f", "net8.0-ios",
86
- "-c", "Release",
87
- "/p:BuildIpa=true",
88
- "/p:RuntimeIdentifier=ios-arm64",
89
- `/p:ApplicationId=${config.id}`,
90
- `/p:ApplicationVersion=${applicationVersion}`,
91
- `/p:ApplicationDisplayVersion=${applicationDisplayVersion}`,
92
- `/p:CodesignKey=${signingIdentity}`,
93
- `/p:CodesignProvision=${provisioningProfile}`,
94
- "./maui/PositronApp/PositronApp.csproj"]}
95
- />
96
-
97
-
98
- <XCRun.UploadApp
99
- timeout={600000}
100
- appPath="./maui/PositronApp/bin/Release/net8.0-ios/ios-arm64/publish/PositronApp.ipa"
101
- appType="ios"
102
- apiKeyId={config.appStoreConnect.apiKeyId}
103
- issuerId={config.appStoreConnect.issuerId}
104
- apiPrivateKey={config.appStoreConnect.privateKey}
105
- />
106
-
107
- </Batch>);
1
+ import { invoke, Batch, Run} from "@neurospeech/jex/index.js";
2
+ import { FileSystem } from "@neurospeech/jex/dist/utils/FileSystem.js";
3
+ import { AppleDev } from "@neurospeech/jex/dist/ci/mac/AppleDev.js";
4
+ import { Build } from "@neurospeech/jex/dist/ci/build/Build.js";
5
+ import { XCRun } from "@neurospeech/jex/dist/ci/mac/XCRun.js";
6
+ import assert from "assert";
7
+ import { Common } from "./common.jsx";
8
+
9
+ const { default: configs } = await import("../build-ios.config.js");
10
+
11
+ let applicationDisplayVersion;
12
+ let applicationVersion;
13
+
14
+ const keyChainPath= "./kc1.db";
15
+
16
+ let signingIdentity;
17
+ let provisioningProfile;
18
+
19
+ for (const config of configs) {
20
+
21
+ if (!config) {
22
+ continue;
23
+ }
24
+
25
+ await invoke(<Batch
26
+ cleanup={<Batch>
27
+ <AppleDev.Clear
28
+ keyChainPath={keyChainPath}
29
+ provisioningProfile={config.provisioningProfileFile}
30
+ />
31
+ </Batch>}
32
+ >
33
+
34
+ <Common.PreBuild/>
35
+
36
+ <FileSystem.MergeJson
37
+ json={({
38
+ App: {
39
+ Url: config.url
40
+ }
41
+ })}
42
+ path="./maui/PositronApp/appsettings.json"
43
+ />
44
+
45
+ <Build.PrepareVersion
46
+ mode={config.buildNumber}
47
+ then={(x) => (applicationDisplayVersion = `${x.major}.${x.minor}`, applicationVersion = x.build)}
48
+ />
49
+
50
+ { assert(applicationDisplayVersion) }
51
+ { assert(applicationVersion) }
52
+
53
+ <AppleDev.InstallCert
54
+ certPath={config.certPath}
55
+ certPass={config.certPass}
56
+ keyChainPath={keyChainPath}
57
+ keyChainPass=""
58
+ provisioningProfile={config.provisioningProfileFile}
59
+ then={(r) => (signingIdentity = r.friendlyName, provisioningProfile = r.pp.name)}
60
+ />
61
+
62
+ { console.log(`Using identity ${signingIdentity}`)}
63
+ { console.log(`Using profile ${provisioningProfile}`)}
64
+
65
+ {/* <Run
66
+ cmd="dotnet"
67
+ args="nuget locals all --clear"
68
+ /> */}
69
+
70
+ <Run
71
+ cmd="dotnet"
72
+ timeout={300000}
73
+ args="workload install maui"
74
+ />
75
+
76
+ <Run
77
+ cmd="dotnet"
78
+ timeout={300000}
79
+ args="workload install android ios"
80
+ />
81
+
82
+
83
+ <Run
84
+ cmd="dotnet"
85
+ timeout={600000}
86
+ logData={true}
87
+ args={["publish",
88
+ "-f", "net10.0-ios",
89
+ "-c", "Release",
90
+ "/p:BuildIpa=true",
91
+ "/p:RuntimeIdentifier=ios-arm64",
92
+ `/p:ApplicationId=${config.id}`,
93
+ `/p:ApplicationVersion=${applicationVersion}`,
94
+ `/p:ApplicationDisplayVersion=${applicationDisplayVersion}`,
95
+ `/p:CodesignKey=${signingIdentity}`,
96
+ `/p:CodesignProvision=${provisioningProfile}`,
97
+ "./maui/PositronApp/PositronApp.csproj"]}
98
+ />
99
+
100
+
101
+ <XCRun.UploadApp
102
+ timeout={600000}
103
+ appPath="./maui/PositronApp/bin/Release/net10.0-ios/ios-arm64/publish/PositronApp.ipa"
104
+ appType="ios"
105
+ apiKeyId={config.appStoreConnect.apiKeyId}
106
+ issuerId={config.appStoreConnect.issuerId}
107
+ apiPrivateKey={config.appStoreConnect.privateKey}
108
+ />
109
+
110
+ </Batch>);
108
111
  }