Commit Graph

75 Commits

Author SHA1 Message Date
Elias Naur 4e6a9c0909 cmd: delete tools module
It has moved to its own repository:

https://git.sr.ht/~eliasnaur/gio-cmd

Signed-off-by: Elias Naur <mail@eliasnaur.com>
2022-04-24 14:39:16 +02:00
Elias Naur 4a061a7d40 .builds: use Android SDK for 32-bit build test
With GOARCH=386, we can't readily build packages that use Cgo. However,
we already have the Android SDK available, so use that to test for 32-bit
issues such as #384.

References: https://todo.sr.ht/~eliasnaur/gio/384
Signed-off-by: Elias Naur <mail@eliasnaur.com>
2022-03-28 17:47:57 +02:00
Chris Waldon 3fb522caff ci: test non-cgo packages in 32-bit mode
This commit runs Gio's test harness in 32-bit mode as well as 64-bit. This helps
catch bugs in Gio and its dependencies where integer overflow causes build or
runtime problems.

The complexities of cross-compiling CGO made it prohibitively difficult to test
all of Gio, so these changes only run tests for packages in pure Go.

References: https://todo.sr.ht/~eliasnaur/gio/384
Signed-off-by: Chris Waldon <christopher.waldon.dev@gmail.com>
2022-03-26 08:36:14 +01:00
Elias Naur 317635b176 .builds: disable Vulkan on FreeBSD
Running GPU tests on freeBSD currently fails with

vulkan: vkCreateGraphicsPipelines: error -8

Disable Vulkan by removing the vulkan-loader package.

Signed-off-by: Elias Naur <mail@eliasnaur.com>
2022-03-11 20:34:49 +01:00
Elias Naur 2b0898fc67 .builds: upgrade Android builds tools and SDK
Fixes the build.

Signed-off-by: Elias Naur <mail@eliasnaur.com>
2022-03-07 09:42:53 +01:00
Elias Naur 09309d330d .builds: upgrade to Go 1.17.7
Signed-off-by: Elias Naur <mail@eliasnaur.com>
2022-03-02 16:53:02 +01:00
Elias Naur 6294390df2 .builds: disable OpenGL tests on FreeBSD
For some reason, the Mesa OpenGL software renderer fails to correctly
render some of the tests in gpu/internal/rendertest. The Linux builder
uses the Vulkan software renderer, so only the FreeBSD builders fails.

The root cause may be a Gio issue, but since all the other backends work,
including hardware OpenGL, there is a likelyhood the issue is in Mesa.
I don't have the temperament to debug Mesa issues, so this change disables
software OpenGL on FreeBSD, which will cause the rendertests to skip.

Running Vulkan tests under FreeBSD is blocked on

https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=257303

In practice it won't matter: FreeBSD and Linux use the same software
for software renderers.

Signed-off-by: Elias Naur <mail@eliasnaur.com>
2022-01-25 13:33:30 +01:00
Elias Naur b0b4013cdb .builds: run tests in Vulkan mode
Signed-off-by: Elias Naur <mail@eliasnaur.com>
2021-11-10 15:44:28 +01:00
Elias Naur 8999747ad2 app,gpu,internal/vk: add Vulkan port for Wayland, X11, Android
This change implements a Vulkan port for the two renderers, old and
compute. Run with GIORENDERER=forcecompute to test the compute renderer.

To shake out bugs faster, it is also made the default on systems that
support it. To disable Vulkan and force the use of OpenGL, use the
`novulkan` tag:

$ go run -tags novulkan gioui.org/example/kitchen

Don't forget to file an issue describing the issue that prompted the use
of the tag.

Signed-off-by: Elias Naur <mail@eliasnaur.com>
2021-09-21 18:40:05 +02:00
Pierre Curto 30663a71c5 build: check gofmt and sign-off first
Fixes #264

Signed-off-by: Pierre Curto <pierre.curto@gmail.com>
2021-09-06 17:09:21 +02:00
Elias Naur 671f0b1858 .builds: update Google Chrome repository URL
The old one no longer works.

Signed-off-by: Elias Naur <mail@eliasnaur.com>
2021-09-01 14:28:58 +02:00
Elias Naur 4dd6a50670 .builds: upgrade Apple builder to Go 1.16
Signed-off-by: Elias Naur <mail@eliasnaur.com>
2021-08-08 13:53:19 +02:00
Elias Naur 43c5082dab .builds: upgrade to FreeBSD 13
Signed-off-by: Elias Naur <mail@eliasnaur.com>
2021-07-29 08:23:21 +02:00
Elias Naur a77d74f20a .builds: disable go.local.mod test for gogio
I gave up figuring out how to run it under Go 1.17.

Signed-off-by: Elias Naur <mail@eliasnaur.com>
2021-07-27 12:23:20 +02:00
Elias Naur 17e9896e58 .builds: upgrade to Go 1.16.6
Signed-off-by: Elias Naur <mail@eliasnaur.com>
2021-07-27 12:23:20 +02:00
Elias Naur c21897620b .builds: upgrade OpenBSD Go version
Attempting to fix a segmentation during make.bash.

Signed-off-by: Elias Naur <mail@eliasnaur.com>
2021-06-01 18:16:15 +02:00
Elias Naur a7be7cc22b .builds: bump android SDK version to fix gogio builds
Upgrade gogio's version of the gioui.org module while here.

Signed-off-by: Elias Naur <mail@eliasnaur.com>
2021-05-19 11:38:43 +02:00
Elias Naur e49afe7fa1 .builds: silence apt-get, curl commands
Signed-off-by: Elias Naur <mail@eliasnaur.com>
2021-03-28 15:45:13 +02:00
Elias Naur c2e0910c8b .builds: don't pass -v to go test
Some tests are so verbose they hide the relevant error messages.

Signed-off-by: Elias Naur <mail@eliasnaur.com>
2021-03-28 14:17:04 +02:00
Elias Naur 4f3f0fa50c .builds: enable headless rendering tests on FreeBSD
Signed-off-by: Elias Naur <mail@eliasnaur.com>
2021-02-18 08:57:54 +01:00
Elias Naur 33a1c4722a .builds: don't set EGL_PLATFORM for chrome tests
EGL_PLATFORM=surfaceless allows rendering tests to complete in headless
mode. However, the headless chrome tests fail with that setting. Change
the linux builder to only set the variable when needed.

Enable verbose output of tests while here. We can keep an eye on skipped
tests that way.

Signed-off-by: Elias Naur <mail@eliasnaur.com>
2021-02-18 08:33:42 +01:00
Elias Naur 29af250ac6 .builds: remove cross compiler arguments
A recent change to the native toolchain or system on the builder infrastructure
made the arguments for the apple cross compiler needed always, not just in
CGO_CFLAGS and CGO_LDFLAGS.

Remove them altogether and rely on a recent change to the giouiorg repository
for including them in the clang-ios and clang-macos wrappers.

Signed-off-by: Elias Naur <mail@eliasnaur.com>
2021-02-15 11:59:16 +01:00
Elias Naur 74cee277ca .builds: clarify missing sign-off error message
Signed-off-by: Elias Naur <mail@eliasnaur.com>
2020-12-17 21:35:18 +01:00
Elias Naur e0a8202aa0 .builds: enable headless OpenGL tests on linux
Signed-off-by: Elias Naur <mail@eliasnaur.com>
2020-12-17 20:35:28 +01:00
Chris Waldon eb719eaa54 ci: configure automatic mirroring to GitHub
Signed-off-by: Chris Waldon <christopher.waldon.dev@gmail.com>
2020-12-14 23:56:54 +01:00
Elias Naur b456e987f7 .builds: prepare for splitting out examples in separate repository
The example module is moving to git.sr.ht/~eliasnaur/gio-example.
We still need some main package for testing gogio, so update reference
to use the module path (gioui.org/example).

Signed-off-by: Elias Naur <mail@eliasnaur.com>
2020-12-08 19:40:57 +01:00
Elias Naur 53e0733d20 .builds: test iOS/Android builds of the gioui.org module, not just the example
The kitchen example may not yet refer to the newest version of the gioui.org
module.

Signed-off-by: Elias Naur <mail@eliasnaur.com>
2020-12-05 14:32:13 +01:00
Elias Naur eb91b2c517 .builds: install chrome dependency just before needing it
Reduces the time it takes for core and example tests to complete.

Signed-off-by: Elias Naur <mail@eliasnaur.com>
2020-12-04 19:06:08 +01:00
pierre 69cc2c795c app: add support for system cursors
Signed-off-by: pierre <pierre.curto@gmail.com>
2020-12-03 16:45:17 +01:00
Elias Naur e2f9ebe87e .builds: add check for missing sign-offs
As suggested by Chris Waldon, this will catch pushes to master and
also during automatic testing of patches sent to the mailing list.

Signed-off-by: Elias Naur <mail@eliasnaur.com>
2020-11-19 18:56:47 +01:00
Elias Naur 8886f9de56 .builds: add SPDX license header
Signed-off-by: Elias Naur <mail@eliasnaur.com>
2020-11-19 18:44:57 +01:00
Elias Naur fe9c11dfe3 .builds: move go fmt check last
The check is important, but shouldn't block the other tests from running.

Signed-off-by: Elias Naur <mail@eliasnaur.com>
2020-11-19 18:11:55 +01:00
Elias Naur f3f32ed7aa .builds: avoid the private applesdk repository
Should fix the automatic builds for patches sent to the mailing list.

Signed-off-by: Elias Naur <mail@eliasnaur.com>
2020-11-11 12:57:48 +01:00
Elias Naur f9642447ec .builds: fix FreeBSD builders
For some reason, the FreeBSD 12 image doesn't have xorg-vfbserver.

Signed-off-by: Elias Naur <mail@eliasnaur.com>
2020-10-26 21:34:23 +01:00
Elias Naur 2ddd4f1985 .builds: fix apple builder
The python package is gone, we may not need it and/or Debian installs
python3 by default.

curl is needed for automatically applying patches from the mailing list.

Signed-off-by: Elias Naur <mail@eliasnaur.com>
2020-10-13 15:31:19 +02:00
Elias Naur 829ee4559c .builds: remove annotations
They're gone from sr.ht, according to
https://todo.sr.ht/~sircmpwn/git.sr.ht/318#event-47831.

Signed-off-by: Elias Naur <mail@eliasnaur.com>
2020-08-29 18:27:55 +02:00
Elias Naur c03dde453c .builds: merge android.yml into linux.yml
sr.ht recently lowered the number of concurrent builders per commit
to 4.

Signed-off-by: Elias Naur <mail@eliasnaur.com>
2020-08-29 17:50:31 +02:00
Elias Naur 9543b5f8f3 .builds: add missing dependency
Signed-off-by: Elias Naur <mail@eliasnaur.com>
2020-08-24 19:42:09 +02:00
Elias Naur 103c6a1911 .builds: replace ANDROID_HOME with ANDROID_SDK_ROOT
Signed-off-by: Elias Naur <mail@eliasnaur.com>
2020-08-24 19:25:37 +02:00
Daniel Martí 9ad412ea0b cmd: bump gioui.org dependency, use -modfile properly on CI
A simple 'go test -modfile=<path>' won't work properly for the
end-to-end tests, since they run 'go build' under the hood as well.

To properly propagate the flag, we need to use GOFLAGS. Since -modfile
is always relative to the current directory, we can't use it to test
many packages at once, nor can we use it via 'go test ./gogio'.

While at it, document this distinction in go.local.mod to prevent others
getting confused like I did.

Signed-off-by: Daniel Martí <mvdan@mvdan.cc>
2020-05-10 20:32:53 +02:00
Daniel Martí ec34eb4919 cmd: add a go.local.mod for development
It's essentially a copy of go.mod, but with the gioui.org module replaed
with the parent directory. Useful when wanting to try a change in the
root module as part of a gogio invocation or end-to-end test, such as
either of the following:

	$ cd cmd; go test -modfile=go.local.mod ./...
	$ cd cmd/gogio; go build -modfile=../go.local.mod

Since go.sum can essentially be shared, and since it seems to work with
the go tool, use a symlink. The way the -modfile flag works, if given
foo.mod, it will use the sum file at foo.sum. The only caveat is that
'go mod tidy -modfile=go.mod.local' will try to remove gioui.org lines,
since that module is replaced. So tidy shouldn't be used with -modfile.

In the future, the only upkeep needed for go.local.mod is to update the
external dependencies to mirror changes in go.mod. This is not automated
nor checked by CI, but it could be in the future if it becomes
repetitive or error-prone.

Signed-off-by: Daniel Martí <mvdan@mvdan.cc>
2020-05-06 08:41:00 +02:00
Elias Naur 0542796463 .builds: add webassembly build test
Signed-off-by: Elias Naur <mail@eliasnaur.com>
2020-04-01 13:32:18 +02:00
Chris Waldon daecdcaabf ci: add skeleton for sourcehut annotations
This commit adds the necessary task to the CI job to generate sourcehut
annotations as documented here:

https://man.sr.ht/git.sr.ht/annotations.md

Signed-off-by: Chris Waldon <christopher.waldon.dev@gmail.com>
2020-03-15 09:30:37 +01:00
Daniel Martí acfe91ec3e CI: add wine on Linux for the Windows e2e test
Installing it on Debian was enough, with the only wrinkle that
propagating -race won't work when we're cross-compiling, since
cross-compilation disables CGo by default.

For now, just skip the test in that edge case. If we want to use the
race detector on Windows in the future, we need to get a Windows CI
builder somehow.

Tested on my fork; see https://builds.sr.ht/~mvdan/job/164899.

Signed-off-by: Daniel Martí <mvdan@mvdan.cc>
2020-03-08 10:52:08 +01:00
Daniel Martí b064899967 cmd/gogio: groundwork for Windows e2e tests on Wine
First, move from debian unstable to testing, since sway was promoted to
testing as of earlier this week.

Second, use the --sync option when using xdotool to move an X11 mouse.
This makes the command block until the mouse has finished moving to the
specified location, removing a potential race with the following
'xdotool click' command.

Third, deduplicate some logic into driverBase: tempDir to create a
temporary directory within a test, and needPrograms to skip a test if
the required programs aren't available.

Lastly, split the code that starts the X11 server into a method, so that
the future Wine e2e driver can reuse it. Since Wine is tightly coupled
with X11, we can reuse a good part of the code, including the X11 server
and the xdotool mechanisms.

We also add a TODO to perhaps improve the handling of the app's output
under each of the e2e test cases.

Signed-off-by: Daniel Martí <mvdan@mvdan.cc>
2020-03-02 10:29:17 +01:00
Elias Naur 4b7387369b .builds: upgrade to Go 1.14 final
Signed-off-by: Elias Naur <mail@eliasnaur.com>
2020-02-27 21:56:18 +01:00
Daniel Martí 150b34aede .builds: re-add sway on Debian
It passes now, thanks to the recent work to add retries to screenshots.

If it turns out to still not be reliable enough, we can look at this
again.

Signed-off-by: Daniel Martí <mvdan@mvdan.cc>
2020-02-20 09:12:02 +01:00
Daniel Martí 47544697fa .builds: switch to Go 1.14rc1 release downloads
On Linux and FreeBSD, this means we no longer need to install Go twice,
since we don't need to bootstrap a Go build. This reduces the "install
go" step by over half a minute, and avoids installing a number of distro
packages.

Debian requires the pkg-config package to be explicit, as it's not part
of the build-essential metapackage, and we need it. It was being pulled
as a dependency from the golang package before.

OpenBSD is nearly the same change, modulo the fact that Go doesn't have
a binary release for it. So instead, we keep installing Go via the
system's package, and we download and build a source archive.

Finally, switch from Debian testing+experimental to simply unstable.
Sway 1.4 finally hit unstable a few days ago, and experimental is
extremely unstable, so this is a step in the right direction. Add a TODO
about going to just testing once sway 1.4 arrives there.

Signed-off-by: Daniel Martí <mvdan@mvdan.cc>
2020-02-09 10:58:35 +01:00
Elias Naur 5f3f7b3514 .builds: make the GLFW example build on the automatic builders
Signed-off-by: Elias Naur <mail@eliasnaur.com>
2020-02-08 00:14:20 +01:00
Elias Naur dcacca3442 .builds: don't rely on Sway being available
The Sway Debian experimental package is currently broken. Make it
optional.

Signed-off-by: Elias Naur <mail@eliasnaur.com>
2020-02-03 14:47:11 +01:00