Research Basic Implementation Decisions #1
Labels
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: lightcrystal/memnarch#1
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Things like:
Perhaps obviously, the main server will be written in Go with quartzgun; I will be testing some basic POC in the next few days
parameters like job type and specific job should be encoded in the route; then on checkout of the repo, use that info to run certain files in
.memnarch
directory...flows:
what information do we need for each of these flows where:
perhaps these three basic use cases can be defined as one process (lint/compile check being just the build step)
necessary info:
map[location][]file
)possible structure of a memnarch file (YAML):
build
ordeploy
can be used independently or together.deploy.before
ordeploy.after
can be omittedsyntax for failure conditions will need to be refined; maybe we don't even need them if we can just capture stderr and exit code
Could have multiple files for different jobs, eg:
.memnarch/lint.yml
run on opening a PR.memnarch/deploy.yml
run on merging to main.memnarch/package.yml
run on creating a tagand specifying the file in the route somehow
We can inject a simple widget in the UI to retrieve the status of the latest jobs for a particular branch or object.
Job status can be stored based on repo and object
map[repo]map[object]struct { name, status, msg, start, end }
Actions need to be sandboxed...
If we specify a container and copy the repo contents into it at a unified location (/opt/memnarch or something), then we can have our build process export some files back into the host filesystem, and buffer ourselves from nefarious actions in the build process.