feat(servivi): add lineageos docker build files
All checks were successful
Discord / discord commits (push) Has been skipped

This commit is contained in:
matt1432 2024-01-06 02:40:54 -05:00
parent b852ca15f4
commit afa2717916
7 changed files with 139 additions and 8 deletions

View file

@ -3,7 +3,7 @@
config,
lib,
...
}:
} @ inputs:
with lib;
with builtins; let
user = config.vars.user;
@ -26,15 +26,21 @@ in {
backend = "podman-socket";
projects = let
configPath = "/var/lib/arion";
composeFiles =
filter (n: hasSuffix "compose.nix" (toString n))
(filesystem.listFilesRecursive ./.);
projects = listToAttrs (map (p: {
projects = filterAttrs (n: v: v.enabled or true) (listToAttrs (map (p: {
name = elemAt (match ".*\/(.*)\/compose\.nix" (toString p)) 0;
value = import p;
value = import p (inputs
// {
rwPath = configPath + "/" + elemAt (match "[^-]*-(.*)" "${dirOf p}") 0;
});
})
composeFiles);
composeFiles));
in
mapAttrs (n: v: {
# https://docs.hercules-ci.com/arion/options
@ -42,10 +48,12 @@ in {
enableDefaultNetwork = v.enableDefaultNetwork or true;
networks = optionalAttrs (hasAttr "networks" v) v.networks;
services = mapAttrs (n': v': {
image = optionalAttrs (hasAttr "customImage" v') v'.customImage;
service = filterAttrs (n: v: n != "customImage") v';
}) v.services;
services =
mapAttrs (n': v': {
image = optionalAttrs (hasAttr "customImage" v') v'.customImage;
service = filterAttrs (n: v: n != "customImage") v';
})
v.services;
};
})
projects;

View file

@ -0,0 +1,7 @@
ota.nelim.org {
tls matt@nelim.org {
dns cloudflare {env.CLOUDFLARE_API_TOKEN}
resolvers 1.0.0.1
}
reverse_proxy lineageOTA
}

View file

@ -0,0 +1,76 @@
{
config,
rwPath,
...
}: {
# FIXME: crashes when building
# This should only be ran when an update is needed
enabled = false;
services = {
"builder" = {
image = "lineageos4microg/docker-lineage-cicd";
container_name = "lineage_builder";
environment = {
BRANCH_NAME = "lineage-20.0";
DEVICE_LIST = "lemonadep";
SIGN_BUILDS = "true";
SIGNATURE_SPOOFING = "restricted";
WITH_GMS = "true";
ZIP_SUBDIR = "false";
OTA_URL = "https://ota.nelim.org/api";
CUSTOM_PACKAGES = "AuroraStore AvesLibre Droidify MJPdfReader Mull OpenCalc";
INCLUDE_PROPRIETARY = "false";
PARALLEL_JOBS = 6;
CLEAN_AFTER_BUILD = "false";
CCACHE_SIZE = "200G";
};
volumes = [
"${rwPath}/lineage/src:/srv/src"
"${rwPath}/lineage/zips:/srv/zips"
"${rwPath}/lineage/logs:/srv/logs"
"${rwPath}/lineage/cache:/srv/ccache"
"${rwPath}/lineage/keys:/srv/keys"
"${toString ./.}/manifests:/srv/local_manifests:ro"
"${toString ./.}/scripts:/srv/userscripts:ro"
"/etc/timezone:/etc/timezone:ro"
"/etc/localtime:/etc/localtime:ro"
];
};
"OTA-server" = {
container_name = "lineageOTA";
image = "docker.io/julianxhokaxhiu/lineageota";
volumes = [
"${rwPath}/lineage/zips:/var/www/html/builds/full:ro"
];
};
"caddy" = {
image = "quay.io/slothcroissant/caddy-cloudflaredns:latest";
container_name = "caddy";
ports = [
"80:80"
"443:443"
];
volumes = [
"${rwPath}/caddy/data:/data"
"${rwPath}/caddy/config:/config"
"${toString ./.}/Caddyfile:/etc/caddy/Caddyfile:ro"
];
env_file = [config.sops.secrets.caddy-cloudflare.path];
environment = {
CLOUDFLARE_EMAIL = "matt@nelim.rg";
ACME_AGREE = "true";
};
};
};
}

View file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<remote name="gitea" fetch="https://git.nelim.org/" />
<project name="matt1432/android_vendor_customs" path="vendor/alternatives" remote="gitea" revision="master" />
<project name="lineageos4microg/android_vendor_partner_gms" path="vendor/partner_gms" remote="github" revision="master" />
<project name="matt1432/android_vendor_mulchwebview" path="vendor/mulch" remote="gitea" revision="main" />
<project name="jgudec/android_vendor_lawnchair" path="vendor/lawnchair" remote="github" revision="13" />
</manifest>

View file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="TheMuppets/proprietary_vendor_oneplus_lemonadep" path="vendor/oneplus/lemonadep" remote="github" revision="lineage-20" />
<project name="TheMuppets/proprietary_vendor_oneplus_sm8350-common" path="vendor/oneplus/sm8350-common" remote="github" revision="lineage-20" />
<project name="LineageOS/android_device_oneplus_lemonadep" path="device/oneplus/lemonadep" remote="github" revision="lineage-20" />
<project name="LineageOS/android_hardware_oplus" path="hardware/oplus" remote="github" revision="lineage-20" />
<project name="LineageOS/android_kernel_oneplus_sm8350" path="kernel/oneplus/sm8350" remote="github" revision="lineage-20" />
<project name="LineageOS/android_device_oneplus_sm8350-common" path="device/oneplus/sm8350-common" remote="github" revision="lineage-20" />
</manifest>

View file

@ -0,0 +1,20 @@
#!/usr/bin/env bash
## See here for AndroidAuto: https://github.com/sn-00-x/aa4mg
## add MulchWebView
sed -i "1s;^;\$(call inherit-product-if-exists, vendor/mulch/mulch.mk)\n\n;" "/srv/src/LINEAGE_20_0/vendor/lineage/config/common.mk"
## add lawnchair overlay to build
sed -i "1s;^;\$(call inherit-product-if-exists, vendor/lawnchair/lawnchair.mk)\n\n;" "/srv/src/LINEAGE_20_0/vendor/lineage/config/common.mk"
## remove Trebuchet
sed -i 's/overrides.*/overrides: ["Home", "Launcher2", "Launcher3", "Launcher3QuickStep", "ParanoidQuickStep", "PixelLauncher", "TrebuchetQuickStep", "TrebuchetOverlay"],/' "/srv/src/LINEAGE_20_0/vendor/lawnchair/Android.bp"
## only add needed packages from microg
echo "PRODUCT_PACKAGES += \\
GmsCore \\
GsfProxy \\
FakeStore \\
IchnaeaNlpBackend \\
NominatimGeocoderBackend" > "/srv/src/LINEAGE_20_0/vendor/partner_gms/products/gms.mk"

Binary file not shown.