feat(servivi): add lineageos docker build files
All checks were successful
Discord / discord commits (push) Has been skipped
All checks were successful
Discord / discord commits (push) Has been skipped
This commit is contained in:
parent
b852ca15f4
commit
afa2717916
7 changed files with 139 additions and 8 deletions
|
@ -3,7 +3,7 @@
|
||||||
config,
|
config,
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}:
|
} @ inputs:
|
||||||
with lib;
|
with lib;
|
||||||
with builtins; let
|
with builtins; let
|
||||||
user = config.vars.user;
|
user = config.vars.user;
|
||||||
|
@ -26,15 +26,21 @@ in {
|
||||||
backend = "podman-socket";
|
backend = "podman-socket";
|
||||||
|
|
||||||
projects = let
|
projects = let
|
||||||
|
configPath = "/var/lib/arion";
|
||||||
|
|
||||||
composeFiles =
|
composeFiles =
|
||||||
filter (n: hasSuffix "compose.nix" (toString n))
|
filter (n: hasSuffix "compose.nix" (toString n))
|
||||||
(filesystem.listFilesRecursive ./.);
|
(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;
|
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
|
in
|
||||||
mapAttrs (n: v: {
|
mapAttrs (n: v: {
|
||||||
# https://docs.hercules-ci.com/arion/options
|
# https://docs.hercules-ci.com/arion/options
|
||||||
|
@ -42,10 +48,12 @@ in {
|
||||||
enableDefaultNetwork = v.enableDefaultNetwork or true;
|
enableDefaultNetwork = v.enableDefaultNetwork or true;
|
||||||
networks = optionalAttrs (hasAttr "networks" v) v.networks;
|
networks = optionalAttrs (hasAttr "networks" v) v.networks;
|
||||||
|
|
||||||
services = mapAttrs (n': v': {
|
services =
|
||||||
image = optionalAttrs (hasAttr "customImage" v') v'.customImage;
|
mapAttrs (n': v': {
|
||||||
service = filterAttrs (n: v: n != "customImage") v';
|
image = optionalAttrs (hasAttr "customImage" v') v'.customImage;
|
||||||
}) v.services;
|
service = filterAttrs (n: v: n != "customImage") v';
|
||||||
|
})
|
||||||
|
v.services;
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
projects;
|
projects;
|
||||||
|
|
7
devices/servivi/modules/arion/lineageos/Caddyfile
Executable file
7
devices/servivi/modules/arion/lineageos/Caddyfile
Executable 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
|
||||||
|
}
|
76
devices/servivi/modules/arion/lineageos/compose.nix
Normal file
76
devices/servivi/modules/arion/lineageos/compose.nix
Normal 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";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -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>
|
|
@ -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>
|
20
devices/servivi/modules/arion/lineageos/scripts/before.sh
Executable file
20
devices/servivi/modules/arion/lineageos/scripts/before.sh
Executable 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"
|
BIN
flake.lock
BIN
flake.lock
Binary file not shown.
Loading…
Reference in a new issue