diff --git a/flake.nix b/flake.nix index 2e300f4..26c2de2 100644 --- a/flake.nix +++ b/flake.nix @@ -70,13 +70,56 @@ colmenaHive = colmena.lib.makeHive self.outputs.colmena; colmena = hosts; - devShells.${system}.default = pkgs.mkShell { - buildInputs = with pkgs; [ - lazygit - agenix.packages.${system}.agenix - colmena.packages.${system}.colmena - ]; + devShells.${system} = { + default = pkgs.mkShell { + buildInputs = with pkgs; [ + lazygit + agenix.packages.${system}.agenix + colmena.packages.${system}.colmena + ]; + }; + # Shell for testing Forgejo Actions locally + # Usage: nix develop .#ci-test + ci-test = pkgs.mkShell { + buildInputs = with pkgs; [ + # Forgejo runner for exec command + forgejo-runner + + # Packages matching forgejo-runner.nix hostPackages + bash + coreutils + curl + gawk + git + gnused + jq + nix + nodejs + wget + + # Additional packages from systemPackages + colmena.packages.${system}.colmena + ]; + + shellHook = '' + # Wrapper that runs on host by default (matching your runner config) + ci() { + forgejo-runner exec -i "-self-hosted" "$@" + } + + echo "🔧 Forgejo Actions test environment" + echo "" + echo "Usage: ci [options]" + echo "" + echo "Examples:" + echo " ci --list -W .forgejo/workflows/ # List jobs" + echo " ci -W .forgejo/workflows/auto-update.yaml -j check-updates # Run job" + echo " ci -W .forgejo/workflows/auto-update.yaml -j check-updates -n # Dry run" + echo " ci -W .forgejo/workflows/auto-update.yaml -j check-updates -d # Debug" + echo "" + ''; + }; }; };