Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Introduce neo ci Subcommands for CI/CD and External Integrations #131

Open
NickSeagull opened this issue Mar 9, 2025 · 0 comments
Open
Labels
effort: 3 Takes roughly 3 hours (w/ docs+testing) package: cli Related to the Command Line Tool type: feature work: obvious Straightforward tasks with known solutions; follow best practices

Comments

@NickSeagull
Copy link
Contributor

Currently, the build command in the NeoHaskell CLI follows this process:

  1. Generates a Haskell Cabal file in a temporary location.
  2. Creates a Nix file.
  3. Uses the Nix file as an expression for the Nix build command.

While this approach works, it lacks flexibility for CI/CD and integration with external projects. Instead, we should introduce a neo ci command with subcommands that allow finer control over the build process.

Proposed Changes:

  1. Introduce new ci subcommands:
    • neo ci generate-cabal: Generates a Cabal file but does not trigger a build.
    • neo ci generate-nix: Generates a Nix file but does not trigger a build.
    • Future extensions (e.g., neo ci build, neo ci test) could be added later.
  2. Modify the build command so it does not implicitly generate Cabal/Nix files but instead relies on existing ones or explicitly calls neo ci generate-* when needed.
  3. Ensure NeoHaskell itself can use this system in its own CI/CD pipelines.

Benefits:

  • Enables proper CI/CD automation with explicit file generation.
  • Makes NeoHaskell CLI easier to integrate with external projects.
  • Allows .cabal and .nix files to be safely ignored in repositories.
  • Reduces unnecessary file regeneration, improving efficiency.
@NickSeagull NickSeagull added effort: 3 Takes roughly 3 hours (w/ docs+testing) package: cli Related to the Command Line Tool type: feature work: obvious Straightforward tasks with known solutions; follow best practices labels Mar 9, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
effort: 3 Takes roughly 3 hours (w/ docs+testing) package: cli Related to the Command Line Tool type: feature work: obvious Straightforward tasks with known solutions; follow best practices
Projects
None yet
Development

No branches or pull requests

1 participant