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
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:
@@ -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;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user