Switch remote deploy to vendored source builds
Move remote deployment to a vendored source bundle built on the target host via Docker so redeploys no longer require local cross-compilation or host Go installation. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
25
vendor/github.com/wailsapp/wails/v2/internal/wv2installer/browser.go
generated
vendored
Normal file
25
vendor/github.com/wailsapp/wails/v2/internal/wv2installer/browser.go
generated
vendored
Normal file
@@ -0,0 +1,25 @@
|
||||
//go:build windows && wv2runtime.browser
|
||||
// +build windows,wv2runtime.browser
|
||||
|
||||
package wv2installer
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/wailsapp/wails/v2/internal/webview2runtime"
|
||||
"github.com/wailsapp/wails/v2/pkg/options/windows"
|
||||
)
|
||||
|
||||
func doInstallationStrategy(installStatus installationStatus, messages *windows.Messages) error {
|
||||
confirmed, err := webview2runtime.Confirm(messages.DownloadPage+MinimumRuntimeVersion, messages.MissingRequirements)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if confirmed {
|
||||
err = webview2runtime.OpenInstallerDownloadWebpage()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
return fmt.Errorf(messages.FailedToInstall)
|
||||
}
|
||||
35
vendor/github.com/wailsapp/wails/v2/internal/wv2installer/download.go
generated
vendored
Normal file
35
vendor/github.com/wailsapp/wails/v2/internal/wv2installer/download.go
generated
vendored
Normal file
@@ -0,0 +1,35 @@
|
||||
//go:build windows && !wv2runtime.error && !wv2runtime.browser && !wv2runtime.embed
|
||||
// +build windows,!wv2runtime.error,!wv2runtime.browser,!wv2runtime.embed
|
||||
|
||||
package wv2installer
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/wailsapp/wails/v2/internal/webview2runtime"
|
||||
"github.com/wailsapp/wails/v2/pkg/options/windows"
|
||||
)
|
||||
|
||||
func doInstallationStrategy(installStatus installationStatus, messages *windows.Messages) error {
|
||||
message := messages.InstallationRequired
|
||||
if installStatus == needsUpdating {
|
||||
message = messages.UpdateRequired
|
||||
}
|
||||
confirmed, err := webview2runtime.Confirm(message, messages.MissingRequirements)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if !confirmed {
|
||||
return fmt.Errorf(messages.Webview2NotInstalled)
|
||||
}
|
||||
installedCorrectly, err := webview2runtime.InstallUsingBootstrapper()
|
||||
if err != nil {
|
||||
_ = webview2runtime.Error(err.Error(), messages.Error)
|
||||
return err
|
||||
}
|
||||
if !installedCorrectly {
|
||||
err = webview2runtime.Error(messages.FailedToInstall, messages.Error)
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
35
vendor/github.com/wailsapp/wails/v2/internal/wv2installer/embed.go
generated
vendored
Normal file
35
vendor/github.com/wailsapp/wails/v2/internal/wv2installer/embed.go
generated
vendored
Normal file
@@ -0,0 +1,35 @@
|
||||
//go:build windows && wv2runtime.embed
|
||||
// +build windows,wv2runtime.embed
|
||||
|
||||
package wv2installer
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/wailsapp/wails/v2/internal/webview2runtime"
|
||||
"github.com/wailsapp/wails/v2/pkg/options/windows"
|
||||
)
|
||||
|
||||
func doInstallationStrategy(installStatus installationStatus, messages *windows.Messages) error {
|
||||
message := messages.InstallationRequired
|
||||
if installStatus == needsUpdating {
|
||||
message = messages.UpdateRequired
|
||||
}
|
||||
message += messages.PressOKToInstall
|
||||
confirmed, err := webview2runtime.Confirm(message, messages.MissingRequirements)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if !confirmed {
|
||||
return fmt.Errorf(messages.Webview2NotInstalled)
|
||||
}
|
||||
installedCorrectly, err := webview2runtime.InstallUsingEmbeddedBootstrapper()
|
||||
if err != nil {
|
||||
_ = webview2runtime.Error(err.Error(), messages.Error)
|
||||
return err
|
||||
}
|
||||
if !installedCorrectly {
|
||||
err = webview2runtime.Error(messages.FailedToInstall, messages.Error)
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
15
vendor/github.com/wailsapp/wails/v2/internal/wv2installer/error.go
generated
vendored
Normal file
15
vendor/github.com/wailsapp/wails/v2/internal/wv2installer/error.go
generated
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
//go:build windows && wv2runtime.error
|
||||
// +build windows,wv2runtime.error
|
||||
|
||||
package wv2installer
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/wailsapp/wails/v2/internal/webview2runtime"
|
||||
"github.com/wailsapp/wails/v2/pkg/options/windows"
|
||||
)
|
||||
|
||||
func doInstallationStrategy(installStatus installationStatus, messages *windows.Messages) error {
|
||||
_ = webview2runtime.Error(messages.ContactAdmin, messages.Error)
|
||||
return fmt.Errorf(messages.Webview2NotInstalled)
|
||||
}
|
||||
60
vendor/github.com/wailsapp/wails/v2/internal/wv2installer/wv2installer.go
generated
vendored
Normal file
60
vendor/github.com/wailsapp/wails/v2/internal/wv2installer/wv2installer.go
generated
vendored
Normal file
@@ -0,0 +1,60 @@
|
||||
//go:build windows
|
||||
|
||||
package wv2installer
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/wailsapp/go-webview2/webviewloader"
|
||||
"github.com/wailsapp/wails/v2/pkg/options"
|
||||
"github.com/wailsapp/wails/v2/pkg/options/windows"
|
||||
)
|
||||
|
||||
const MinimumRuntimeVersion string = "94.0.992.31" // WebView2 SDK 1.0.992.28
|
||||
|
||||
type installationStatus int
|
||||
|
||||
const (
|
||||
needsInstalling installationStatus = iota
|
||||
needsUpdating
|
||||
)
|
||||
|
||||
func Process(appoptions *options.App) (string, error) {
|
||||
messages := windows.DefaultMessages()
|
||||
if appoptions.Windows != nil && appoptions.Windows.Messages != nil {
|
||||
messages = appoptions.Windows.Messages
|
||||
}
|
||||
|
||||
installStatus := needsInstalling
|
||||
|
||||
// Override version check for manually specified webview path if present
|
||||
var webviewPath = ""
|
||||
if opts := appoptions.Windows; opts != nil && opts.WebviewBrowserPath != "" {
|
||||
webviewPath = opts.WebviewBrowserPath
|
||||
}
|
||||
|
||||
installedVersion, err := webviewloader.GetAvailableCoreWebView2BrowserVersionString(webviewPath)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
if installedVersion != "" {
|
||||
installStatus = needsUpdating
|
||||
compareResult, err := webviewloader.CompareBrowserVersions(installedVersion, MinimumRuntimeVersion)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
updateRequired := compareResult < 0
|
||||
// Installed and does not require updating
|
||||
if !updateRequired {
|
||||
return installedVersion, nil
|
||||
}
|
||||
}
|
||||
|
||||
// Force error strategy if webview is manually specified
|
||||
if webviewPath != "" {
|
||||
return installedVersion, fmt.Errorf(messages.InvalidFixedWebview2)
|
||||
}
|
||||
|
||||
return installedVersion, doInstallationStrategy(installStatus, messages)
|
||||
}
|
||||
Reference in New Issue
Block a user