unisonweb / unisonweb/share-api
Adding support for CI hooks
Nobody has claimed this yet.
- Dominant language
- Haskell
- Stars
- 31
- Forks
- 3
- PR merge metrics
- No merged PRs in 30d
Description
A feature I would really like to have is being able to trigger CI on pushes to main (or on releases?)
Thinking out loud, but would it be possible to
- Identify some key lifecycle events. Maybe Pushed (to main) and Released?
- Identify some function name/signature to use as a convention (maybe
ci : ShareEvent -> {IO, Exception} ()) - When events are triggered, if this function exists in the project, run the CI function?
Might need to figure out how unit tests fit into this as well (Maybe there should be another ciConfig function that returns a CIConfig with some data on how to handle this?). But even with just the above I could do something like
ci event = match event with
Pushed (Branch "main") ->
deployStage
Released ->
result = runIntegrationTests
if result then deployProd else (throw ErrorThatBlocksRelease)
_ -> ()
Would also be down to try to contribute for this but would need a lot of help ;)
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
The issue names no files, tests, or entry points. Start by reviewing the repository structure and existing CI or release integration, then clarify the lifecycle events, callback convention, configuration model, and unit-test behavior before implementation. Done means an agreed design and working support for the selected CI hooks.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- haskell
- Domain
- ci-cd, devops
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100