Commit Graph

31 Commits

Author SHA1 Message Date
lynxnb
c9b055d0e3 Build reldebug instead of debug in CI 2023-02-12 22:21:25 +01:00
Niccolò Betto
439c18d8eb Fix ccache not working in CI
The default `compiler_check` strategy used by ccache was causing a 0% hit rate, as it was using the compiler's "modified time" as part of the hash. Since the script installs dependencies from scratch for every run, mtime was always different, causing different hashes even when source files were unchanged. To avoid this, use the NDK version as part of the hash instead.
2023-02-12 22:09:11 +01:00
lynxnb
9a96ea84ba Trigger an edge patch update on modified edge PRs 2023-02-12 03:22:00 +01:00
lynxnb
e9907d2fac Trigger an edge patch update on edge label added/removed 2023-02-09 23:49:20 +01:00
lynxnb
18506a6e52 Update actions/checkout 2022-12-10 15:39:54 +00:00
lynxnb
c8a99582c2 Upload artifacts on ci-labeled PRs only 2022-12-10 15:39:54 +00:00
PixelyIon
48d2b3bf07 Only trigger CI builds on labelled PRs
We only want to run CI builds once they've been assigned the `ci` label. This allows more direct control over when PRs are built.
2022-10-23 20:20:44 +05:30
lynxnb
d962059ce2 Fix CI failing on renaming unsigned builds 2022-10-17 18:39:37 +02:00
lynxnb
b17364bb92 Introduce a dev app flavor for side-by-side installation 2022-10-01 13:01:46 +02:00
MCredstoner2004
e316bf5877
Fix CI cache
Use CCache for saving and restoring compilation cache across runs instead of copying the build folder.
2022-09-03 19:43:04 -05:00
lynxnb
39f398f76b Update Kotlin (1.7.10), NDK (25.0.8775105), AGP (7.2.2) and Kotlin deps 2022-08-17 12:28:31 +02:00
PixelyIon
cd969316e9
Don't delete build folder in CI runs
The build folder was being deleted at the end of CI runs but it has to be cached and this deletion wasn't necessary as the disk would be wiped at the end of the CI build, this has now been fixed.
2022-08-06 22:20:54 +05:30
PixelyIon
e3e92ce1d4 Handle unsigned builds on CI
We don't always have access to CI secrets, such as, when a certain CI action is triggered by a PR from an external repository then it won't have access to secrets and be signed. While we likely will allow for this in the future as all workflows do have to be approved,  it is still important to not crash when keys are unavailable and have a graceful fallback for those situations.
2022-06-11 17:05:39 +05:30
PixelyIon
da79e2c8e3 Add Robust CI Cache Restoration
The `restore-keys` parameter of `actions/cache@v3` is now utilized to add robust fallbacks for missing cache keys, it should automatically fall back to an older but still valid cache rather than entirely miss now.
2022-05-31 01:25:18 +05:30
PixelyIon
40a7433e97 Extend CI Gradle caching and performance parameters
A lot of default Gradle parameters are unoptimal for the best performance, this enables the configuration and build cache alongside parallel building.
2022-05-31 01:25:18 +05:30
PixelyIon
4a6978a3bb Extend CI C++ build cache
The CI didn't cache the C++ build related directories under `app/build/` which caused a full recompilation of C++ code, this takes a significant amount of time.
2022-05-31 01:25:18 +05:30
PixelyIon
3da67d79a1 Remove Android Linting + R8 Mapping from CI
These steps were determined to be useless in practice as no one checked the lint report for any issues and R8 mappings were never utilized.
2022-05-31 01:25:18 +05:30
PixelyIon
c516819e6e Make CI APK name more verbose
Adds the CI run number to the APK name, they were `app-(debug/release).apk` but are now `skyline-${CI run number}-(debug/release).apk`. This makes it significantly easier to identify what version a specific build is, this alongside signing consolidates Skyline builds.
2022-05-31 01:25:18 +05:30
PixelyIon
b91ce939a2 Introduce CI build signing
We've done no signing of any Skyline APKs to date which causes issues regarding authenticity of any APKs as they could be entirely unofficial builds which have not been vetted by the team. Additionally, the different keys remove the ability to reinstall a different build successively as Android checks for matching signatures before installing an APK.
2022-05-31 01:25:18 +05:30
lynxnb
924d5f7081 Update CI to use cache@v3 + ignore partial matches of cache key 2022-04-14 14:14:52 +05:30
PixelyIon
c84badb498 Update NDK (25.0.8221429) + Gradle (7.4.1) + Build Tools (33.0.0) 2022-04-14 14:14:52 +05:30
PixelyIon
82154f3ef6 Upgrade AGP to 7.1.0-beta01 & NDK to 24.0.7856742
We've moved to using a beta AGP as `7.0.2` is breaks `clangd` and other C++ features on Beta/Canary Android Studio. NDK was additionally updated with `mbedtls` to fix warnings caused by it alongside some other minor fixes to code for newer versions of libcxx.

The new AGP has a bug where it does not look for executables specified in `android_gradle_build.json` in `PATH` that includes `ninja` which is provided by the `ninja-build` package on the system rather than Android SDK's CMake on GitHub Actions (Ubuntu 20.04). This has been fixed by symlinking `/usr/bin/ninja` to the project root which is searched in for the `ninja` executable.
2021-10-31 15:50:15 +05:30
PixelyIon
eff5711c49 Split monolithic common.h into smaller chunks
* Resolves dependency cycles in some components
* Allows for easier navigation of certain components like `span` which were especially large
* Some imports have been moved from `common.h` into their own files due to their infrequency
2021-10-26 10:46:36 +05:30
PixelyIon
686d61b893 Update NDK to 21.4.7075529 2021-06-17 20:30:22 +05:30
PixelyIon
0c29f982d5 Replace skyline-emu/VkHpp with KhronosGroup/Vulkan-Hpp
We used a custom version of Vulkan-Hpp which split the files a lot prior to avoid any developers needing to manually set IDE settings for IntelliJ to work but this wasn't practical due to how it required modifications to Vulkan-Hpp's generator which would make maintenance extremely difficult. It was determined that we should just add the requirement for changing the IDE settings and use Vulkan-Hpp directly.
2021-06-17 20:30:22 +05:30
PixelyIon
2bbf526419 Fix Logger Settings + Use Java 8 + Update Kotlin + Extract Native SOs 2021-03-05 14:55:34 +05:30
◱ PixelyIon
4cc3a3b2e8 Move NVDRV + IHOSBinder Internals to Discrete Components + Fix Lint 2020-09-20 20:07:33 +00:00
◱ PixelyIon
6a931b95b0 Implement C++ Support for Controller Configuration
This commit adds support to the C++ end of things for controller configuration. It isn't targeting being 1:1 to HOS for controller assignment but is rather based on intuition of how things should be.
2020-08-21 11:48:29 +00:00
◱ PixelyIon
11e24620b8 Fix GitHub Actions build running out of disk space
This commit fixes the GitHub Actions build running out of disk space by removing the existing NDK image as we already install that manually.
2020-04-23 22:26:27 +05:30
◱ PixelyIon
5f072da2b8 Fix GitHub Actions Build + Move Stack to Shared Memory
This commit mainly fixes GitHub Actions builds which were broken due to an outdated version of Android NDK. In addition, it moves all stack to shared memory.
2020-04-23 22:26:27 +05:30
◱ PixelyIon
8aea45170f Move to GitHub Actions for CI
This commit adds a GitHub Actions Workflow for Continuous Integration.
2019-12-11 22:32:47 +05:30