Compare commits

...

79 Commits

Author SHA1 Message Date
Michael Telatynski
43e3ade879 Merge branch 't3chguy/build-files-assert' into t3chguy/update-electron-builder 2025-02-18 10:40:42 +00:00
Michael Telatynski
33107ca70b Discard changes to .github/workflows/build_and_test.yaml 2025-02-18 09:49:36 +00:00
Michael Telatynski
4613559bf9 Merge remote-tracking branch 'origin/t3chguy/update-electron-builder' into t3chguy/update-electron-builder 2025-02-18 09:45:34 +00:00
Michael Telatynski
f35f0e17ab Merge branch 't3chguy/build-files-assert' of https://github.com/vector-im/element-desktop into t3chguy/update-electron-builder
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

# Conflicts:
#	.github/workflows/build_windows.yaml
2025-02-18 09:45:29 +00:00
Michael Telatynski
58c531a7f5 Update build_windows.yaml 2025-02-18 09:44:25 +00:00
Michael Telatynski
0f100b6957 Merge branch 't3chguy/build-files-assert' of https://github.com/vector-im/element-desktop into t3chguy/update-electron-builder
# Conflicts:
#	.github/workflows/build_windows.yaml
2025-02-18 09:44:14 +00:00
Michael Telatynski
2b88c345a7 Simplify
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-18 09:41:45 +00:00
Michael Telatynski
beb9b2671b Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-17 23:13:56 +00:00
Michael Telatynski
b52bd45a5d Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-17 21:03:17 +00:00
Michael Telatynski
14888c43e4 Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-17 16:28:37 +00:00
Michael Telatynski
bb406a8173 Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-17 16:10:05 +00:00
Michael Telatynski
9885cab70a Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-17 11:56:18 +00:00
Michael Telatynski
32d67a443d Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-17 11:53:46 +00:00
Michael Telatynski
ba507c7c5a Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-17 11:24:07 +00:00
Michael Telatynski
357ec2033c Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-17 11:23:30 +00:00
Michael Telatynski
360bda6d4f Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-17 11:21:01 +00:00
Michael Telatynski
21084af22f Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-17 11:01:58 +00:00
Michael Telatynski
4b80d90f04 Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-17 10:38:04 +00:00
Michael Telatynski
c5a1d95e83 Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-17 10:07:31 +00:00
Michael Telatynski
8b515d0478 Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-17 10:06:43 +00:00
Michael Telatynski
ac2db66507 Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-17 09:54:46 +00:00
Michael Telatynski
962ecb9d6a Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-17 09:38:53 +00:00
Michael Telatynski
bccc2dbbc8 Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-17 09:35:43 +00:00
Michael Telatynski
3b0729451b Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-13 17:58:30 +00:00
Michael Telatynski
343bfe2d52 Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-13 17:35:02 +00:00
Michael Telatynski
0e1c861a25 Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-13 17:18:24 +00:00
Michael Telatynski
ccc80b9bbf Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-13 17:05:10 +00:00
Michael Telatynski
def225bc82 Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-13 16:46:11 +00:00
Michael Telatynski
75d8b7316e Handle spaces in executable path
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-13 16:16:56 +00:00
Michael Telatynski
086e9ee8df Improve CI test signing & test squirrel & msi packages
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-13 16:04:59 +00:00
Michael Telatynski
17c7f78985 Test
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-13 15:56:48 +00:00
Michael Telatynski
b845c85531 Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-13 15:27:08 +00:00
Michael Telatynski
8598680a87 Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-13 15:14:33 +00:00
Michael Telatynski
1b4fc88edf Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-13 14:30:53 +00:00
Michael Telatynski
8e06fceb6b Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-13 13:33:43 +00:00
Michael Telatynski
77dc96f4bb Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-13 12:42:21 +00:00
Michael Telatynski
dcced5ffd6 Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-13 12:12:46 +00:00
Michael Telatynski
d20eca274e Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-13 11:46:13 +00:00
Michael Telatynski
042c68620b Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-13 11:45:38 +00:00
Michael Telatynski
068b7e32bb Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-13 11:11:36 +00:00
Michael Telatynski
991e78e27e Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-13 11:00:12 +00:00
Michael Telatynski
045da1ba04 Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-13 10:49:51 +00:00
Michael Telatynski
83f805efb3 Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-13 10:48:13 +00:00
Michael Telatynski
0e22ef3303 Merge branch 'develop' of https://github.com/vector-im/element-desktop into t3chguy/update-electron-builder
# Conflicts:
#	.github/workflows/build_windows.yaml
2025-02-13 10:41:52 +00:00
Michael Telatynski
85cd92f695 Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-13 10:41:25 +00:00
Michael Telatynski
561c7f76a0 Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-13 10:31:46 +00:00
Michael Telatynski
931d12c488 Merge remote-tracking branch 'origin/t3chguy/update-electron-builder' into t3chguy/update-electron-builder 2025-02-13 09:07:01 +00:00
Michael Telatynski
b58d9879f2 Update patch to c2f17f257dd6d3e6acd2331f6e5664545103ac1c
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-13 09:06:53 +00:00
Michael Telatynski
56bd4ce8ee Update build_and_test.yaml 2025-02-12 17:09:52 +00:00
Michael Telatynski
3deb5db0d0 Apply patch from @mmaietta
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-12 16:42:40 +00:00
RiotRobot
35907d14c8 Merge branch 'master' into develop 2025-02-11 14:43:03 +00:00
Michael Telatynski
746aedab75 Test windows signing in CI (#2131)
* Test windows signing in CI

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Of course powershell is special

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Iterate

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

---------

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-11 09:30:35 +00:00
Michael Telatynski
32c902738e DEBUG electron builder and friends
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-08 17:52:08 +00:00
Michael Telatynski
49ab982ae1 Update electron-builder to 26.0.6
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-08 17:50:56 +00:00
Michael Telatynski
fce95dc58d Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-07 18:21:19 +00:00
Michael Telatynski
90f58de6ab Of course powershell is special
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-07 18:10:24 +00:00
Michael Telatynski
0aa9985ad0 Test windows signing in CI
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-07 17:58:25 +00:00
Michael Telatynski
71154d6c9b Turn off electron-builder debug
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-07 17:43:53 +00:00
Michael Telatynski
f31710dd91 Roll back electron-builder to 26.0.1 to un-break windows code signing
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-07 17:41:41 +00:00
Michael Telatynski
3cad0d4438 Try passing WINDOWS_SIGN_WITH_PARAMS manually
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-07 17:28:20 +00:00
Michael Telatynski
392c66fedf Merge remote-tracking branch 'origin/develop' into develop 2025-02-07 16:52:39 +00:00
Michael Telatynski
156942caf9 Disable WINDOWS_SIGNTOOL_PATH for debugging
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-07 16:52:32 +00:00
Michael Telatynski
b0f4bc4e0c Close stale PRs after 180 days (#2130)
* Close stale PRs after 180 days

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Update triage-stale.yml

---------

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-07 13:45:12 +00:00
Michael Telatynski
2ff445cf7b DEBUG electron builder windows signing
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-07 13:23:01 +00:00
Michael Telatynski
70f84181d2 Attempt to fix electron-winstaller 2025-02-07 10:21:50 +00:00
Michael Telatynski
3b4c6d43d4 Update electron-clear-data to @standardnotes/electron-clear-data (#2128)
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-07 09:05:36 +00:00
renovate[bot]
e5bf3f1f69 Update electron-builder to v26.0.2 (#2113)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-06 23:54:00 +00:00
Michael Telatynski
5c6e0f14d0 Simplify linux builds (#2122)
* Simplify linux builds

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Try RUNNER_TEMP

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Try APP_BUILDER_TMP_DIR

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Try runner.temp instead

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Perms?

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Iterate

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Add workaround for https://github.com/electron-userland/electron-builder/issues/6116

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

* Iterate

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

---------

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-06 10:25:02 +00:00
renovate[bot]
3e98c2c525 Update dependency eslint-plugin-matrix-org to v2.1.0 (#2121)
* Update dependency eslint-plugin-matrix-org to v2.1.0

* Delint

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

---------

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-05 09:40:22 +00:00
renovate[bot]
6d0deb0a94 Update electron (#2115)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-04 15:46:54 +00:00
renovate[bot]
f0c98d07e9 Update typescript-eslint monorepo to v8.22.0 (#2117)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-04 15:03:39 +00:00
renovate[bot]
c433a33857 Update all non-major dependencies (#2114)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-04 14:43:38 +00:00
renovate[bot]
b6f93956bf Update dependency @stylistic/eslint-plugin to v3 (#2119)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-04 14:35:56 +00:00
renovate[bot]
325bcacf69 Update playwright to v1.50.1 (#2116)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-04 14:18:07 +00:00
renovate[bot]
28ae8f8a76 Update dependency @types/node to v18.19.74 (#2112)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-04 14:05:39 +00:00
renovate[bot]
0f157e656b Update babel monorepo to v7.26.7 (#2111)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-04 14:02:03 +00:00
renovate[bot]
289c3861bd Update docker/build-push-action digest to ca877d9 (#2110)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-04 14:01:46 +00:00
David Langley
3e3bad3697 Merge pull request #2109 from element-hq/langleyd/update_package_description
Update package description
2025-02-04 13:10:12 +00:00
David Langley
42f99d9088 Update package.json 2025-02-04 10:41:34 +00:00
21 changed files with 726 additions and 914 deletions

35
.github/SSLcom-sandbox.crt vendored Normal file
View File

@@ -0,0 +1,35 @@
-----BEGIN CERTIFICATE-----
MIIGBzCCA++gAwIBAgIIaI6ivggL++4wDQYJKoZIhvcNAQELBQAwgZAxCzAJBgNV
BAYTAlVTMQ4wDAYDVQQIDAVUZXhhczEQMA4GA1UEBwwHSG91c3RvbjEYMBYGA1UE
CgwPU1NMIENvcnBvcmF0aW9uMUUwQwYDVQQDDDxTU0wuY29tIEVWIFJvb3QgQ2Vy
dGlmaWNhdGlvbiBBdXRob3JpdHkgUlNBIFIyIC0gRGV2ZWxvcG1lbnQwHhcNMTgw
MTE2MTIxNjM2WhcNNDMwMTE1MTIxNjM2WjCBkDELMAkGA1UEBhMCVVMxDjAMBgNV
BAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQKDA9TU0wgQ29ycG9y
YXRpb24xRTBDBgNVBAMMPFNTTC5jb20gRVYgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1
dGhvcml0eSBSU0EgUjIgLSBEZXZlbG9wbWVudDCCAiIwDQYJKoZIhvcNAQEBBQAD
ggIPADCCAgoCggIBAK/qcD65JCkueKp0+KXG2kAw8euDHuraLR3lJoUFz4ilGK1M
t+RjSuY6dHQw8ku7TnW9ejWoSFjCBSDx7tP/fzOwOxmBW6+F1NDuV/IaUtn3G2lk
CZglVk9z3n1HuWDN10xNiLoo5nzeIlvNAoDbXDGhI4Y6Z0qouAIS607JpJMWHOqZ
OUiiOuM11gI5Kz9GtVttXCjRmwlkU8WiJVIUuVedQAQt2FChrzNQewGFFi0uIau/
wFRclx6hd4JRIImC6VMJd9lcitWsqMcM94pD3fX2ozNgWX+MVlmcDYFSN9Sv8tG4
yCj4ONS8HZGzbxeyQXJhEJSi2FnBi0j6MD/d4DNFj0hCg9wz3fgVLDGCO0pNMO0Y
oXdrzfoj1/zEv0Ibgh7zKG2JHkPfapn3ExFI5d6xi66u5tPVI8cvLxqrgybRPs7Z
y1dQA7ew3LyTPAHoGtbTMvewtx1TkTtRxxhRRm0l58owqSVbSYrixFtosNobCERo
uiknaQqoY1ZDsdKsaqFoZDbntNRYhN3Ea4OPWVqDUU5ZPz9MTIRAi3MIq854yyQo
BjX9nv+kYa+Esr19pxUW0z7BWFhbXsMVpt0QMVyhwgzXvEreaZHFwHHaGb9d5x5P
VBDhsigMmtzBk9NlbCsy+uGXWHgZA/DVefueEq0sv38VoU30uYa5Tj0FLm09AgMB
AAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUI9PCucv3G9fRoTDu
ZQ4Hw6g4PkIwHQYDVR0OBBYEFCPTwrnL9xvX0aEw7mUOB8OoOD5CMA4GA1UdDwEB
/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAk43CCrC0Zbvi7YUsSePKi+KzvyQ9
mjKa5NBU/A5/sLeZS3R+wqCX7l5euYVDsUuNgNVD/QL9jNIonuHBrvKaxkmqxE1r
IcDEaUdjy2lQ0uqD7UDoS3ctrjGkPpUahrTdr3gaKcQBtUhn9v4Y2OBm6J1hDVwI
CIKcxIzRv6AUpApOtk+++m5tzDU48t8+GzrVl1hkspSYcumA+zuHllbPDL1ADdo5
kK/bBQtZrGqzPqKzeqaB1A5Wm0Igwf++7nyzdKNdjxtv907D9vg8EB4Swavuv/Ne
5/jbpI32pz0NIzzSl5ARAHuFhILsO/cEAlloDoTHzibHqFDIeU9/59HMUsJYMOtD
Ii0/LmQ6dBE4TeukCCLJwtkFYZ2eBgDjF/LHBB+z/UBs4milRgwx+Pe5UDUEjtGe
G/XMVnTSKZTy9jMaXJD5EmfP+Cfh8EEgFgjg4AmLUbEo9gXzPxyXSLgd8JGSsjg8
EV/Ri4Mmmt4XUwlSVvEOezxxDGd17gwbottCIC+rqPHonHkGmKpLMH80Bk0uOOCs
ui1oVwSifMyIcudgCcOfRLUf/f2j2NW7N7E7Vw/Zqfn+pqp/EG0KCqOM2vfJAc0s
u3rSrOJZGtB6txgtmTjoadxApWf4U/FCi3uArt6gS5MJqZjuiRNXs/K3SlSAqLGl
5UiG52ew+VdBHzE=
-----END CERTIFICATE-----

View File

@@ -121,12 +121,6 @@ jobs:
# We need sudo on Linux as it is installed in /opt/
RUN_AS: ${{ runner.os == 'Linux' && 'sudo' || '' }}
- name: Workaround macOS GHA permission issues
if: runner.os == 'macOS'
run: |
sqlite3 $HOME/Library/Application\ Support/com.apple.TCC/TCC.db "INSERT OR IGNORE INTO access VALUES ('kTCCServiceMicrophone','/usr/local/opt/runner/provisioner/provisioner',1,2,4,1,NULL,NULL,0,'UNUSED',NULL,0,1687786159,NULL,NULL,'UNUSED',1687786159);"
sqlite3 $HOME/Library/Application\ Support/com.apple.TCC/TCC.db "INSERT OR IGNORE INTO access VALUES ('kTCCServiceMicrophone','/opt/off/opt/runner/provisioner/provisioner',1,2,4,1,NULL,NULL,0,'UNUSED',NULL,0,1687786159,NULL,NULL,'UNUSED',1687786159);"
- name: Run tests
uses: coactions/setup-xvfb@6b00cf1889f4e1d5a48635647013c0508128ee1a
timeout-minutes: 5

View File

@@ -25,16 +25,12 @@ env:
MAX_GLIBC: 2.31 # bullseye-era glibc, used by glibc-check.sh
permissions: {} # No permissions required
jobs:
# We build the hak files on native infrastructure as matrix-seshat fails to cross-compile properly
# https://github.com/matrix-org/seshat/issues/135
hak:
build:
# We build on native infrastructure as matrix-seshat fails to cross-compile properly
# https://github.com/matrix-org/seshat/issues/135
runs-on: ${{ inputs.arch == 'arm64' && 'ubuntu-22.04-arm' || 'ubuntu-22.04' }}
env:
HAK_DOCKER_IMAGE: ghcr.io/element-hq/element-desktop-dockerbuild
outputs:
cache-key: ${{ steps.cache-key.outputs.key }}
arch: ${{ steps.config.outputs.arch }}
build-args: ${{ steps.config.outputs.build-args }}
steps:
- name: Resolve docker image tag for push
if: github.event_name == 'push'
@@ -70,18 +66,11 @@ jobs:
with:
name: webapp
- name: Calculate cache key
id: cache-key
run: |
echo "key=$CACHE_KEY" >> $GITHUB_OUTPUT
env:
CACHE_KEY: ${{ runner.os }}-${{ github.ref_name }}-${{ inputs.sqlcipher }}-${{ inputs.arch }}-${{ hashFiles('hakHash', 'electronVersion', 'dockerbuild/*') }}
- name: Cache .hak
id: cache
uses: actions/cache@v4
with:
key: ${{ steps.cache-key.outputs.key }}
key: ${{ runner.os }}-${{ github.ref_name }}-${{ inputs.sqlcipher }}-${{ inputs.arch }}-${{ hashFiles('hakHash', 'electronVersion', 'dockerbuild/*') }}
path: |
./.hak
@@ -93,7 +82,6 @@ jobs:
# Workaround for https://github.com/actions/setup-node/issues/317
FORCE_COLOR: 0
# Does not need branch matching as only analyses this layer
- name: Install Deps
run: "yarn install --frozen-lockfile"
@@ -107,7 +95,7 @@ jobs:
# This allows contributors to test changes to the dockerbuild image within a pull request
- name: Build docker image
uses: docker/build-push-action@67a2d409c0a876cbe6b11854e3e25193efe4e62d # v6
uses: docker/build-push-action@ca877d9245402d1537745e0e356eab47c3520991 # v6
if: steps.changed_files.outputs.any_modified == 'true'
with:
context: dockerbuild
@@ -124,7 +112,10 @@ jobs:
$HAK_DOCKER_IMAGE \
yarn build:native
- name: Check native libraries
- name: Fix permissions on .hak
run: sudo chown -R $USER:$USER .hak
- name: Check native libraries in hak dependencies
run: |
shopt -s globstar
@@ -132,37 +123,6 @@ jobs:
./scripts/glibc-check.sh $filename
done
build:
needs: hak
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
with:
name: webapp
- name: Load .hak
id: cache
uses: actions/cache/restore@v4
with:
key: ${{ needs.hak.outputs.cache-key }}
fail-on-cache-miss: true
path: |
./.hak
- uses: actions/setup-node@v4
with:
node-version-file: package.json
cache: "yarn"
env:
# Workaround for https://github.com/actions/setup-node/issues/317
FORCE_COLOR: 0
# Does not need branch matching as only analyses this layer
- name: Install Deps
run: "yarn install --frozen-lockfile"
- name: "[Nightly] Resolve version"
if: inputs.version != ''
run: |
@@ -174,8 +134,16 @@ jobs:
echo "ED_DEBIAN_CHANGELOG=changelog.Debian" >> $GITHUB_ENV
fi
# Workaround for https://github.com/electron-userland/electron-builder/issues/6116
- name: Install fpm
if: inputs.arch == 'arm64'
run: |
sudo apt-get install ruby-dev build-essential
sudo gem install fpm
echo "USE_SYSTEM_FPM=true" >> $GITHUB_ENV
- name: Build App
run: yarn build --publish never -l ${{ needs.hak.outputs.build-args }}
run: yarn build --publish never -l ${{ steps.config.outputs.build-args }}
- name: Check native libraries
run: |
@@ -203,7 +171,7 @@ jobs:
./scripts/glibc-check.sh dist/linux-*unpacked/element-desktop*
env:
ARCH: ${{ needs.hak.outputs.arch }}
ARCH: ${{ steps.config.outputs.arch }}
# We exclude *-unpacked as it loses permissions and the tarball contains it with correct permissions
- name: Upload Artifacts
@@ -214,3 +182,10 @@ jobs:
dist
!dist/*-unpacked/**
retention-days: 1
- name: Assert all required files are present
run: |
test -f ./dist/element-desktop*$ARCH.deb
test -f ./dist/element-desktop*.tar.gz
env:
ARCH: ${{ inputs.arch }}

View File

@@ -143,3 +143,8 @@ jobs:
dist
!dist/mac-universal/**
retention-days: 1
- name: Assert all required files are present
run: |
test -f ./dist/Element*.dmg
test -f ./dist/Element*-mac.zip

View File

@@ -3,6 +3,8 @@
# the correct cache scoping, and additional care must be taken to not run untrusted actions on the develop branch.
# Windows GHA runner by default uses the pwsh shell which breaks codeSigningCert in the workflow
# We always sign using eSignerCKA to ensure it keeps working, but aside from release & nightlies we use demo credentials
# which do not yield trusted signatures.
defaults:
run:
shell: powershell
@@ -116,7 +118,6 @@ jobs:
yarn build:native --target ${{ steps.config.outputs.target }}
- name: Install and configure eSigner CKA
if: inputs.sign
run: |
Set-StrictMode -Version 'Latest'
@@ -134,8 +135,13 @@ jobs:
$LogConfig[0] = '<log4net threshold="OFF">'
$LogConfig | Set-Content -Path ${{ env.INSTALL_DIR }}/log4net.config
# Configure
${{ env.INSTALL_DIR }}/eSignerCKATool.exe config -mode product -user "${{ secrets.ESIGNER_USER_NAME }}" -pass "${{ secrets.ESIGNER_USER_PASSWORD }}" -totp "${{ secrets.ESIGNER_USER_TOTP }}" -key "${{ env.MASTER_KEY_FILE }}" -r
# Configure - default credentials from https://www.ssl.com/guide/esigner-demo-credentials-and-certificates/
${{ env.INSTALL_DIR }}/eSignerCKATool.exe config `
-mode ${{ vars.ESIGNER_MODE || 'sandbox' }} `
-user "${{ secrets.ESIGNER_USER_NAME || 'esigner_demo' }}" `
-pass "${{ secrets.ESIGNER_USER_PASSWORD || 'esignerDemo#1' }}" `
-totp "${{ secrets.ESIGNER_USER_TOTP || 'RDXYgV9qju+6/7GnMf1vCbKexXVJmUVr+86Wq/8aIGg=' }}" `
-key "${{ env.MASTER_KEY_FILE }}" -r
${{ env.INSTALL_DIR }}/eSignerCKATool.exe unload
${{ env.INSTALL_DIR }}/eSignerCKATool.exe load
@@ -168,10 +174,19 @@ jobs:
run: |
yarn electron-builder --publish never -w ${{ steps.config.outputs.build-args }}
- name: Check app was signed successfully
if: inputs.sign != ''
- name: Trust eSigner sandbox cert
if: inputs.sign == ''
run: |
. "$env:SIGNTOOL_PATH" verify /pa (get-item ./dist/squirrel-windows*/*.exe)
Set-StrictMode -Version 'Latest'
Import-Certificate -CertStoreLocation Cert:\LocalMachine\Root -FilePath .github/SSLcom-sandbox.crt
- name: Check app was signed successfully
run: |
Set-StrictMode -Version 'Latest'
Get-ChildItem `
-Recurse dist `
-Include *.exe, *.msi `
| ForEach-Object -Process {. 'C:\Program Files (x86)\Windows Kits\10\bin\10.0.22000.0\x64\signtool.exe' verify /pa $_.FullName; if(!$?) { throw }}
- name: Upload Artifacts
uses: actions/upload-artifact@v4
@@ -180,3 +195,11 @@ jobs:
path: |
dist
retention-days: 1
- name: Assert all required files are present
run: |
Test-Path './dist/win-*unpacked/Element*.exe'
Test-Path './dist/squirrel-windows*/Element Setup*.exe'
Test-Path './dist/squirrel-windows*/element-desktop-*-full.nupkg'
Test-Path './dist/squirrel-windows*/RELEASES'
Test-Path './dist/Element*.msi'

View File

@@ -30,7 +30,7 @@ jobs:
install: true
- name: Build test image
uses: docker/build-push-action@67a2d409c0a876cbe6b11854e3e25193efe4e62d # v6
uses: docker/build-push-action@ca877d9245402d1537745e0e356eab47c3520991 # v6
with:
context: dockerbuild
push: false
@@ -61,7 +61,7 @@ jobs:
- name: Build and push Docker image
if: github.event_name != 'pull_request'
uses: docker/build-push-action@67a2d409c0a876cbe6b11854e3e25193efe4e62d # v6
uses: docker/build-push-action@ca877d9245402d1537745e0e356eab47c3520991 # v6
with:
context: dockerbuild
push: true

20
.github/workflows/triage-stale.yml vendored Normal file
View File

@@ -0,0 +1,20 @@
name: Close stale PRs
on:
workflow_dispatch: {}
schedule:
- cron: "30 1 * * *"
permissions: {}
jobs:
close:
runs-on: ubuntu-24.04
permissions:
actions: write
issues: write
pull-requests: write
steps:
- uses: actions/stale@v9
with:
operations-per-run: 100
days-before-pr-stale: 180
days-before-pr-close: 0
close-pr-message: "This PR has been automatically closed because it has been stale for 180 days. If you wish to continue working on this PR, please ping a maintainer to reopen it."

View File

@@ -7,9 +7,6 @@ export default {
// Brought in via hak scripts
"keytar",
"matrix-seshat",
// Needed by `electron-builder`
"electron-builder-squirrel-windows",
"@types/yargs",
// Required for `action-validator`
"@action-validator/*",
// Used for git pre-commit hooks

View File

@@ -3,8 +3,8 @@
"productName": "Element",
"main": "lib/electron-main.js",
"exports": "./lib/electron-main.js",
"version": "1.11.92",
"description": "A feature-rich client for Matrix.org",
"version": "1.11.91",
"description": "Element: the future of secure communication",
"author": "Element",
"homepage": "https://element.io",
"repository": {
@@ -57,9 +57,9 @@
},
"dependencies": {
"@sentry/electron": "^5.0.0",
"@standardnotes/electron-clear-data": "^1.0.5",
"auto-launch": "^5.0.5",
"counterpart": "^0.18.6",
"electron-clear-data": "^1.0.5",
"electron-store": "^10.0.0",
"electron-window-state": "^5.0.3",
"minimist": "^1.2.6",
@@ -73,23 +73,21 @@
"@babel/preset-env": "^7.18.10",
"@babel/preset-typescript": "^7.18.6",
"@electron/asar": "3.2.18",
"@mapbox/node-pre-gyp": "^1.0.11",
"@playwright/test": "1.49.1",
"@stylistic/eslint-plugin": "^2.9.0",
"@playwright/test": "1.50.1",
"@stylistic/eslint-plugin": "^3.0.0",
"@types/auto-launch": "^5.0.1",
"@types/counterpart": "^0.18.1",
"@types/minimist": "^1.2.1",
"@types/node": "18.19.71",
"@types/node": "18.19.74",
"@types/pacote": "^11.1.1",
"@types/yargs": "^17.0.32",
"@typescript-eslint/eslint-plugin": "^8.0.0",
"@typescript-eslint/parser": "^8.0.0",
"app-builder-lib": "^26.0.1",
"app-builder-lib": "26.0.7",
"chokidar": "^4.0.0",
"detect-libc": "^2.0.0",
"electron": "34.0.1",
"electron-builder": "^26.0.1",
"electron-builder-squirrel-windows": "^26.0.1",
"electron": "34.0.2",
"electron-builder": "26.0.7",
"electron-builder-squirrel-windows": "26.0.7",
"electron-devtools-installer": "^4.0.0",
"eslint": "^8.26.0",
"eslint-config-google": "^0.14.0",
@@ -117,7 +115,7 @@
"keytar": "^7.9.0"
},
"resolutions": {
"@types/node": "18.19.71",
"@types/node": "18.19.74",
"config-file-ts": "0.2.8-rc1"
}
}

View File

@@ -1,4 +1,4 @@
FROM mcr.microsoft.com/playwright:v1.49.1-jammy
FROM mcr.microsoft.com/playwright:v1.50.1-jammy
WORKDIR /work/element-desktop

View File

@@ -1,11 +0,0 @@
/*
Copyright 2022-2024 New Vector Ltd.
SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
declare module "@mapbox/node-pre-gyp/lib/util/versioning" {
// eslint-disable-next-line @typescript-eslint/naming-convention
export function get_runtime_abi(runtime: string, version: string): string;
}

View File

@@ -8,31 +8,24 @@ Please see LICENSE files in the repository root for full details.
import path from "node:path";
import os from "node:os";
import nodePreGypVersioning from "@mapbox/node-pre-gyp/lib/util/versioning";
import { getElectronVersionFromInstalled } from "app-builder-lib/out/electron/electronVersion.js";
import childProcess, { SpawnOptions } from "node:child_process";
import childProcess, { type SpawnOptions } from "node:child_process";
import { Arch, Target, TARGETS, getHost, isHostId, TargetId } from "./target.js";
async function getRuntime(projectRoot: string): Promise<string> {
const electronVersion = await getElectronVersionFromInstalled(projectRoot);
return electronVersion ? "electron" : "node-webkit";
}
import { type Arch, type Target, TARGETS, getHost, isHostId, type TargetId } from "./target.js";
async function getRuntimeVersion(projectRoot: string): Promise<string> {
const electronVersion = await getElectronVersionFromInstalled(projectRoot);
if (electronVersion) {
return electronVersion;
} else {
return process.version.substr(1);
if (!electronVersion) {
throw new Error("Can't determine Electron version");
}
return electronVersion;
}
export type Tool = [cmd: string, ...args: string[]];
export default class HakEnv {
public readonly target: Target;
public runtime?: string;
public runtime: string = "electron";
public runtimeVersion?: string;
public dotHakDir: string;
@@ -50,19 +43,9 @@ export default class HakEnv {
}
public async init(): Promise<void> {
this.runtime = await getRuntime(this.projectRoot);
this.runtimeVersion = await getRuntimeVersion(this.projectRoot);
}
public getRuntimeAbi(): string {
return nodePreGypVersioning.get_runtime_abi(this.runtime!, this.runtimeVersion!);
}
// {node_abi}-{platform}-{arch}
public getNodeTriple(): string {
return this.getRuntimeAbi() + "-" + this.target.platform + "-" + this.target.arch;
}
public getTargetId(): TargetId {
return this.target.id;
}

View File

@@ -15,8 +15,6 @@ import type { DependencyInfo } from "./dep.js";
import { loadJsonFile } from "../../src/utils.js";
import packageJson from "../../package.json";
const GENERALCOMMANDS = ["target"];
// These can only be run on specific modules
const MODULECOMMANDS = ["check", "fetch", "link", "build", "copy", "clean"];
@@ -120,13 +118,6 @@ async function main(): Promise<void> {
if (modules.length === 0) modules = Object.keys(deps);
for (const cmd of cmds) {
if (GENERALCOMMANDS.includes(cmd)) {
if (cmd === "target") {
console.log(hakEnv.getNodeTriple());
}
return;
}
if (!MODULECOMMANDS.includes(cmd)) {
console.error("Unknown command: " + cmd);
console.log("Commands I know about:");

View File

@@ -10,8 +10,8 @@ import path from "node:path";
import os from "node:os";
import fsProm from "node:fs/promises";
import HakEnv from "./hakEnv.js";
import { DependencyInfo } from "./dep.js";
import type HakEnv from "./hakEnv.js";
import { type DependencyInfo } from "./dep.js";
export default async function link(hakEnv: HakEnv, moduleInfo: DependencyInfo): Promise<void> {
const yarnrc = path.join(hakEnv.projectRoot, ".yarnrc");

View File

@@ -5,11 +5,11 @@ SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Com
Please see LICENSE files in the repository root for full details.
*/
import { BrowserWindow } from "electron";
import Store from "electron-store";
import AutoLaunch from "auto-launch";
import { type BrowserWindow } from "electron";
import { AppLocalization } from "../language-helper.js";
import type Store from "electron-store";
import type AutoLaunch from "auto-launch";
import { type AppLocalization } from "../language-helper.js";
// global type extensions need to use var for whatever reason
/* eslint-disable no-var */

View File

@@ -10,7 +10,7 @@ Please see LICENSE files in the repository root for full details.
// Squirrel on windows starts the app with various flags as hooks to tell us when we've been installed/uninstalled etc.
import "./squirrelhooks.js";
import { app, BrowserWindow, Menu, autoUpdater, protocol, dialog, Input, Event, session } from "electron";
import { app, BrowserWindow, Menu, autoUpdater, protocol, dialog, type Input, type Event, session } from "electron";
// eslint-disable-next-line n/file-extension-in-import
import * as Sentry from "@sentry/electron/main";
import AutoLaunch from "auto-launch";

View File

@@ -6,7 +6,7 @@ Please see LICENSE files in the repository root for full details.
*/
import { app, autoUpdater, desktopCapturer, ipcMain, powerSaveBlocker, TouchBar, nativeImage } from "electron";
import { relaunchApp } from "electron-clear-data";
import { relaunchApp } from "@standardnotes/electron-clear-data";
import IpcMainEvent = Electron.IpcMainEvent;
import { recordSSOSession } from "./protocol.js";

View File

@@ -6,7 +6,7 @@ Please see LICENSE files in the repository root for full details.
*/
import counterpart from "counterpart";
import { TranslationKey as TKey } from "matrix-web-i18n";
import { type TranslationKey as TKey } from "matrix-web-i18n";
import { dirname } from "node:path";
import { fileURLToPath } from "node:url";

View File

@@ -6,7 +6,7 @@ SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Com
Please see LICENSE files in the repository root for full details.
*/
import { app, shell, Menu, MenuItem, MenuItemConstructorOptions } from "electron";
import { app, shell, Menu, type MenuItem, type MenuItemConstructorOptions } from "electron";
import { _t } from "./language-helper.js";

View File

@@ -13,13 +13,13 @@ import {
shell,
dialog,
ipcMain,
NativeImage,
WebContents,
ContextMenuParams,
DownloadItem,
MenuItemConstructorOptions,
IpcMainEvent,
Event,
type NativeImage,
type WebContents,
type ContextMenuParams,
type DownloadItem,
type MenuItemConstructorOptions,
type IpcMainEvent,
type Event,
} from "electron";
import url from "node:url";
import fs from "node:fs";

1346
yarn.lock
View File

File diff suppressed because it is too large Load Diff