Commit Graph

71 Commits

Author SHA1 Message Date
Stan 934ca601d7 Add a Jenkinsfile linter 2025-05-08 19:50:21 +02:00
Itms 1adab34511 Generate signatures and hashes in the bundles job 2025-05-08 19:08:56 +02:00
Itms 5b7feb360e Fix nightly pipeline syntax mistake in 2659efdb38 2025-05-07 12:49:51 +02:00
Itms 2659efdb38 Speed up nightly build generation
New files in the repository are naively added using `svn add --force`
which adds all unversioned files according to the documentation.

However, this iterates through the entire repository and takes about 12
minutes. Using `svn status` and parsing through the results only takes a
couple seconds.
2025-05-06 22:02:21 +02:00
Itms b58ea2698e Fix bug in nightly pipeline on spaces in filenames
The call to `svn delete` on deleted files does not work if filenames
contain spaces. This happens in particular when we fix spaces in
filenames, as the pipeline doesn't understand file renames.
2025-05-06 22:02:01 +02:00
Ralph Sennhauser 84f626d2b5 Use Debian 12 in Linux pipeline
Use the single Debian 12 container image and inject CC, CXX and LDFLAGS
instead.

Further do the lfs checkout on the agent instead of inside the container
avoiding full rebuilds due to version mismatch.

Then split the debug and release builds using separate workspaces and
record warnings by build preventing gcc warnings leaking into clang
warnings.

Based on zero warning policy and incremental builds using a reference
build doesn't make sense. Removing that we can also drop an additional
generic workspace.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-03-23 14:38:42 +01:00
Ralph Sennhauser 71f78eb2ce Use JOBS var instead of hardcoding on Windows
Don't hardcode the number of parallel jobs in Windows based pipelines
but allow setting the desired number in the environment.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-03-09 11:14:16 +01:00
Ralph Sennhauser 2a0817d930 Add JOBS support to Unix build pipelines
Allow the number of concurrent build jobs in Unix build pipelines be
specified in the environment via the JOBS variable.

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-03-09 11:14:16 +01:00
Itms b831b1f559 Fix Jenkins pipelines on Linux agent
The Linux agent now runs Docker in rootless mode for additional
security. Operations inside containers must be run as root to match the
underprivileged user running Docker.
2025-03-01 22:08:50 +01:00
Itms dc830ccf55 Switch main branch to Release 28 2025-01-12 01:27:02 +01:00
Itms 2482ecf9fe Sign and notarize macOS bundles 2025-01-03 17:05:15 +01:00
Stan f14a98e26f Bump minimum macOS SDK to 10.15
According to https://firefox-source-docs.mozilla.org/widget/cocoa/sdks.html Firefox doesn't support anything lower than 10.15 at runtime. So neither do we.
Fixes #7370
2024-12-30 11:14:59 +01:00
Itms 9f6699d964 Adapt bundles pipeline to the git environment 2024-12-21 23:03:25 +01:00
Ralph Sennhauser 949d5f8c0b Check for WX in premake and rename atlas option
The option --atlas is oddly different than any other feature flag,
change it to be in line with the others and enable it by default. The
new option is --without-atlas.

As the WX binaries aren't precompiled for Windows automagically disable
atlas there for users running the batchfile through filemanger if WX is
missing.

On *nix not providing a valid wx-config whith enabled atlas is
considered an error.

Fixes: #6401
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2024-12-21 10:03:12 +01:00
Itms 4cf04ffaa2 Set executable on all shell scripts in the nightly 2024-12-16 18:20:08 +01:00
Itms 0de5f2fb25 Upgrade SpiderMonkey to ESR 115 2024-12-09 10:46:12 +01:00
Dunedan 0c0a446128 Fix translations of language names in credits
The migration to git broke the translation of language names in the
credits, as the translators.json, necessary for extracting the language
strings wasn't present anymore when running update_templates.py. This
commit should fix this.
2024-12-06 20:13:09 +01:00
Ralph Sennhauser 197e63465b Always enable --large-address-aware build option
This option is needed to be able to use more than 2GB on 32bit Windows
builds.

Having to explicitly enable this turns out to be a pitfall. Release
builds are done with this option enabled and when then building from
source and running out of memory it's not immediately obvious what the
reason is.

The documented intent is that this behaviour might be useful to find
memory leaks. The large-address-aware enabled build already perfectly
serves this role this days and the memory pressure is an important
reason for the ongoing Windows 64bit build efforts. Also there are
arguably better tools for this purpose.

Refs: commit a8403bd7e5
Refs: issue #1619
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2024-11-26 18:27:38 +01:00
Itms 66c2fc07d7 Run Linux CI on GCC 8 and clang 9
Those are the minimum supported versions. Only PCH builds are performed
to save build time.
2024-11-25 23:04:45 +01:00
Itms ebd66fef89 Retry non-incremental CI builds as a new run
When a non-incremental build is needed for a PR, the current code cleans
up workspaces and retries, but this leaves the build error in the
console output. This marks the build as unstable, as if warnings were
present.

Instead, let the build fail and instead reschedule a clean build, which
will override the build status in Gitea.
2024-11-14 14:10:14 +01:00
Itms 58e16c2057 Move Windows CI to the new autobuilder
Make the new agent the default for Windows pipelines.

Refs #6977, which might be fixed in the new environment.
2024-11-11 09:49:29 +01:00
Itms e7ed36cf16 Generate the nightly build from a clean state
Fixes #7126
2024-11-02 12:42:36 +01:00
Itms 0d294e7cbd Unbreak the nightly build
This moves the nightly build to a new Windows autobuilder running a
recent Windows Server version. In this new environment, the Jenkins
agent runs as a normal user connected through SSH. This fixes #7148.

Use the opportunity to use svn directly instead of Jenkins' scm step,
which hangs for 30 min.
2024-11-02 12:42:35 +01:00
Cayleb-Ordo 19aca9fe74 docs: Improve Doxygen Visuals and Build process
- Switched to CMake for configuring and building the doxygen Website.
 - Set the minimum requirements to CMake >=3.18.4 and Doxygen >=1.9.1.
 - Rewrite the LICENSE.txt and docs README.txt to markdown.
 - Add the folder which is used in the README to gitignore.
 - Add a custom style to the doxygen website based on the docs webpage.
 - Update CI to use the new Doxygen Build process.

Closes #7052
2024-10-26 19:33:38 +02:00
Itms 75da070076 Generate technical docs from CI/CD
- Generate entity.rng as part of the nightly build, refs #6976.
 - Generate docs from a checkout of the nightly build.
 - Publish them to docs.wildfiregames.com.
2024-10-26 19:33:25 +02:00
Itms ac3e8f34c3 Ignore LNK4221 in Windows builds 2024-09-28 21:55:30 +02:00
Dunedan 660dd63792 Delete existing SPIR-V shaders before regeneration
As compile.py only creates shaders for program combinations which don't
have already existing shaders on disk, this removes all SPIR-V shaders
prior to rebuilding them to ensure they actually do get recreated.
2024-09-22 10:49:46 +02:00
Dunedan c59030857d Rebuild SPIR-V shaders when compile script changes 2024-09-22 06:28:58 +02:00
Dunedan ccb1d747f0 Use PEP 8 naming conventions for templatesanalyzer 2024-09-10 07:29:33 +02:00
Stan 5bea0a0f97 Add the large address aware flag to the nightly build. 2024-09-09 11:46:31 +03:00
Dunedan 4a049c5f3a Use PEP 8 naming conventions for i18n tools 2024-09-03 13:51:27 +02:00
Itms f7630b155c Do not hardcode JOBS in CI pipelines
This build environment variable is now set agent-wide and corresponds to
the number of CPUs of each agent.
2024-09-02 21:47:08 +02:00
Itms 670f68c1c5 Fix remnant from old Jenkins configuration 2024-09-02 21:47:08 +02:00
Itms 79127ec59d Automatically try to unbreak CI incremental builds
This entirely reverts ee3318309b and removes the [CLEANBUILD] feature,
which needed to be used without omission to be efficient.

Instead, in case of build failure, the CI automatically starts a
non-incremental second build by running `make clean` (or the MSBuild
equivalent) before retrying the build.
2024-09-01 13:29:17 +02:00
Itms 97e6691c76 Fix Atlas in the nightly build
The Windows autobuilder contains two built versions of wxWidgets. One
corresponds to the oldest supported version of the library, and is used
for CI. However, the nightly build should use a recent version of the
library, compiled with the same toolset as the main game.

This commit adapts the nightly-build pipeline to use the rebuilt recent
copy of wxWidgets.
2024-08-27 21:38:37 +02:00
Itms ee3318309b Allow to force non-incremental Jenkins builds
In all the builds using precompiled headers, an update to libraries will
crash the CI, as those headers will become outdated. It is then
necessary to force a full rebuild of the game by cleaning up the
workspaces.

This commit allows this CI behavior to be triggered by specifying
[CLEANBUILD] in the first line of the commit message.
This will constitute an opportunity to inform users that they need to
clean their workspaces when pulling the update.
2024-08-27 17:13:49 +02:00
Itms 2a67c9a503 Abort previous builds in pull requests
This will save precious build time by stopping the build of obsolete
commits.
2024-08-27 14:39:19 +02:00
Dunedan f8ac0e4f68 Run checkrefs.py as Gitea Actions workflow 2024-08-27 13:33:21 +02:00
Dunedan 39f2889cf7 Support calling checkrefs.py from other dirs 2024-08-25 21:23:59 +02:00
Stan 393ad6c8a6 Improve windows pipeline 2024-08-23 13:08:04 +02:00
Stanislas Daniel Claude Dolcini 7786ef8def Add Free BSD pipeline. 2024-08-21 19:17:35 +02:00
Itms 270a48b37d Adapt Jenkins Pipelines to the new build system. 2024-08-20 19:34:28 +02:00
Itms e9d1cb6cc7 Generate nightly SVN builds for end users, fixes #1819. 2024-08-20 19:15:56 +02:00
Dunedan ae67a77bd9 Update translator credits automatically
This adds updating the translator credits automatically when updating
translations. This has two benefits:

1. Translator credits are up-to-date in SVN-builds, so potential
   problems will already show up there.
2. One manual step less during a release.

Patch by: @Dunedan
Accepted by: @Stan
Differential Revision: https://code.wildfiregames.com/D5299
This was SVN commit r28143.
2024-07-07 16:29:40 +00:00
Stan ae639bb360 Fix lint on the CI.
- Add a new CI docker file
- Fix a typo for checkrefs (Refs https://code.wildfiregames.com/D5266)
- Switch to Clang8
- Unify pipeline reset in a function
- Update the image building pipeline

This was SVN commit r28086.
2024-05-11 11:01:34 +00:00
vladislavbelov ffc4a56b9f Revert non-ASCII characters from source and configuration files introduced in 157c6af18e.
Fixes #6846

Differential Revision: https://code.wildfiregames.com/D5185
This was SVN commit r27965.
2023-12-03 00:30:12 +00:00
bb 157c6af18e Make the space in 0 A.D. non-breaking throughout the codebase.
Avoid cases of filenames
Update years in terms and other legal(ish) documents
Don't update years in license headers, since change is not meaningful

Will add linter rule in seperate commit

Happy recompiling everyone!

Original Patch By: Nescio
Comment By: Gallaecio
Differential Revision: D2620
This was SVN commit r27786.
2023-07-27 20:54:46 +00:00
Stan e13ea09690 Add missed line
This was SVN commit r27634.
2023-05-08 14:27:22 +00:00
Stan d8b1935493 Add a script to build spir-v shaders for the bundle.
Fixes: #6636
Refs: #6718
Discussed with: @vladislavbelov

Differential Revision: https://code.wildfiregames.com/D4988
This was SVN commit r27633.
2023-05-08 14:25:23 +00:00
Stan a6546cc0a4 Update infrastructure to use the new transifex API.
- Fix Jenkins warnings about leaked credentials.
- Fix one script not loading utf-8 on windows.
- Fix command line arguments not working when inlined on Linux.

This was SVN commit r27621.
2023-04-27 16:55:06 +00:00