fix: make checks run successfully
buildbot/nix-eval Build done.
buildbot/nix-build Build done.
buildbot/nix-effects Build done.
Build, Push, and Deploy / build (push) Failing after 12m53s
Build, Push, and Deploy / deploy (push) Has been skipped
Build, Push, and Deploy / push (push) Has been skipped

This commit is contained in:
Greg Hellings
2026-06-11 16:40:24 -05:00
parent 9af8b582ef
commit 044a1d8c1e
+157 -134
View File
@@ -1,145 +1,168 @@
# github.com/brianmcgee has lots of great ideas for going above and beyond for this # github.com/brianmcgee has lots of great ideas for going above and beyond for this
{ {
description = "Greg's homepage"; description = "Greg's homepage";
inputs = { inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
devshell.url = "github:numtide/devshell"; devshell.url = "github:numtide/devshell";
flake-parts.url = "github:hercules-ci/flake-parts"; flake-parts.url = "github:hercules-ci/flake-parts";
flake-root.url = "github:srid/flake-root"; flake-root.url = "github:srid/flake-root";
process-compose.url = "github:Platonic-Systems/process-compose-flake"; process-compose.url = "github:Platonic-Systems/process-compose-flake";
treefmt-nix.url = "github:numtide/treefmt-nix"; treefmt-nix.url = "github:numtide/treefmt-nix";
}; };
outputs = { devshell, flake-parts, flake-root, process-compose, treefmt-nix, ... }@inputs: outputs =
flake-parts.lib.mkFlake { inherit inputs; } { { flake-parts, ... }@inputs:
imports = [ flake-parts.lib.mkFlake { inherit inputs; } {
inputs.devshell.flakeModule imports = [
inputs.flake-root.flakeModule inputs.devshell.flakeModule
inputs.process-compose.flakeModule inputs.flake-root.flakeModule
inputs.treefmt-nix.flakeModule inputs.process-compose.flakeModule
]; inputs.treefmt-nix.flakeModule
flake = { ];
# Universal things flake = {
}; # Universal things
systems = [ };
"x86_64-darwin" systems = [
"x86_64-linux" "x86_64-darwin"
"aarch64-linux" "x86_64-linux"
]; "aarch64-linux"
perSystem = { config, pkgs, self', ... }: let ];
lib = pkgs.lib; perSystem =
in { {
# https://numtide.github.io/devshell/intro.html config,
devshells.default = { pkgs,
commands = [ self',
{ ...
package = pkgs.hugo; }:
category = "server"; let
} lib = pkgs.lib;
{ in
package = self'.packages.dev-server; {
category = "server"; # https://numtide.github.io/devshell/intro.html
help = "Start the development server"; devshells.default = {
} commands = [
{ {
package = self'.packages.prod-server; package = pkgs.hugo;
category = "server"; category = "server";
help = "Start the prod server"; }
} {
]; package = self'.packages.dev-server;
}; category = "server";
help = "Start the development server";
}
{
package = self'.packages.prod-server;
category = "server";
help = "Start the prod server";
}
];
};
# This is not special, this is just flakes # This is not special, this is just flakes
packages = { packages = {
inherit (pkgs) podman; inherit (pkgs) podman;
default = pkgs.dockerTools.buildLayeredImage { default = pkgs.dockerTools.buildLayeredImage {
name = "gregs-homepage"; name = "gregs-homepage";
tag = "latest"; tag = "latest";
contents = [ contents = [
self'.packages.site self'.packages.site
(pkgs.buildEnv { (pkgs.buildEnv {
name = "image"; name = "image";
paths = with pkgs; [ paths = with pkgs; [
dockerTools.fakeNss dockerTools.fakeNss
nginx nginx
]; ];
pathsToLink = [ "/bin" "/etc" "/var" ]; pathsToLink = [
}) "/bin"
]; "/etc"
fakeRootCommands = '' "/var"
mkdir tmp ];
chmod 0777 tmp })
''; ];
config = { fakeRootCommands = ''
Cmd = [ (lib.getExe pkgs.nginx) "-c" self'.packages.nginx-config "-e" "stderr" ]; mkdir tmp
Port = [ 80 ]; chmod 0777 tmp
}; '';
}; config = {
site = pkgs.stdenv.mkDerivation { Cmd = [
name = "Greg's homepage"; (lib.getExe pkgs.nginx)
nativeBuildInputs = [ pkgs.hugo ]; "-c"
buildPhase = '' self'.packages.nginx-config
hugo build "-e"
''; "stderr"
installPhase = '' ];
mkdir -p $out Port = [ 80 ];
cp -R public/* public/.* $out };
''; };
src = ./.; site = pkgs.stdenv.mkDerivation {
}; name = "Greg's homepage";
nginx-config = pkgs.writeText "nginx.conf" '' nativeBuildInputs = [ pkgs.hugo ];
user root root; buildPhase = ''
worker_processes 10; hugo build
pid /tmp/nginx.pid; '';
daemon off; installPhase = ''
mkdir -p $out
cp -R public/* public/.* $out
'';
src = ./.;
};
nginx-config = pkgs.writeText "nginx.conf" ''
user root root;
worker_processes 10;
pid /tmp/nginx.pid;
daemon off;
error_log stderr; error_log stderr;
events { events {
} }
http {
access_log stdout;
include ${pkgs.nginx}/conf/mime.types;
server {
listen 80;
root ${self'.packages.site};
autoindex off;
}
}
'';
};
# https://community.flake.parts/process-compose-flake http {
process-compose = { access_log stdout;
dev-server.settings.processes = { include ${pkgs.nginx}/conf/mime.types;
hugo.command = "${lib.getExe pkgs.hugo} serve"; server {
}; listen 80;
prod-server.settings.processes = { root ${self'.packages.site};
import.command = "${lib.getExe pkgs.podman} load -i ${self'.packages.default}"; autoindex off;
run = { }
command = "${lib.getExe pkgs.podman} run --rm -p 8000:80 gregs-homepage:latest"; }
depends_on.import.condition = "process_completed_successfully"; '';
readiness_probe.http_get = { };
host = "localhost";
port = 8000;
};
};
};
};
# https://numtide.github.io/treefmt/ # https://community.flake.parts/process-compose-flake
treefmt.config = { process-compose = {
inherit (config.flake-root) projectRootFile; dev-server.settings.processes = {
package = pkgs.treefmt; hugo.command = "${lib.getExe pkgs.hugo} serve";
};
prod-server.settings.processes = {
import.command = "${lib.getExe pkgs.podman} load -i ${self'.packages.default}";
run = {
command = "${lib.getExe pkgs.podman} run --rm -p 8000:80 gregs-homepage:latest";
depends_on.import.condition = "process_completed_successfully";
readiness_probe.http_get = {
host = "localhost";
port = 8000;
};
};
};
};
programs = { # https://numtide.github.io/treefmt/
deadnix.enable = true; treefmt.config = {
}; inherit (config.flake-root) projectRootFile;
package = pkgs.treefmt;
settings.formatter = { programs = {
}; deadnix.enable = true;
}; };
};
}; settings.formatter = {
};
};
checks = {
inherit (self'.packages) default;
};
};
};
} }