Commit Graph

150 Commits

Author SHA1 Message Date
Rubidium 43a7e54067 Add: unit test functionality using catch2 2023-04-16 18:58:21 +02:00
Tyler Trahan 3611082f8e
Codechange: [CodeQL] Disable CodeQL check on trivial switch statements (#10537) 2023-03-26 09:35:44 +02:00
Rubidium 2fffde0891 Add: workflow and script for checking missing mode enforcements 2023-03-08 22:33:47 +01:00
Patric Stout 6fcc8727f5 Change: [Actions] cancel previous run if pushing new PR
Lately we had a few times that people pushed to their PR branch
a few times to make small changes. Sadly, this triggers all CIs
every time, which takes ~20 minutes. As we are limited in the
amount of runners we get assigned to us, this means all other CI,
even for other repositories within OpenTTD, are delayed too.

We can avoid this by simply cancelling old runs when a new PR is
pushed. There is a downside: sometimes people already push a new
commit, but still want to know if the old one passed. That will
no longer be possible with this change.
2023-02-26 23:33:15 +01:00
Loïc Guilloux 27cbb81df5
Fix: [Actions] vcpkg needs pkg-config to build zlib on macOS (#10488) 2023-02-16 22:35:51 +01:00
Patric Stout 16352559f2
Change: release with (much) newer versions of dependencies for Generic Linux (#10484) 2023-02-15 22:18:23 +01:00
frosch 274bcf8d80 Fix 64523709: rpm uses different package names than deb. 2023-02-13 22:45:07 +01:00
Patric Stout 64523709bf
Add: use https:// for content-service connections (#10448)
This requires the use of WinHTTP (for Windows) or libcurl (for all
others except Emscripten). Emscripten does not support http(s)
calls currently.

On Linux it requires ca-certificates to be installed, so the HTTPS
certificate can be validated. It is really likely this is installed
on any modern machine, as most connections these days are HTTPS.

(On MacOS and Windows the certificate store is filled by default)

Reminder: in case the http(s):// connection cannot be established,
OpenTTD falls back to a custom TCP-based connection to fetch the
content from the content-service. Emscripten will always do this.
2023-02-12 12:07:31 +01:00
Patric Stout be0d65d978 Add: [Actions] upload releases to GOG automatically 2023-01-28 20:41:08 +01:00
Patric Stout 146bd74077 Change: [Actions] release Windows Store files to CDN
Currently they had a name that the rest of our system cannot
deal with correctly. "cert.pfx" is also not very descriptive from
a system as a whole.

As such, we now name it like any other file, so it can be published
safely to the CDN.
2023-01-28 20:41:08 +01:00
Patric Stout 425ba82676 Change: [Actions] split GitHub workflows into several smaller ones 2023-01-28 20:41:08 +01:00
Patric Stout 9fd88af537 Remove: [Actions] Ubuntu/Debian release binaries (instead, use the Generic) 2023-01-28 20:41:08 +01:00
rubidium42 5e6dac6fd4 Add: enable CodeQL code scanning
As a replacement to the now deprecated LGTM(.com)
2023-01-14 21:58:18 +01:00
Loïc Guilloux 8f350c9ae6
Fix: [Actions] preview_build failure due to git upgrade (#10323) 2023-01-05 23:25:45 +00:00
clienthax 25f247047d
Update: emsdk to 3.1.28 and lzma (for emsdk) to 5.4.0 (#10234)
Co-authored-by: Patric Stout <truebrain@openttd.org>
2022-12-29 23:34:45 +01:00
Czcibor Bohusz-Dobosz 7425660b3e
Change: Set minimum macOS version to 10.13 (#10253) 2022-12-17 18:35:45 +01:00
Michael Lutz c4e655b1d4
Remove: [Actions] Ubuntu Bionic and Debian Buster from release workflow. (#10115) 2022-10-31 22:37:01 +01:00
glx22 87d1bd895a Fix f6530f3c2: [Actions] set-output was not correctly converted 2022-10-20 19:22:01 +02:00
glx22 8ffe59373f Update: [Actions] use annotation-check v3 2022-10-20 19:22:01 +02:00
Loïc Guilloux f6530f3c2d
Codechange: [Actions] set-output is deprecated (#10089) 2022-10-19 21:05:11 +02:00
Patric Stout 15f4d7c04c
Remove: [GitHub] old configuration file for stale-bot (#9998)
This bot was deactivated months (years?) ago.
2022-09-04 21:42:08 +02:00
Aaron Katzin 2fe8a257ac
Add: [Actions] Ubuntu Jammy Jellyfish (22.04) build for releases (#9881) 2022-08-31 16:11:34 +02:00
Frazer Smith 9bdc1e8f04 Update: bump peter-evans/repository-dispatch from 1 to 2 2022-05-14 16:58:10 +02:00
Frazer Smith 19b838dd60 Update: bump actions/download-artifact from 2 to 3 2022-05-14 16:58:10 +02:00
Frazer Smith 9162ac9d37 Update: bump actions/checkout from 2 to 3 2022-05-14 16:58:10 +02:00
Frazer Smith 2a2f80bb71 Update: bump actions/cache from 2 to 3 2022-05-14 16:58:10 +02:00
Frazer Smith 33dabc42bb Update: bump actions/upload-artifact from 2 to 3 2022-05-14 16:58:10 +02:00
Owen Rudge 5a6ea11ead Feature: [Actions] Package builds for the Windows Store automatically 2022-05-04 11:40:49 +01:00
Patric Stout 8537fa7206
Fix: [Actions] Remove Ubuntu:groovy from release pipeline (#9845)
It no longer exists upstream. Let's focus on LTS only for now.
2022-04-02 12:36:15 +02:00
Owen Rudge 1bfbcff71e Change: [Actions] Switch back to primary source for 'gon' in macOS build job
This reverts commit 7a97a33598.
2022-03-31 13:00:35 +01:00
Owen Rudge 7a97a33598 Fix: [Actions] Switch source for 'gon' in macOS build job 2022-03-28 21:56:24 +01:00
Loïc Guilloux 1a17b6c8f6
Change: [Actions] Remove VS2017 and restore VS2019 for CI (#9835) 2022-03-13 16:05:24 +01:00
Patric Stout 0cbe94256e
Change: [Emscripten] update to 2.0.34 and use Release over RelWithDebInfo (#9696)
It turns out that having "-g" in the compile-statement causes
Emscripten to pick -g3, which makes for very big binaries. This
is very likely not your intention when building Emscripten, as
smaller really is better.

For comparison, with RelWithDebInfo the binary is ~80MB. With
Release it is ~7.4MB.
2021-11-14 16:59:49 +01:00
glx22 14429bbe8a Change: [Actions] Also check desync debug 2021-10-19 09:05:00 +01:00
Patric Stout 5bcdf16dc5
Fix 01603d9e: [Preview] publishing preview failed due to recent changes (#9621)
Since 01603d9e we run under root, not under github user. In result,
the location of "aws" binary changed.
2021-10-17 22:42:29 +02:00
Patric Stout 01603d9e47
Fix 3046a6ce: [Preview] building preview failed to patch LZMA (#9620)
The job was started under a non-priv user, which did not have
permission to patch the emscripten files required to make LZMA
work.
2021-10-17 21:59:50 +02:00
Loïc Guilloux 46123742f5
Change: [Actions] Use macOS-11 image for releases (#9605) 2021-10-03 21:14:59 +02:00
Patric Stout 3046a6ce39
Change: upgrade Emscripten to 2.0.31 and enable LZMA by default (#9604) 2021-10-03 16:20:05 +02:00
Patric Stout 9c74dc2468
Codechange: validate that all STR_NNN strings are defined and used (#9518) 2021-09-02 22:32:10 +02:00
frosch 93fd42b0c3
Doc: guidelines on english.txt or translation changes in PRs. (#9505) 2021-08-22 14:27:48 +02:00
Patric Stout b2eafcc720
Fix: [Actions] changelog assumed major.minor.patch versioning (#9482)
We now use major.minor versioning, so it failed to pick up the
correct information.
2021-08-15 14:14:13 +02:00
Patric Stout b67ef1e5b8
Fix: [Actions] Ubuntu 18.04 by default has a compiler too old for OpenTTD (#9481) 2021-08-15 13:08:58 +02:00
rubidium42 98e653dacc Fix #9386: compilers failing to compile with LTO by using variants instead of new + unique_ptr
With std::variant all memory can be figured out at compile time, so the compiler needs to keep track of fewer elements. It also saves out a unique_ptr and its memory management, over a slight impact for resolving a setting.
2021-06-26 20:28:34 +02:00
Patric Stout 1ed7afc0a8
Change: [GitHub] use an issue form to let people fill in bug report / crashes (#9400) 2021-06-26 13:51:29 +02:00
Loïc Guilloux f86c66cbd7
Codechange: [Actions] Improve MSYS2 setup time (#9360) 2021-06-13 13:26:45 +02:00
Loïc Guilloux acb6348ba6
Add: [Actions] msys2/MinGW CI (#8698) 2021-06-10 23:54:52 +02:00
Owen Rudge 3ce7e31f64 Feature: Sign Windows builds 2021-05-26 13:40:44 +01:00
Patric Stout 3477405e86
Change: [Actions] use newly created Actions instead of custom shell-scripting (#9284) 2021-05-20 19:12:33 +02:00
Loïc Guilloux c53d9991ee
Add: [Actions] Check CI annotations to detect compile warnings (#9217) 2021-05-10 14:48:04 +02:00
Loïc Guilloux 282d5d302d
Change: [Actions] Add a 2 minutes timeout for regression test (#9166) 2021-05-01 16:18:41 +02:00
Tyler Trahan 27031b396f
Change: [Actions] Reword bug/crash report instructions (#9104) 2021-04-25 19:27:30 +01:00
Patric Stout 2e39ac5ba2
Add: [GitHub] use issue templates to make it more clear what we expect from users (#9092) 2021-04-24 17:03:19 +02:00
Charles Pigott 2a9825b8de
Add: [Actions] Debian Bullseye release build (#8921) 2021-04-01 20:45:13 +01:00
Patric Stout 9639e77297 Fix: [Actions] "is-tag" variable is the 5th element, not 6th
The 6th is "is-stable-tag", but it is currently broken in meaning.
Betas and RCs are considered "stable", but final releases are not.
This is the reason it was working for RC1, but not for the final
release.
2021-04-01 13:26:34 +02:00
Patric Stout 64a8c38d2f
Fix: [Actions] update environment variable for AWS region (#8827) 2021-03-08 23:31:45 +01:00
glx22 db0993f500 Change: [Actions] Also check dedicated build 2021-03-04 16:22:58 +01:00
glx22 cd4c8ecbf3 Add: [Actions] Allow partial cache invalidation on dependencies change 2021-03-01 22:41:48 +01:00
glx22 70e4845915 Change: [Actions] Use only CMake, CTest and CPack 2021-02-24 17:54:24 +01:00
glx22 90adac8f09 Change: [Actions] stop using 'run-vcpkg' action for Release 2021-02-24 17:54:24 +01:00
glx22 58640824d1 Change: [Actions] stop using 'run-cmake' action for Release 2021-02-24 17:54:24 +01:00
glx22 2fd2950eb5 Change: [Actions] stop using 'run-vcpkg' action for CI 2021-02-24 17:54:24 +01:00
glx22 30ae019095 Change: [Actions] stop using 'run-cmake' action for CI 2021-02-24 17:54:24 +01:00
Patric Stout b124c49ea4 Fix: [Actions] Also run CI against libsdl1.2 for every pull request 2021-02-19 19:56:40 +01:00
Patric Stout cb8e1706b2 Fix: [Actions] if SDL2 is installed, it is always picked over SDL1
So no need to install both SDL1 and SDL2, that gives a false idea
of reality.
2021-02-19 11:34:00 +01:00
Patric Stout d3df4674f9 Fix: [Actions] build our allegro driver too in our CI
This prevents us breaking it without realising.
2021-02-19 11:34:00 +01:00
Owen Rudge d3b50b9c47 Fix: [Actions] Use vcpkg to provide libpng on macOS 2021-02-15 12:10:11 +00:00
Michael Lutz 6755ff63e1 Add: [OSX] Native font rendering without using FreeType. 2021-02-14 11:48:58 +01:00
glx22 f181037bed Change: [Actions] Also run CI for VS2017 2021-02-13 17:31:57 +01:00
Owen Rudge 395e015282 Change: Convert .md to .rtf for Windows/Mac packages 2021-02-08 23:23:24 +00:00
Owen Rudge da4c404f3d Fix: [Actions] Use same vcpkg commit for CI on macOS as release builds 2021-02-08 16:13:03 +00:00
Patric Stout 4f0692c437
Codechange: [Actions] Document better why we build our own fluidsynth (#8646)
nielsmh nicely correct us in #8641, pointing out the old comment
is not telling a complete truth. The result is the same, but it
is better to not mislead future-us.
2021-02-05 23:56:44 +01:00
Patric Stout a667ed945f
Add: [Actions] Automatically upload releases to Steam (#8644) 2021-02-05 20:58:15 +01:00
Patric Stout 05df7996a4
Feature: [Actions / CMake] support for generic linux builds (#8641)
These bundles can be opened on any "modern" Linux machine with
a driver that SDL2 supports.

Machines needs at least glibc 2.15, which was released 10 years ago.
It is build with CentOS 7 as base, and only assumes the following
libraries are available on the system:
- libc
- libdl
- libgcc_s
- libpthread
- librt
- libstdc++

All other libraries the game depends on are bundled together with
the game, so users don't need any library installed to use this
bundle. The downside of course is that this increases the binary
size a bit: 30 MiB of libraries are in this bundle.

RPATH is used to make ld-linux find the folder libraries are
stored in; however, system libraries are always used before these,
in the assumption libraries on the user system are more up-to-date.

Using -DOPTION_PACKAGE_DEPENDENCIES=ON switches on packaging
of libraries in the "lib" folder. This requires CMake 3.16 to
be installed; otherwise it will fail.
2021-02-05 12:31:27 +01:00
Patric Stout 4831b4fa96
Codechange: [Actions] we no longer need xdg-basedir (#8615)
This was already removed from the "ci-build", but not yet from
"release".
2021-01-29 10:38:58 +01:00
Owen Rudge 1187dc3217 Feature: [Actions] Create .zip for macOS build 2021-01-28 19:15:36 +00:00
Owen Rudge a2bd0a14e1 Feature: [Actions] ARM64 builds for Windows 2021-01-18 08:57:58 +00:00
Owen Rudge 2d9e164ec4 Fix: [Actions] Give Universal Mac packages the "universal" suffix 2021-01-18 08:57:39 +00:00
Owen Rudge ce42e819b9 Feature: Build macOS build as a universal binary 2021-01-15 20:26:59 +00:00
Owen Rudge bc8f347ef2 Fix: vcpkg binaries were not being cached on Mac 2021-01-14 12:10:23 +00:00
Patric Stout cc5f190cb3
Fix: [Actions] circumvent Windows tar warning about read-only files (#8570)
This was already applied on the CI build, but not yet on the
release build.
2021-01-14 11:26:13 +01:00
Owen Rudge 4f5990fa26 Fix: Remove .sha256 files from macOS builds 2021-01-14 09:30:16 +00:00
Owen Rudge 60851ef1a6 Feature: Sign macOS builds 2021-01-13 13:45:52 +00:00
frosch f6abc81cf1 Fix: add missing variables to NewGRF inspect window. 2021-01-10 21:24:38 +01:00
Owen Rudge fec5ce093f Feature: Build ARM64 (Apple Silicon) version for macOS 2021-01-08 16:58:14 +00:00
Patric Stout 4059ccf863
Fix: [Actions] circumvent Windows tar warning about read-only files (#8524)
Because certain files are read-only, the "restore-cache" step
fails, as Windows tar refuses to overwrite those files (even
if they are identical). Instead of hoping upstream fixes
"restore-cache", just remove the read-only flag on these files
instead.
2021-01-08 15:20:27 +01:00
Charles Pigott 3dfee979a7 Codechange: Drop libxdg-basedir dependency in favour of finding the directories ourselves 2021-01-02 19:46:08 +00:00
Patric Stout f2d78b11dd
Fix: [Actions] cmakeBuildType is only used with CMakeListsTxtBasic (#8435)
We use CMakeListsTxtAdvanced, and as such, we have to do this our
self via "-DCMAKE_BUILD_TYPE=RelWithDebInfo". Otherwise we are
producing Debug builds instead of Release builds. Oops.
2020-12-26 13:48:57 +01:00
frosch 3f606691a8
Add: [GitHub] PR template. (#8414) 2020-12-22 22:39:24 +01:00
Patric Stout 7ea5904395 Add: [Actions] release workflow for both releases and nightlies
This has several ways of being triggered:
- When creating a new release via the GitHub interface. Fully
  automated that will produce new binaries, upload them, and it
  will even update the website to tell about the new version.
- When triggered in an automated way from OpenTTD/workflows to
  start a nightly.
- Manually via the Release workflow, which accepts branches,
  Pull Requests and tags to build.

Rerunning a job is safe and should be without issues. Everything
retriggers and updates what-ever might have been broken. In fact,
except for dates, it should produce identical results.

Co-authored-by: Charles Pigott <charlespigott@googlemail.com>
2020-12-19 18:26:29 +01:00
Patric Stout 93ef759a25 Add: [Actions] preview workflow, where PRs can be reviewed in the browser
When a developer attaches the "preview" label, a build is created
and published on https://preview.openttd.org/. After that, new
pushes to the PR are automatically build (as long as the "preview"
label exists).

If a non-developer attaches the "preview" label, it will be
removed.
2020-12-15 15:46:39 +01:00
Patric Stout d15dc9f40f Add: support for emscripten (play-OpenTTD-in-the-browser)
Emscripten compiles to WASM, which can be loaded via
HTML / JavaScript. This allows you to play OpenTTD inside a
browser.

Co-authored-by: milek7 <me@milek7.pl>
2020-12-15 15:46:39 +01:00
Patric Stout abb746fae3
Fix: [Actions] cleanup ci-build workflow to be up-to-date (#8375)
Also, while at it, make it more like the upcoming release-workflow,
so they look a lot more similar.

Functional it should be the same, except that Windows should
now also output when a test fails.
2020-12-13 22:32:44 +01:00
glx22 e2eafd86de Fix: Prevent infinite recursion in commit checker 2020-12-10 01:08:44 +01:00
Charles Pigott 13e1b13a4e Fix: [Actions] Call apt-get update before trying to install packages 2020-10-10 15:02:06 +01:00
Charles Pigott 2073c8d67f Add: [Actions] Add problem matchers for CI platforms 2020-10-10 15:02:06 +01:00
glx 5af98c69e6 Add: [Actions] CI build workflow 2020-10-03 16:17:11 +01:00
glx fb3de33a38 Add: [Actions] commit-checker workflow 2020-01-19 09:05:20 +00:00
Roger 1be42c6cb8 Add: [GitHub] sponsor button on github.com (#7700) 2019-08-31 21:20:24 +02:00
PeterN 498ca6e4eb Add: [GitHub] Add issue template to encourage better issue reporting. (#7137) 2019-01-29 18:15:54 +01:00
Patric Stout 564077719a Add: [GitHub] enable probot/stale, to flush out stale issues/pull requests
Stale bot checks if an issue hasn't had any attention in the last
60 days, or if a pull request hasn't had any attention in the last
30 days. If so, it marks it as stale. After 7 more days, it closes
the issue/pull request. Any activity on the issue/pull request
resets the timer.

This helps keeping the counter low, and the work manageable. There
is a lot of reasoning behind this idea, and other projects show it
really helps to keep the issue/pull request count low.

More information here: https://github.com/probot/stale
2019-01-24 21:57:06 +01:00