Notes version 2
This commit is contained in:
parent
7739f986f5
commit
220d6d8491
38
notes
38
notes
|
@ -1,17 +1,37 @@
|
|||
Notes Version 2
|
||||
|
||||
Use a "config.toml" to specify repos to pull and build from.
|
||||
Will probably have entries like:
|
||||
|
||||
[[project]]
|
||||
clone_url = "https://github.com/username/project.git"
|
||||
[[project]]
|
||||
clone_url = "https://github.com/username/project2.git"
|
||||
always_approve = true
|
||||
[[user]]
|
||||
username = "somebody"
|
||||
password_hash = "..."
|
||||
password_salt = "..."
|
||||
[[user]]
|
||||
username = "another_person"
|
||||
password_hash = "..."
|
||||
password_salt = "..."
|
||||
otp_secret = "..."
|
||||
[[admin_user]]
|
||||
username = "someone_else"
|
||||
password_hash = "..."
|
||||
password_salt = "..."
|
||||
otp_secret = "..."
|
||||
|
||||
The project should have a "/simple_ci/" at HEAD. There should be a
|
||||
"/simple_ci/config.toml" with entries like:
|
||||
The project should have a "/.simple_ci/" at HEAD. There should be a
|
||||
"/.simple_ci/build.toml" with entries like:
|
||||
|
||||
# The root directory refers to the root of the project for "working_directory".
|
||||
# If the "working_directory" doesn't exist, simple_ci should create it first.
|
||||
# It will probably use something like "/usr/bin/mkdir -p ...".
|
||||
working_directory = "/build"
|
||||
build_artifacts = ["./the_executable", "./docs/"]
|
||||
build_steps = ["prepare_cmds", "build_cmds", "post_build_cmds"]
|
||||
[[prepare_cmds]]
|
||||
cmd = "./prepare.sh"
|
||||
args = []
|
||||
|
@ -32,21 +52,21 @@ args = ["docs"]
|
|||
cmd = "/usr/bin/cp"
|
||||
args = ["./output/the_exe", "./the_executable"]
|
||||
|
||||
The simple_ci server should store "config.toml" entries from configured project
|
||||
The simple_ci server should store "build.toml" entries from configured project
|
||||
repos for approval by an administrator before doing anything with them. Ideally,
|
||||
this will be done on a front-end website that requires login and shows the
|
||||
"config.toml" from each configured project repo for approval or denial. The
|
||||
back-end should store the approved "config.toml" per each repo so that the next
|
||||
"build.toml" from each configured project repo for approval or denial. The
|
||||
back-end should store the approved "build.toml" per each repo so that the next
|
||||
time the ci runs, it will verify that the files match. Any changes will require
|
||||
the administrator to re-approve that repo's "config.toml". A single repository
|
||||
will only have a single "config.toml" stored for it (assuming it was approved).
|
||||
the administrator to re-approve that repo's "build.toml". A single repository
|
||||
will only have a single "build.toml" stored for it (assuming it was approved).
|
||||
|
||||
Ideally, the front-end would also enable the administrator to add/remove repos
|
||||
to load from and build. This should enable editing the server-side "config.toml"
|
||||
from this front-end as well.
|
||||
|
||||
If any of the commands specified in the projects "config.toml" fails, then
|
||||
If any of the commands specified in the projects "build.toml" fails, then
|
||||
simple_ci should halt the "build" and leave a note to be viewed on the
|
||||
front-end. Note that a cmd specified in a project's "config.toml" can set
|
||||
front-end. Note that a cmd specified in a project's "build.toml" can set
|
||||
"allow_fail = true" which will ignore failure for that specific command. Success
|
||||
statuses should also be noted on the front-end.
|
||||
|
|
Loading…
Reference in a new issue