Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Proposal] Build static SDL2 (software renderer) binary with Travis CI #19

Open
runlevel5 opened this issue Apr 28, 2020 · 4 comments
Open

Comments

@runlevel5
Copy link
Contributor

Travis CI is a popular CI with support for wide range of platforms and integrations. I have seen many projects utilise CI to build and deploy those binaries to artifacts placeholders. This would help projects save time on making new releases.

@sulix
Copy link
Owner

sulix commented Apr 28, 2020

I've actually been thinking on-and-off about adding some sort of CI system for a while, so this is definitely on the radar.

I'm not sure if we'd want to explicitly use the SDL2 software renderer — if we need something that can run on a headless system, the ideal thing would be to get the id_{vl,in,sd}_null backends working — but the idea of being able to run some tests (e.g., run through the demos mand make sure they produce the same outputs) could be neat. (It'd need the data files, though, which could be problematic.)

But it'd certainly save me some time to just have it automatically build for a few Linux archs, as well as windows and maybe DOS. I'll see if I can find some time to look into it.

sulix added a commit that referenced this issue May 2, 2020
As mentioned in issue #19, it'd be nice to have some sort of CI system
with which to confirm that pull requests and pushes actually build
correctly. This is a first step towards doing this, using GitHub actions
to build Omnispeak on the latest Ubuntu, with all options set to
default.

If this works, I'll look into extending it to build the other versions,
which is where it's likely to cause the most problems. But this simple
test should be better than nothing.

Ultimately, we'll want to actually test the compiled binary, using eith
the id_{cl,in,sd}_null backends or something like the SDL software
rasteriser. One thought is to have a set of demos and dumps which we can
easily compare.
@sulix
Copy link
Owner

sulix commented May 4, 2020

I've put some basic CI integration in. I'm using GitHub's builtin "actions" system rather than Travis CI, which wanted a few more permissions on my account than I can give out at the moment, but the basics work.

All new commits or pull requests should now be built on Windows (both Win32 and Win64), Linux, and DOS, and the compiled versions will be available to download as artefacts.

Note that there's no testing of the builds (if it compiles, it's considered okay), only the default renderer for each platform is compiled, and there's none of the nice packaging that a full release would want to do (the Linux version isn't compiled to be compatible, the dos version needs CWSDPMI to be copied in manually, no README or data files are included).

@runlevel5
Copy link
Contributor Author

Nice one. I was suggesting Travis CI from the onset because I was thinking about building / testing against PowerPC64LE platform which AFIAK only available with Travis CI.

@sulix
Copy link
Owner

sulix commented Jan 23, 2024

FYI: I've quickly hacked a cross-compiler check for ppc64 (big-endian) into the CI system. It's not as useful as a proper SDL build, nor does it do all of the testing yet, but it's a start. :-)

Ideally, this should at least start to catch build failures with non-x86 systems. (I develop mostly on x86, x86-64 and occasionally aarch64 here.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants