Commit graph

107 commits

Author SHA1 Message Date
Leroy Hopson
7796afa3c0
Update workflow to address warnings
- Upgrades actions using Node.js 12 to versions using Node.js 16.
- Updates deprecated set-output command.
- Specifies more specific version of CMake on macOS runner.
2023-01-11 08:19:10 +13:00
Leroy Hopson
8b5caafbc7
Pin GitHub-hosted runner versions
- ubuntu-latest -> ubuntu-22.04
- macos-latest -> macos-12
- windows-latest -> windows-2022
2022-08-27 20:49:48 +12:00
Leroy Hopson
6fce61364d
Use non-pinned major versions of actions 2022-08-27 20:49:17 +12:00
Leroy Hopson
66f656bda5
Retry import and export commands 2022-08-27 20:39:54 +12:00
Leroy Hopson
cceffd4edf
Use load() rather than preload() for terminal icon
Allows the plugin to load even if resources have not been imported yet.
For example, if someone has opened a project with the plugin for the
first time. Otherwise, the plugin will fail to load and be disable in
the `project.godot` file.
2022-08-27 10:32:27 +12:00
Leroy Hopson
10b9764fb3
Use default export templates for HTML5
Changes Emscripten SDK version to match that used to compile the default export
templates used by Godot 3.5 (in this case 3.1.14 as can be seen here:
https://github.com/godotengine/build-containers/blob/3.5/Dockerfile.javascript).

This means we no longer need to compile custom export templates when
exporting HTML5 for Godot 3.5. Exports from other Godot versions may
requiring compiling the GDNative library with a different version of the
Emscripten SDK.

- Changes renderer from GLES3 -> GLES2 and reduces MSAA level to better
  support HTML5 export.
- Updates GitHub Action to export HTML5 and upload as a build artifact.
- Adds Cypress test to smoke test HTML5 export.
2022-08-27 10:32:22 +12:00
Leroy Hopson
2fa2322d7c
Double max test attempts 2022-08-26 22:58:23 +12:00
Leroy Hopson
9765e94889
Change target Godot version to v3.5-stable
Upgrade setup-godot action from v1 -> v2 which changes default Godot
version from 3.4 -> 3.5.
2022-08-26 16:53:02 +12:00
Leroy Hopson
aee3efd8de
Update 3.4.x target version to 3.4.5 2022-08-25 12:37:41 +12:00
Leroy Hopson
b22343a05f
Retry tests
Tests sometimes fail on Ubuntu due to a race condition with the pulse
audio process and on macOS due to timing issues. These tests usually
pass on subsequent runs, so use the retry action to retry them in a
single run.
2022-08-24 09:54:14 +12:00
Leroy Hopson
1485a502ab
Use non-pinned version of setup-godot
Using the major version of the setup-godot action without specifying
minor and patch versions will allow us to start using the newest minor
and patch releases as soon as they are made available on the GitHub
marketplace.
2022-08-24 09:54:14 +12:00
Leroy Hopson
07f76f2956
Don't clone submodules for non build jobs
Submodules are only required for building the GDNative library or export
templates, otherwise we download the pre-built ones so don't need the
submodules.
2022-08-22 22:56:08 +12:00
Leroy Hopson
f49410838c
Drop support for Godot 3.3.x 2022-08-22 10:02:50 +12:00
Leroy Hopson
66254ea17e
Update setup-godot action: 1.0.1 -> 1.0.2 2022-08-10 22:56:46 +12:00
Leroy Hopson
8a3adbbe68
Fix GitHub Actions godot-cpp-linux Docker build 2022-08-03 22:41:12 +12:00
Leroy Hopson
03583c0a1b
Update setup-godot action 2022-07-13 09:03:18 +12:00
Leroy Hopson
d99a750d33
Stop testing for Godot version 3.2 2022-07-12 12:51:24 +12:00
Leroy Hopson
95c8974ebf
Add job to check GDScript format 2022-07-11 09:33:01 +12:00
Leroy Hopson
d784b53e25
Add GUT (CLI only) and remove gd-plug
Commit GUT directly to the git repo and remove gd-plug as it is no
longer required to install GUT.

Modify GUT to be used by command-line only.

For example:
```
cp test/.gutconfig.ci.json .gutconfig.json
godot --no-window -s addons/gut/gut_cmdln.gd
```
2022-07-11 09:33:00 +12:00
Leroy Hopson
f0bd70cb3e
Update target Godot version: 3.3.2-stable -> 3.4.4-stable
Also apply automatic updates to .import files after opening project in
3.4.4 editor.
2022-07-11 09:33:00 +12:00
Leroy Hopson
3fdc9ef27e
Add Docker build for Linux
Adds support for building Linux binaries inside a docker container in
order to target an older version of GLIBC.

Updates GitHub Actions workflow to use it.

As a result the minimum version of GLIBC that Linux users need to have
installed on their system is 2.17 which was released in 2012.
2022-07-11 09:33:00 +12:00
Leroy Hopson
3670856851
Update Visual Studio version
- windows-latest now uses windows-2022 which has Visual Studio 17 2022.
- Update cmake version from 3.15.4 to 3.23.2 which has generator for the
  newer version of Visual Studio.
2022-07-11 09:33:00 +12:00
Leroy Hopson
5108c7cabd
Extract submodule cache steps to compound action
Creates a reusable action for caching submodules in the thirdparty
directory.
2022-07-11 09:33:00 +12:00
Leroy Hopson
28521b9d7a
Update setup-godot: v0.1.1 -> v1.0.0 2022-07-11 09:33:00 +12:00
Leroy Hopson
57dadf7db2
Support universal (x86_64/arm64) builds for macOS
The macOS binary (libgodot-xterm.osx.64.dylib) is now a universal binary
that runs natively on both x86_64 and arm64.
2022-07-11 09:33:00 +12:00
Leroy Hopson
42c9f284be
Fix apt 2022-03-07 11:45:54 +07:00
Leroy Hopson
a41ac2d6f6
Test against newer versions of Godot
- v3.4.3-stable
- v3.5-beta1
2022-03-07 11:39:31 +07:00
Leroy Hopson
4d74041d1d
Update target Godot and Emscripten versions
Godot: 3.3.2-stable -> 3.4.2-stable
Emscripten: 2.0.10 -> 3.1.5
2022-02-24 10:59:02 +07:00
Leroy Hopson
a4103b2df0
Build and test daily 2021-12-17 15:48:09 +07:00
Leroy Hopson
bef632db42
Update setup-godot action v0.1.0 -> v0.1.1 2021-12-17 15:32:02 +07:00
Leroy Hopson
b0e8f0053b
Update Godot versions to test with
3.3.2-stable -> 3.3.4-stable
3.4-beta1 -> 3.4-stable
2021-11-08 09:56:12 +07:00
Leroy Hopson
8e80ba46fa
Upgrade setup-godot action to v0.1.0 2021-11-08 09:46:13 +07:00
Leroy Hopson
08f2cd5376
Download plugins to correct location
Means that Gut tests can actually run. Previously they were not running
because gut could not be found in addons/ directory.
2021-11-08 09:29:46 +07:00
Leroy Hopson
f555831915
Update all tests to use setup-godot action
- Adds support for Ubuntu 32bit.
- Also test only release binaries to keep the number of test jobs under
control.
2021-07-24 16:50:54 +07:00
Leroy Hopson
bec14fee14
Enable tests for v3.2
OS.set_environment() not available in v3.2 so create a new gut config
file that skips these tests for v3.2.
2021-07-23 22:07:57 +07:00
Leroy Hopson
bb18df817d
Use setup-godot GitHub Action for tests
Allows testing on Windows platform.
2021-07-23 22:07:25 +07:00
Leroy Hopson
16d231fc63
Update tests
- Enable tests for osx.universal platform.
- Export HTML5 (but skip upload as .cast files aren't exported
  properly).
- HACK: Use HTML5 export to generate .import directory for tests
  This way we don't get an error message even if using
  `continue-on-error` set to `true`.
2021-07-20 12:02:23 +07:00
Leroy Hopson
3e67cfd877
Add export ignored files to .gitattributes
Move THIRDPARTY_NOTICE files to addons/godot_xterm so they will be
included with asset-lib downloads.
2021-07-19 00:49:37 +07:00
Leroy Hopson
3e2162d366
Add basic .xrdb/.Xresources import plugin
Adds basic support for importing .Xresources and .xrdb files as Theme
resources.

Examples of terminal color schemes in .xrdb format can be found here:
https://github.com/mbadolato/iTerm2-Color-Schemes/tree/master/xrdb

Examples of terminal themes in .Xresources format can be found here:
https://github.com/mbadolato/iTerm2-Color-Schemes/tree/master/Xresources

https://terminal.sexy also supports exporting themes is Xresources
format.
2021-07-19 00:10:16 +07:00
Leroy Hopson
b08d218a59
Run tests in CI environment
Currently tests only run on X11.64 platform.
But other platforms can be supported with a bit of effort.
Remove default bell sound as it does not play nicely with CI environment
that does not have sound card.
2021-07-18 23:05:17 +07:00
Leroy Hopson
8bc3a13adb
Fix windows builds
- Fixes build error for windows debug 32bit.
- Allows building windows release with PTY enabled.
- Updates godot-cpp.
2021-07-18 17:00:55 +07:00
Leroy Hopson
84243cd824
Enable compiling Pipe and LibuvUtils on Windows
Currently only works when building with debug target. On GitHub actions
target release results in linking errors. So disable PTY for release
builds.

Part of #25.
2021-07-18 15:09:21 +07:00
Leroy Hopson
748941f7ff
Don't run GitHub actions on pull_request
This is already covered by push, so we can prevent running jobs twice.
2021-07-07 22:12:36 +07:00
Leroy Hopson
964af715d6 Enable Windows 32bit builds
Closes #24
2021-07-03 16:15:18 +07:00
Leroy Hopson
0dd2378387 Add new PTY node (replaces Pseudoterminal node)
Uses fork of node-pty native code for forking pseudoterminals.
Uses libuv pipe handle to communicate with the child process.

- Paves the way for cross-platform (Linux, macOS and Windows) support.
- Renames Pseudoterminal to PTY (which is much easier to type and spell :D).
- Better performance than the old Pseudoterminal node. Especially when
  streaming large amounts of data such as running the `yes` command.
- Allows setting custom file, args, initial window size, cwd, env vars
  (including important ones such as TERM and COLORTERM) and uid/gid
  on Linux and macOS.
- Returns process exit code and terminating signal.
2021-07-03 14:56:27 +07:00
Leroy Hopson
ca7def60e8
Don't cancel all in-progress jobs if a single one fails
It is useful to get results from all jobs, whether or not a single one
fails.
2021-07-03 01:17:02 +07:00
Leroy Hopson
0437d0f18c
Rename directory 'external' -> 'thirdparty' 2021-06-12 15:10:42 +07:00
Leroy Hopson
9e8bc713e7
Run workflow on all push and pull events 2021-06-08 23:02:41 +07:00
Leroy Hopson
bb8d40df58 Add HTML5 support 2021-06-07 18:29:33 +07:00
Leroy Hopson
a71df27bab Upload separate debug and release artifacts 2020-11-23 09:13:32 +07:00
Leroy Hopson
55e2e0cc8b Install scons using pre-installed python
This should be faster than installing python via chocolatey.
2020-11-23 09:13:32 +07:00
Leroy Hopson
4cc2115125 Build windows releases with /MT rather than /MD
When making a release export of a project, binaries built with the /MD
flag do not work.
2020-11-23 09:13:32 +07:00
Leroy Hopson
c99a9b4a2e Remove docker builds
They are too slow and don't really test anything special.
2020-11-23 09:13:32 +07:00
Leroy Hopson
b2dc46636c Update github actions workflow
- Uses matrix so that build steps don't need to be defined multiple
  times.
- Caches godot-cpp bindings, so they only need to be built when the
  submodule version changes.
- Uploads build artifacts for linux 32/64-bit, windows 64-bit and macOS
  64-bit.
2020-11-21 12:20:13 +07:00
Leroy Hopson
c075ae7418 Enable compiling on macOS 64-bit using llvm
Closes #6
2020-11-20 21:32:43 +07:00
Leroy Hopson
007182b117 Enable compiling 64-bit on Windows using MSVC
Closes #5
2020-11-10 13:44:29 +07:00
Leroy Hopson
43df7d5331 Migrate CI from travis-ci.com to GitHub Actions 2020-11-07 17:11:25 +07:00