Skip to content

Commit 7fa6e7f

Browse files
authored
feat(macos): integrate Sparkle autoupdate framework (#2430)
This does a couple things: - adds an `oni2_sparkle` library - brings in `Sparkle.framework` - separates out the release-based scripts to an `@release` namespace - add both `Feature_AutoUpdate` and `Service_AutoUpdate` projects - probably other things I'm forgetting This is still WIP, but I'm making good progress so hopefully it should be done (relatively) soon!
1 parent ef40f97 commit 7fa6e7f

File tree

586 files changed

+22775
-109
lines changed

Some content is hidden

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

586 files changed

+22775
-109
lines changed

.ci/clean-windows-deps.yml

+46
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
steps:
2+
# Remove Rust:
3+
# https://github.com/actions/virtual-environments/blob/main/images/win/scripts/Installers/Install-Rust.ps1
4+
- script: rd /s /q "C:\Rust"
5+
displayName: 'Remove Rust'
6+
# Remove R
7+
# https://github.com/actions/virtual-environments/blob/main/images/win/scripts/Installers/Install-R.ps1
8+
- script: rd /s /q "C:\Program Files\R"
9+
displayName: 'Remove R'
10+
# Remove Julia
11+
# https://github.com/actions/virtual-environments/blob/main/images/win/scripts/Installers/Install-Julia.ps1
12+
- script: rd /s /q "C:\Julia"
13+
displayName: "Remove Julia"
14+
- script: rd /s /q "C:\Program Files\PostgreSQL"
15+
displayName: "Remove PostgreSQL"
16+
- script: rd /s /q "C:\Program Files\Mozilla Firefox"
17+
displayName: "Remove Firefox"
18+
- script: rd /s /q "C:\Program Files\Google\Chrome"
19+
displayName: "Remove Google Chrome"
20+
- script: rd /s /q "C:\Program Files\TortoiseSVN"
21+
displayName: "Remove TortoiseSVN"
22+
- script: rd /s /q "C:\Program Files\Internet Explorer"
23+
displayName: "Remove Internet Explorer"
24+
- script: rd /s /q "C:\Program Files\Unity"
25+
displayName: "Remove Unity"
26+
- script: rd /s /q "C:\Program Files\Android"
27+
displayName: "Remove Android SDK"
28+
- script: rd /s /q "C:\Program Files\MongoDB"
29+
displayName: "Remove MongoDB"
30+
- script: rd /s /q "C:\Program Files\Java"
31+
displayName: "Remove Java"
32+
- script: rd /s /q "C:\Program Files\Internet Explorer"
33+
displayName: "Remove Internet Explorer"
34+
- script: rd /s /q "C:\Strawberry"
35+
displayName: "Remove Strawberry"
36+
- script: rd /s /q "C:\selenium"
37+
displayName: "Remove Selenium"
38+
- script: rd /s /q "C:\SeleniumWebDrivers"
39+
displayName: "Remove Selenium Web Drivers"
40+
- script: rd /s /q "C:\mysql-5.7.21-winx64"
41+
displayName: "Remove MySQL"
42+
43+
- script: dir "C:/Program Files/"
44+
displayName: "List Program Files"
45+
- script: dir "C:/"
46+
displayName: "List C:/"

.ci/esy-build-steps.yml

+9-15
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
# Cross-platform set of build steps for building esy projects
22

33
steps:
4-
- script: npm install -g esy@0.6.6
5-
displayName: 'Install Esy: npm install -g esy@0.6.6'
64
- script: esy install
75
displayName: 'Install Dependencies: esy install'
86
- script: esy bootstrap
@@ -17,8 +15,15 @@ steps:
1715
displayName: "esy x Oni2_editor -f --version"
1816
- script: esy x Oni2 -f --checkhealth
1917
displayName: "esy x Oni2 -f --checkhealth"
20-
- script: esy create-release
21-
displayName: "esy create-release"
18+
- script: 'esy @release install'
19+
displayName: 'Release: install'
20+
- script: 'esy @release build'
21+
displayName: 'esy @release build'
22+
- script: 'esy @release run -f --version'
23+
displayName: 'esy @release run -f --version'
24+
continueOnError: true
25+
- script: esy @release create --codesign
26+
displayName: "esy @release create --codesign"
2227
- script: esy build-env
2328
displayName: "Esy: show build env"
2429
- script: esy @test install
@@ -31,17 +36,6 @@ steps:
3136
env:
3237
ASAN_OPTIONS: use_sigaltstack=0
3338
LSAN_OPTIONS: suppressions=integration_test/lsan.supp
34-
# - script: esy @test run-ci
35-
# displayName: 'Unit Tests: esy test-ci (round 2)'
36-
# - script: esy @test run-ci
37-
# displayName: 'Unit Tests: esy test-ci (round 3)'
38-
- script: esy @integrationtest install
39-
displayName: 'Integration Tests: install'
40-
- script: esy @integrationtest run
41-
displayName: 'Integration Tests: run'
42-
env:
43-
ASAN_OPTIONS: use_sigaltstack=0
44-
LSAN_OPTIONS: suppressions=lsan.supp
4539
# TODO: Stabilize and bring back!
4640
# - script: esy x OniUnitTestRunner
4741
# displayName: 'Unit Tests: esy x OniUnitTestRunner (round 2)'

.ci/release-and-publish.yml

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
# Cross-platform set of build steps for building esy projects
22

33
steps:
4-
- script: esy x Oni2 --help
4+
- script: esy @release x Oni2 --help
55
displayName: "esy x Oni2 --help"
6-
- script: esy create-release
7-
displayName: "esy create-release"
6+
- script: esy @release create --codesign
7+
displayName: "esy @release create --codesign"
88
- task: PublishBuildArtifacts@1
99
displayName: "Release Artifact: ${{ parameters.platform }}"
1010
inputs:

.ci/run-integration-tests.yml

-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
11
steps:
2-
- script: npm install -g esy@0.6.2
3-
displayName: 'Install Esy: npm install -g esy@0.6.2'
42
- script: esy install
53
displayName: 'Install Dependencies: esy install'
64
- script: esy bootstrap

.ci/use-esy.yml

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# Cross-platform set of build steps for building esy projects
2+
3+
steps:
4+
- script: npm install -g esy@0.6.6
5+
displayName: 'Install Esy: npm install -g esy@0.6.6'

.gitignore

+3
Original file line numberDiff line numberDiff line change
@@ -77,3 +77,6 @@ setup.json
7777

7878
# JUnit test output for CI
7979
*junit\.xml
80+
81+
certificate.p12
82+
.vscode

azure-pipelines.yml

+31
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ jobs:
7373
- script: sudo apt-get update
7474
- script: sudo apt-get install -y libncurses5-dev libacl1-dev libxrandr-dev libxinerama-dev libxcursor-dev libxi-dev libgl1-mesa-dev libglu1-mesa-dev mesa-utils mesa-utils-extra ragel libgtk-3-dev nasm
7575
- template: .ci/js-build-steps.yml
76+
- template: .ci/use-esy.yml
7677
- template: .ci/esy-build-steps.yml
7778
- template: .ci/run-integration-tests.yml
7879
- template: .ci/publish-build-cache.yml
@@ -125,16 +126,21 @@ jobs:
125126
- template: .ci/restore-build-cache.yml
126127
- template: .ci/swap-xcode.yml
127128
- template: .ci/js-build-steps.yml
129+
- template: .ci/use-esy.yml
128130
- template: .ci/esy-build-steps.yml
129131
parameters:
130132
platform: darwin
133+
- template: .ci/run-integration-tests.yml
134+
parameters:
135+
platform: darwin
131136
- script: _release/Onivim2.App/Contents/MacOS/Oni2 -f --checkhealth
132137
displayName: 'Release: --checkhealth'
133138
- template: .ci/publish-osx.yml
134139
- template: .ci/publish-build-cache.yml
135140

136141
- job: Windows
137142
timeoutInMinutes: 150
143+
displayName: "Windows - Build & Package"
138144
pool:
139145
vmImage: 'vs2017-win2016'
140146

@@ -146,11 +152,13 @@ jobs:
146152
# ESY__NPM_ROOT: /C/npm/prefix/node_modules/esy
147153

148154
steps:
155+
- template: .ci/clean-windows-deps.yml
149156
- template: .ci/use-node.yml
150157
- powershell: ./scripts/windows/verify-signtool.ps1
151158
displayName: 'Validate signtool path'
152159
- template: .ci/restore-build-cache.yml
153160
- template: .ci/js-build-steps.yml
161+
- template: .ci/use-esy.yml
154162
- template: .ci/esy-build-steps.yml
155163
parameters:
156164
platform: windows
@@ -163,6 +171,29 @@ jobs:
163171
- template: .ci/publish-win.yml
164172
- template: .ci/publish-build-cache.yml
165173

174+
- job: WindowsTest
175+
timeoutInMinutes: 150
176+
displayName: "Windows - Integration Test"
177+
pool:
178+
vmImage: 'vs2017-win2016'
179+
180+
variables:
181+
STAGING_DIRECTORY: $(Build.StagingDirectory)
182+
ESY__CACHE_INSTALL_PATH: /C/Users/VssAdministrator/.esy/3______________________________________________________/i
183+
ESY__CACHE_BUILD_PATH: /C/Users/VssAdministrator/.esy/3______________________________________________________/b
184+
ESY__CACHE_SOURCE_TARBALL_PATH: /C/Users/VssAdministrator/.esy/source/i
185+
# ESY__NPM_ROOT: /C/npm/prefix/node_modules/esy
186+
187+
steps:
188+
- template: .ci/clean-windows-deps.yml
189+
- template: .ci/use-node.yml
190+
- template: .ci/restore-build-cache.yml
191+
- template: .ci/js-build-steps.yml
192+
- template: .ci/use-esy.yml
193+
- template: .ci/run-integration-tests.yml
194+
parameters:
195+
platform: windows
196+
166197
- job: ValidateLinuxReleaseUbuntu16
167198
displayName: "Linux: Validate Release (Ubuntu 16.04)"
168199
dependsOn:

bench.esy.lock/index.json

+8-9
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

docs/docs/for-developers/building.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ We use auto formatting tool, you might want to run it before you commit changes
101101
To create a release build, run:
102102

103103
- `esy x Oni2 -f --checkhealth`
104-
- `esy create-release`
104+
- `esy @release create`
105105

106106
This will create a `_release` folder at the root with the application bundle inside.
107107

esy.lock/index.json

+8-9
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

integrationtest.esy.lock/index.json

+8-9
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)