feat: automatted ci

This commit is contained in:
Rasyidan Akbar F. 2025-10-07 11:25:32 +07:00
commit d5f9021a2d
2 changed files with 43 additions and 0 deletions

4
.gitignore vendored
View file

@ -4,3 +4,7 @@
.env .env
# Personal secrets # Personal secrets
.config/zsh/secrets.zsh .config/zsh/secrets.zsh
# Nix build results
result
result-*

View file

@ -21,6 +21,45 @@ let
in { in {
programs.nushell.enable = lib.mkDefault true; programs.nushell.enable = lib.mkDefault true;
programs.nushell.extraConfig = ''
# Dotfiles QA validation command
def dotfiles-qa [] {
let dotfiles_dir = "${config.home.homeDirectory}/Development/dotfiles"
print $"(ansi green_bold)Running dotfiles QA validation...(ansi reset)\n"
# Step 1: Format check
print $"(ansi blue)1. Formatting nix files...(ansi reset)"
cd $dotfiles_dir
nix fmt .
if $env.LAST_EXIT_CODE != 0 {
print $"(ansi red_bold) Formatting failed(ansi reset)"
return
}
print $"(ansi green) Formatting complete(ansi reset)\n"
# Step 2: Flake check
print $"(ansi blue)2. Running flake check...(ansi reset)"
nix flake check
if $env.LAST_EXIT_CODE != 0 {
print $"(ansi red_bold) Flake check failed(ansi reset)"
return
}
print $"(ansi green) Flake check passed(ansi reset)\n"
# Step 3: Build (without activation)
print $"(ansi blue)3. Building darwin configuration (no activation)...(ansi reset)"
darwin-rebuild build --flake $"($dotfiles_dir)#macbook-pro"
if $env.LAST_EXIT_CODE != 0 {
print $"(ansi yellow) Build had warnings, but may still work(ansi reset)\n"
} else {
print $"(ansi green) Build successful(ansi reset)\n"
}
print $"(ansi green_bold) Core QA checks passed!(ansi reset)"
}
'';
programs.nushell.envFile.text = '' programs.nushell.envFile.text = ''
let nix_paths = [ let nix_paths = [
${formatPathList [ profileBin systemBin defaultBin ]} ] ${formatPathList [ profileBin systemBin defaultBin ]} ]