From 5989483e5c68fbef13def73edd05240a24c3f017 Mon Sep 17 00:00:00 2001 From: Alan Garny Date: Fri, 27 Feb 2026 11:50:07 +1300 Subject: [PATCH 1/4] New version. --- package.json | 2 +- src/renderer/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index ac00f0d4..0a732b1a 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "url": "git+https://github.com/opencor/webapp.git" }, "type": "module", - "version": "0.20260227.0", + "version": "0.20260227.1", "scripts": { "archive:web": "bun src/renderer/scripts/archive.web.js", "build": "bun src/renderer/scripts/libopencor.js && electron-vite build", diff --git a/src/renderer/package.json b/src/renderer/package.json index 5adf4d25..2492595b 100644 --- a/src/renderer/package.json +++ b/src/renderer/package.json @@ -39,7 +39,7 @@ }, "./style.css": "./dist/opencor.css" }, - "version": "0.20260227.0", + "version": "0.20260227.1", "scripts": { "build": "vite build && bun scripts/generate.version.js", "build:lib": "vite build --config vite.lib.config.ts && cp index.d.ts dist/index.d.ts", From 9836b5c2344aee2c79821a873d1455e48da6cbed Mon Sep 17 00:00:00 2001 From: Alan Garny Date: Fri, 27 Feb 2026 11:50:44 +1300 Subject: [PATCH 2/4] Updated our dependencies. --- bun.lock | 22 +++++++++++++++------- package.json | 2 +- src/renderer/bun.lock | 8 ++++---- src/renderer/package.json | 2 +- 4 files changed, 21 insertions(+), 13 deletions(-) diff --git a/bun.lock b/bun.lock index 771e7b7c..482b82b6 100644 --- a/bun.lock +++ b/bun.lock @@ -20,7 +20,7 @@ "@electron-toolkit/utils": "^4.0.0", "@tailwindcss/postcss": "^4.2.1", "@tailwindcss/vite": "^4.2.1", - "@types/node": "^25.3.1", + "@types/node": "^25.3.2", "@types/plotly.js": "^3.0.10", "@vitejs/plugin-vue": "^6.0.4", "@vue/tsconfig": "^0.8.1", @@ -378,7 +378,7 @@ "@types/ms": ["@types/ms@2.1.0", "", {}, "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA=="], - "@types/node": ["@types/node@25.3.1", "", { "dependencies": { "undici-types": "~7.18.0" } }, "sha512-hj9YIJimBCipHVfHKRMnvmHg+wfhKc0o4mTtXh9pKBjC8TLJzz0nzGmLi5UJsYAUgSvXFHgb0V2oY10DUFtImw=="], + "@types/node": ["@types/node@25.3.2", "", { "dependencies": { "undici-types": "~7.18.0" } }, "sha512-RpV6r/ij22zRRdyBPcxDeKAzH43phWVKEjL2iksqo1Vz3CuBUrgmPpPhALKiRfU7OMCmeeO9vECBMsV0hMTG8Q=="], "@types/plist": ["@types/plist@3.0.5", "", { "dependencies": { "@types/node": "*", "xmlbuilder": ">=11.0.1" } }, "sha512-E6OCaRmAe4WDmWNsL/9RMqdkkzDCY1etutkflWk4c+AcjDU07Pcz1fQwTX0TQz+Pxqn9i4L1TU3UFpjnrcDgxA=="], @@ -1146,7 +1146,7 @@ "string_decoder": ["string_decoder@1.3.0", "", { "dependencies": { "safe-buffer": "~5.2.0" } }, "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA=="], - "strip-ansi": ["strip-ansi@7.1.2", "", { "dependencies": { "ansi-regex": "^6.0.1" } }, "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA=="], + "strip-ansi": ["strip-ansi@7.2.0", "", { "dependencies": { "ansi-regex": "^6.2.2" } }, "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w=="], "strip-ansi-cjs": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], @@ -1244,7 +1244,7 @@ "wrappy": ["wrappy@1.0.2", "", {}, "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="], - "write-file-atomic": ["write-file-atomic@7.0.0", "", { "dependencies": { "imurmurhash": "^0.1.4", "signal-exit": "^4.0.1" } }, "sha512-YnlPC6JqnZl6aO4uRc+dx5PHguiR9S6WeoLtpxNT9wIG+BDya7ZNE1q7KOjVgaA73hKhKLpVPgJ5QA9THQ5BRg=="], + "write-file-atomic": ["write-file-atomic@7.0.1", "", { "dependencies": { "signal-exit": "^4.0.1" } }, "sha512-OTIk8iR8/aCRWBqvxrzxR0hgxWpnYBblY1S5hDWBQfk/VFmJwzmJgQFN3WsoUKHISv2eAwe+PpbUzyL1CKTLXg=="], "wsl-utils": ["wsl-utils@0.3.1", "", { "dependencies": { "is-wsl": "^3.1.0", "powershell-utils": "^0.1.0" } }, "sha512-g/eziiSUNBSsdDJtCLB8bdYEUMj4jR7AGeUo96p/3dTafgjHhpF4RiCFPiRILwjQoDXx5MqkBr4fwWtR3Ky4Wg=="], @@ -1290,7 +1290,7 @@ "@electron/osx-sign/isbinaryfile": ["isbinaryfile@4.0.10", "", {}, "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw=="], - "@electron/universal/minimatch": ["minimatch@9.0.8", "", { "dependencies": { "brace-expansion": "^5.0.2" } }, "sha512-reYkDYtj/b19TeqbNZCV4q9t+Yxylf/rYBsLb42SXJatTv4/ylq5lEiAmhA/IToxO7NI2UzNMghHoHuaqDkAjw=="], + "@electron/universal/minimatch": ["minimatch@9.0.9", "", { "dependencies": { "brace-expansion": "^2.0.2" } }, "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg=="], "@isaacs/cliui/string-width": ["string-width@5.1.2", "", { "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", "strip-ansi": "^7.0.1" } }, "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA=="], @@ -1354,7 +1354,7 @@ "dmg-license/ajv": ["ajv@6.14.0", "", { "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" } }, "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw=="], - "electron/@types/node": ["@types/node@24.10.14", "", { "dependencies": { "undici-types": "~7.16.0" } }, "sha512-OowOUbD1lBCOFIPOZ8xnMIhgqA4sCutMiYOmPHL1PTLt5+y1XA+g2+yC9OOyz8p+deMZqPZLxfMjYIfrKsPeFg=="], + "electron/@types/node": ["@types/node@24.10.15", "", { "dependencies": { "undici-types": "~7.16.0" } }, "sha512-BgjLoRuSr0MTI5wA6gMw9Xy0sFudAaUuvrnjgGx9wZ522fYYLA5SYJ+1Y30vTcJEG+DRCyDHx/gzQVfofYzSdg=="], "electron-builder/fs-extra": ["fs-extra@10.1.0", "", { "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" } }, "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ=="], @@ -1440,6 +1440,8 @@ "@electron/get/fs-extra/universalify": ["universalify@0.1.2", "", {}, "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg=="], + "@electron/universal/minimatch/brace-expansion": ["brace-expansion@2.0.2", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ=="], + "@isaacs/cliui/string-width/emoji-regex": ["emoji-regex@9.2.2", "", {}, "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg=="], "@isaacs/cliui/wrap-ansi/ansi-styles": ["ansi-styles@6.2.3", "", {}, "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg=="], @@ -1452,7 +1454,7 @@ "app-builder-lib/which/isexe": ["isexe@3.1.5", "", {}, "sha512-6B3tLtFqtQS4ekarvLVMZ+X+VlvQekbe4taUkf/rhVO3d/h0M2rfARm/pXLcPEsjjMsFgrFgSrhQIxcSVrBz8w=="], - "cacache/glob/minimatch": ["minimatch@9.0.8", "", { "dependencies": { "brace-expansion": "^5.0.2" } }, "sha512-reYkDYtj/b19TeqbNZCV4q9t+Yxylf/rYBsLb42SXJatTv4/ylq5lEiAmhA/IToxO7NI2UzNMghHoHuaqDkAjw=="], + "cacache/glob/minimatch": ["minimatch@9.0.9", "", { "dependencies": { "brace-expansion": "^2.0.2" } }, "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg=="], "cli-truncate/string-width/strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], @@ -1558,10 +1560,14 @@ "@electron/asar/minimatch/brace-expansion/balanced-match": ["balanced-match@1.0.2", "", {}, "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="], + "@electron/universal/minimatch/brace-expansion/balanced-match": ["balanced-match@1.0.2", "", {}, "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="], + "app-builder-lib/@electron/get/fs-extra/jsonfile": ["jsonfile@4.0.0", "", { "optionalDependencies": { "graceful-fs": "^4.1.6" } }, "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg=="], "app-builder-lib/@electron/get/fs-extra/universalify": ["universalify@0.1.2", "", {}, "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg=="], + "cacache/glob/minimatch/brace-expansion": ["brace-expansion@2.0.2", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ=="], + "cli-truncate/string-width/strip-ansi/ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], "dir-compare/minimatch/brace-expansion/balanced-match": ["balanced-match@1.0.2", "", {}, "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="], @@ -1576,6 +1582,8 @@ "yargs/string-width/strip-ansi/ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], + "cacache/glob/minimatch/brace-expansion/balanced-match": ["balanced-match@1.0.2", "", {}, "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="], + "rollup-plugin-visualizer/yargs/cliui/wrap-ansi/ansi-styles": ["ansi-styles@6.2.3", "", {}, "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg=="], } } diff --git a/package.json b/package.json index 0a732b1a..2844ee08 100644 --- a/package.json +++ b/package.json @@ -66,7 +66,7 @@ "@electron-toolkit/utils": "^4.0.0", "@tailwindcss/postcss": "^4.2.1", "@tailwindcss/vite": "^4.2.1", - "@types/node": "^25.3.1", + "@types/node": "^25.3.2", "@types/plotly.js": "^3.0.10", "@vitejs/plugin-vue": "^6.0.4", "@vue/tsconfig": "^0.8.1", diff --git a/src/renderer/bun.lock b/src/renderer/bun.lock index 82dcc6cb..14fb5eaf 100644 --- a/src/renderer/bun.lock +++ b/src/renderer/bun.lock @@ -18,7 +18,7 @@ "@biomejs/biome": "^2.4.4", "@tailwindcss/postcss": "^4.2.1", "@tailwindcss/vite": "^4.2.1", - "@types/node": "^25.3.1", + "@types/node": "^25.3.2", "@types/plotly.js": "^3.0.10", "@vitejs/plugin-vue": "^6.0.4", "@vue/tsconfig": "^0.8.1", @@ -286,7 +286,7 @@ "@types/estree": ["@types/estree@1.0.8", "", {}, "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w=="], - "@types/node": ["@types/node@25.3.1", "", { "dependencies": { "undici-types": "~7.18.0" } }, "sha512-hj9YIJimBCipHVfHKRMnvmHg+wfhKc0o4mTtXh9pKBjC8TLJzz0nzGmLi5UJsYAUgSvXFHgb0V2oY10DUFtImw=="], + "@types/node": ["@types/node@25.3.2", "", { "dependencies": { "undici-types": "~7.18.0" } }, "sha512-RpV6r/ij22zRRdyBPcxDeKAzH43phWVKEjL2iksqo1Vz3CuBUrgmPpPhALKiRfU7OMCmeeO9vECBMsV0hMTG8Q=="], "@types/plotly.js": ["@types/plotly.js@3.0.10", "", {}, "sha512-q+MgO4aajC2HrO7FllTYWzrpdfbTjboSMfjkz/aXKjg1v7HNo1zMEFfAW7quKfk6SL+bH74A5ThBEps/7hZxOA=="], @@ -598,7 +598,7 @@ "string-width": ["string-width@8.2.0", "", { "dependencies": { "get-east-asian-width": "^1.5.0", "strip-ansi": "^7.1.2" } }, "sha512-6hJPQ8N0V0P3SNmP6h2J99RLuzrWz2gvT7VnK5tKvrNqJoyS9W4/Fb8mo31UiPvy00z7DQXkP2hnKBVav76thw=="], - "strip-ansi": ["strip-ansi@7.1.2", "", { "dependencies": { "ansi-regex": "^6.0.1" } }, "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA=="], + "strip-ansi": ["strip-ansi@7.2.0", "", { "dependencies": { "ansi-regex": "^6.2.2" } }, "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w=="], "stylelint": ["stylelint@17.4.0", "", { "dependencies": { "@csstools/css-calc": "^3.1.1", "@csstools/css-parser-algorithms": "^4.0.0", "@csstools/css-syntax-patches-for-csstree": "^1.0.27", "@csstools/css-tokenizer": "^4.0.0", "@csstools/media-query-list-parser": "^5.0.0", "@csstools/selector-resolve-nested": "^4.0.0", "@csstools/selector-specificity": "^6.0.0", "colord": "^2.9.3", "cosmiconfig": "^9.0.0", "css-functions-list": "^3.3.3", "css-tree": "^3.1.0", "debug": "^4.4.3", "fast-glob": "^3.3.3", "fastest-levenshtein": "^1.0.16", "file-entry-cache": "^11.1.2", "global-modules": "^2.0.0", "globby": "^16.1.0", "globjoin": "^0.1.4", "html-tags": "^5.1.0", "ignore": "^7.0.5", "import-meta-resolve": "^4.2.0", "imurmurhash": "^0.1.4", "is-plain-object": "^5.0.0", "mathml-tag-names": "^4.0.0", "meow": "^14.0.0", "micromatch": "^4.0.8", "normalize-path": "^3.0.0", "picocolors": "^1.1.1", "postcss": "^8.5.6", "postcss-safe-parser": "^7.0.1", "postcss-selector-parser": "^7.1.1", "postcss-value-parser": "^4.2.0", "string-width": "^8.1.1", "supports-hyperlinks": "^4.4.0", "svg-tags": "^1.0.0", "table": "^6.9.0", "write-file-atomic": "^7.0.0" }, "bin": { "stylelint": "bin/stylelint.mjs" } }, "sha512-3kQ2/cHv3Zt8OBg+h2B8XCx9evEABQIrv4hh3uXahGz/ZEHrTR80zxBiK2NfXNaSoyBzxO1pjsz1Vhdzwn5XSw=="], @@ -650,7 +650,7 @@ "which": ["which@1.3.1", "", { "dependencies": { "isexe": "^2.0.0" }, "bin": { "which": "./bin/which" } }, "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ=="], - "write-file-atomic": ["write-file-atomic@7.0.0", "", { "dependencies": { "imurmurhash": "^0.1.4", "signal-exit": "^4.0.1" } }, "sha512-YnlPC6JqnZl6aO4uRc+dx5PHguiR9S6WeoLtpxNT9wIG+BDya7ZNE1q7KOjVgaA73hKhKLpVPgJ5QA9THQ5BRg=="], + "write-file-atomic": ["write-file-atomic@7.0.1", "", { "dependencies": { "signal-exit": "^4.0.1" } }, "sha512-OTIk8iR8/aCRWBqvxrzxR0hgxWpnYBblY1S5hDWBQfk/VFmJwzmJgQFN3WsoUKHISv2eAwe+PpbUzyL1CKTLXg=="], "xxhash-wasm": ["xxhash-wasm@1.1.0", "", {}, "sha512-147y/6YNh+tlp6nd/2pWq38i9h6mz/EuQ6njIrmW8D1BS5nCqs0P6DG+m6zTGnNz5I+uhZ0SHxBs9BsPrwcKDA=="], diff --git a/src/renderer/package.json b/src/renderer/package.json index 2492595b..24ddf9d8 100644 --- a/src/renderer/package.json +++ b/src/renderer/package.json @@ -75,7 +75,7 @@ "@biomejs/biome": "^2.4.4", "@tailwindcss/postcss": "^4.2.1", "@tailwindcss/vite": "^4.2.1", - "@types/node": "^25.3.1", + "@types/node": "^25.3.2", "@types/plotly.js": "^3.0.10", "@vitejs/plugin-vue": "^6.0.4", "@vue/tsconfig": "^0.8.1", From f7919c6a4d833909264282a96932c69595116f4c Mon Sep 17 00:00:00 2001 From: Alan Garny Date: Fri, 27 Feb 2026 00:59:05 +1300 Subject: [PATCH 3/4] CD: use the now available Windows ARM version of bun. However, oven-sh/setup-bun still hasn't been updated, so we need to manually download the Windows ARM version of bun for now. --- .github/workflows/cd.yml | 13 +------------ .github/workflows/ci.yml | 6 +----- 2 files changed, 2 insertions(+), 17 deletions(-) diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml index 72f13481..bbb41d77 100644 --- a/.github/workflows/cd.yml +++ b/.github/workflows/cd.yml @@ -72,28 +72,17 @@ jobs: - name: Install bun (Windows ARM only) if: ${{ matrix.name == 'Windows (ARM)' }} run: | - curl -L https://github.com/oven-sh/bun/releases/latest/download/bun-windows-x64-baseline.zip -o bun.zip + curl -L https://github.com/oven-sh/bun/releases/latest/download/bun-windows-aarch64.zip -o bun.zip unzip -j bun.zip -d $env:USERPROFILE\.bun del bun.zip echo "$env:USERPROFILE\.bun" >> $env:GITHUB_PATH - - name: Make sure that we can sign OpenCOR (Windows ARM only) - if: ${{ matrix.name == 'Windows (ARM)' }} - run: | - curl -L https://npmmirror.com/mirrors/electron-builder-binaries/winCodeSign-2.6.0/winCodeSign-2.6.0.7z -o winCodeSign.7z - 7z x winCodeSign.7z -oC:\Users\runneradmin\AppData\Local\electron-builder\Cache\winCodeSign\winCodeSign-2.6.0 - cd C:\Users\runneradmin\AppData\Local\electron-builder\Cache\winCodeSign\winCodeSign-2.6.0\windows-10 - mv x64 arm64 - name: Install libopenjp2-tools (Linux ARM only) if: ${{ matrix.name == 'Linux (ARM)' }} run: | sudo apt update sudo apt install libopenjp2-tools - name: OpenCOR dependencies - if: ${{ matrix.name != 'Windows (ARM)' }} run: bun install - - name: OpenCOR dependencies (Windows ARM only) - if: ${{ matrix.name == 'Windows (ARM)' }} - run: bun install --cpu=arm64 - name: Build OpenCOR env: VITE_FIREBASE_API_KEY: ${{ secrets.VITE_FIREBASE_API_KEY }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 18c33daf..6ee8b98b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -50,16 +50,12 @@ jobs: - name: Install bun (Windows ARM only) if: ${{ matrix.name == 'Windows (ARM)' }} run: | - curl -L https://github.com/oven-sh/bun/releases/latest/download/bun-windows-x64-baseline.zip -o bun.zip + curl -L https://github.com/oven-sh/bun/releases/latest/download/bun-windows-aarch64.zip -o bun.zip unzip -j bun.zip -d $env:USERPROFILE\.bun del bun.zip echo "$env:USERPROFILE\.bun" >> $env:GITHUB_PATH - name: OpenCOR dependencies - if: ${{ matrix.name != 'Windows (ARM)' }} run: bun install - - name: OpenCOR dependencies (Windows ARM only) - if: ${{ matrix.name == 'Windows (ARM)' }} - run: bun install --cpu=arm64 - name: Build OpenCOR if: ${{ matrix.name != 'Code formatting' && matrix.name != 'Linting' }} run: bun run build From 89243962202834fcc36cb71d642a3ed5ce90f7d3 Mon Sep 17 00:00:00 2001 From: Alan Garny Date: Fri, 27 Feb 2026 11:55:48 +1300 Subject: [PATCH 4/4] CD. --- .github/workflows/cd.yml | 190 +++++++++++++++++++-------------------- 1 file changed, 95 insertions(+), 95 deletions(-) diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml index 85d4ddd3..bbb41d77 100644 --- a/.github/workflows/cd.yml +++ b/.github/workflows/cd.yml @@ -17,18 +17,18 @@ jobs: fail-fast: false matrix: include: - # - name: Windows (Intel) - # os: windows-2022 + - name: Windows (Intel) + os: windows-2022 - name: Windows (ARM) os: windows-11-arm - # - name: Linux (Intel) - # os: ubuntu-22.04 - # - name: Linux (ARM) - # os: ubuntu-22.04-arm - # - name: macOS (Intel) - # os: macos-15-intel - # - name: macOS (ARM) - # os: macos-15 + - name: Linux (Intel) + os: ubuntu-22.04 + - name: Linux (ARM) + os: ubuntu-22.04-arm + - name: macOS (Intel) + os: macos-15-intel + - name: macOS (ARM) + os: macos-15 env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} APPLE_ID: ${{ secrets.APPLE_ID }} @@ -92,88 +92,88 @@ jobs: run: bun run build - name: Release OpenCOR run: bun release - # web_app: - # if: ${{ github.repository == 'opencor/webapp' }} - # name: Web app - # runs-on: ubuntu-22.04 - # steps: - # - name: Set the timezone to New Zealand - # uses: szenius/set-timezone@v2.0 - # with: - # timezoneLinux: 'Pacific/Auckland' - # - name: Check out OpenCOR - # uses: actions/checkout@v4 - # - name: Install Node.js - # uses: actions/setup-node@v4 - # with: - # node-version: 'lts/*' - # - name: Install bun - # run: npm install -g bun - # - name: OpenCOR dependencies - # run: bun install - # - name: Build OpenCOR's Web app - # env: - # VITE_FIREBASE_API_KEY: ${{ secrets.VITE_FIREBASE_API_KEY }} - # VITE_FIREBASE_MESSAGING_SENDER_ID: ${{ secrets.VITE_FIREBASE_MESSAGING_SENDER_ID }} - # VITE_FIREBASE_APP_ID: ${{ secrets.VITE_FIREBASE_APP_ID }} - # VITE_FIREBASE_MEASUREMENT_ID: ${{ secrets.VITE_FIREBASE_MEASUREMENT_ID }} - # run: bun build:web - # - name: Deploy to https://opencor.ws/app/ - # uses: milanmk/actions-file-deployer@master - # with: - # remote-protocol: sftp - # remote-host: ${{ secrets.REMOTE_HOST }} - # remote-user: ${{ secrets.REMOTE_USER }} - # ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }} - # local-path: ./src/renderer/dist - # remote-path: /home/www/opencor.ws/app - # sync: full - # - name: Archive OpenCOR's Web app - # run: bun archive:web - # - name: Release OpenCOR's Web app - # uses: softprops/action-gh-release@v2 - # with: - # files: dist/OpenCOR-*-WebApp.tar.gz - # npm: - # runs-on: ubuntu-22.04 - # steps: - # - name: Set the timezone to New Zealand - # uses: szenius/set-timezone@v2.0 - # with: - # timezoneLinux: 'Pacific/Auckland' - # - name: Check out OpenCOR - # uses: actions/checkout@v4 - # - name: Install Node.js - # uses: actions/setup-node@v4 - # with: - # node-version: 'lts/*' - # registry-url: 'https://registry.npmjs.org' - # - name: Update npm - # # Install the latest version of npm since we need npm 11.5.1 or later to publish to npm using OIDC (see - # # https://docs.npmjs.com/trusted-publishers). - # run: npm install -g npm@latest - # - name: Install bun - # run: npm install -g bun - # - name: OpenCOR dependencies - # run: | - # cd src/renderer - # bun install - # - name: Build OpenCOR as a component - # env: - # VITE_FIREBASE_API_KEY: ${{ secrets.VITE_FIREBASE_API_KEY }} - # VITE_FIREBASE_MESSAGING_SENDER_ID: ${{ secrets.VITE_FIREBASE_MESSAGING_SENDER_ID }} - # VITE_FIREBASE_APP_ID: ${{ secrets.VITE_FIREBASE_APP_ID }} - # VITE_FIREBASE_MEASUREMENT_ID: ${{ secrets.VITE_FIREBASE_MEASUREMENT_ID }} - # run: | - # cd src/renderer - # bun build:lib - # - name: Publish OpenCOR - # # bun cannot currently be used to publish to npm using OIDC (see https://github.com/oven-sh/bun/issues/22423 and - # # https://github.com/oven-sh/bun/issues/15601), so we use npm instead. To publish using OIDC implies automatic - # # provenance generation, so no need to specify --provenance (see https://docs.npmjs.com/trusted-publishers). - # # Provenance requires "repository.url" in package.json to match the repository from which we are publishing. In - # # our case, it means that we can only publish to npm from the "opencor/webapp" repository. (Provenance can be - # # disabled, but we prefer to be open.) - # run: | - # cd src/renderer - # npm publish --access public --no-git-checks + web_app: + if: ${{ github.repository == 'opencor/webapp' }} + name: Web app + runs-on: ubuntu-22.04 + steps: + - name: Set the timezone to New Zealand + uses: szenius/set-timezone@v2.0 + with: + timezoneLinux: 'Pacific/Auckland' + - name: Check out OpenCOR + uses: actions/checkout@v4 + - name: Install Node.js + uses: actions/setup-node@v4 + with: + node-version: 'lts/*' + - name: Install bun + run: npm install -g bun + - name: OpenCOR dependencies + run: bun install + - name: Build OpenCOR's Web app + env: + VITE_FIREBASE_API_KEY: ${{ secrets.VITE_FIREBASE_API_KEY }} + VITE_FIREBASE_MESSAGING_SENDER_ID: ${{ secrets.VITE_FIREBASE_MESSAGING_SENDER_ID }} + VITE_FIREBASE_APP_ID: ${{ secrets.VITE_FIREBASE_APP_ID }} + VITE_FIREBASE_MEASUREMENT_ID: ${{ secrets.VITE_FIREBASE_MEASUREMENT_ID }} + run: bun build:web + - name: Deploy to https://opencor.ws/app/ + uses: milanmk/actions-file-deployer@master + with: + remote-protocol: sftp + remote-host: ${{ secrets.REMOTE_HOST }} + remote-user: ${{ secrets.REMOTE_USER }} + ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }} + local-path: ./src/renderer/dist + remote-path: /home/www/opencor.ws/app + sync: full + - name: Archive OpenCOR's Web app + run: bun archive:web + - name: Release OpenCOR's Web app + uses: softprops/action-gh-release@v2 + with: + files: dist/OpenCOR-*-WebApp.tar.gz + npm: + runs-on: ubuntu-22.04 + steps: + - name: Set the timezone to New Zealand + uses: szenius/set-timezone@v2.0 + with: + timezoneLinux: 'Pacific/Auckland' + - name: Check out OpenCOR + uses: actions/checkout@v4 + - name: Install Node.js + uses: actions/setup-node@v4 + with: + node-version: 'lts/*' + registry-url: 'https://registry.npmjs.org' + - name: Update npm + # Install the latest version of npm since we need npm 11.5.1 or later to publish to npm using OIDC (see + # https://docs.npmjs.com/trusted-publishers). + run: npm install -g npm@latest + - name: Install bun + run: npm install -g bun + - name: OpenCOR dependencies + run: | + cd src/renderer + bun install + - name: Build OpenCOR as a component + env: + VITE_FIREBASE_API_KEY: ${{ secrets.VITE_FIREBASE_API_KEY }} + VITE_FIREBASE_MESSAGING_SENDER_ID: ${{ secrets.VITE_FIREBASE_MESSAGING_SENDER_ID }} + VITE_FIREBASE_APP_ID: ${{ secrets.VITE_FIREBASE_APP_ID }} + VITE_FIREBASE_MEASUREMENT_ID: ${{ secrets.VITE_FIREBASE_MEASUREMENT_ID }} + run: | + cd src/renderer + bun build:lib + - name: Publish OpenCOR + # bun cannot currently be used to publish to npm using OIDC (see https://github.com/oven-sh/bun/issues/22423 and + # https://github.com/oven-sh/bun/issues/15601), so we use npm instead. To publish using OIDC implies automatic + # provenance generation, so no need to specify --provenance (see https://docs.npmjs.com/trusted-publishers). + # Provenance requires "repository.url" in package.json to match the repository from which we are publishing. In + # our case, it means that we can only publish to npm from the "opencor/webapp" repository. (Provenance can be + # disabled, but we prefer to be open.) + run: | + cd src/renderer + npm publish --access public --no-git-checks