Commit Graph

33 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
Niccolò Betto 2afd33b305
Replace Ko-fi link with Patreon 2022-12-05 15:19:00 +01:00
Niccolò Betto 4944f73b34
Create FUNDING.yml 2022-10-26 23:17:38 +02: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