23c2d64eef
Correctly match capabilities when the agent has more than the project
2023-03-12 20:56:26 -07:00
0d00fb4cfd
Implement support for inline commands definition for projects
...
I think this will help the task definitions that don't line up to a development
project
2023-03-12 19:50:37 -07:00
f8976aab10
Switch the demo over to using a directory for configuration
2023-03-12 19:50:37 -07:00
9b516a8e5a
Refactor the ServerConfig to allow for loading configuration from a directory
...
This makes it possible to load fragments of configuration into one large
configuration struct (ServerConfig). This will be really useful for
incrementally dropping configuration with a configuration management tool or
just git
2023-03-12 19:50:37 -07:00
43d8cc19e8
Adding a synchronik.d/ directory for spacing out the yaml configuration
...
This isn't properly being loaded yet, but when the server is configured with a
directory, it should recurse through the YAML in the directory and merge it all
2023-03-12 19:50:37 -07:00
c709b8042f
Properly render the agent name
...
This render_compact work is still half-finished, but I'm focused elsewhere at
the moment and will come back to the idea of view components later
2023-03-12 19:50:37 -07:00
6cc263aae4
Add shoreman.sh and a Procfile for easily running a local setup
2023-03-12 19:50:37 -07:00
8e600ba3b6
Rename the project to Synchronik
2023-03-12 19:50:37 -07:00
3b95ff87ad
Regenerate API Docs
2023-02-06 14:25:11 -08:00
c02f87ae19
cargo clippy --fix
2023-02-05 16:27:05 -08:00
1339c8c2e8
Refactor the dao module into a directory full of models
...
This will make it a lot easier for myself and new folks to navigate the tree. No
sense shoving everything into a single module.
2023-02-05 16:25:30 -08:00
dbfd92614a
Start refactoring structs out into modules for cleaner code
2023-02-04 22:23:52 -08:00
6d8e7d1b6b
checkpoint wip on components rendering
2023-01-30 22:21:15 -08:00
9506a78da9
Cleanup nav and start preparing for WebSockets
2023-01-30 12:56:35 -08:00
c94c8b3aed
Redirect on form submission for the execution
2023-01-29 22:23:28 -08:00
72935aef37
Consolidate the API docs into a single spec file for ease of testing
2023-01-29 21:44:43 -08:00
81451f888c
Render projects from the database and starting in on the Project page
2023-01-29 21:33:54 -08:00
641c774788
Checkpointing work plugging projects through to the home page
2023-01-29 20:56:12 -08:00
f7a3dc3e8d
Display the configured agents on the home page
2023-01-29 20:56:12 -08:00
fcdf259bb9
Refactor some of the work with Project to create them from the config
...
Forgot to commit this earlier before wrapping up the stream
2023-01-29 20:50:59 -08:00
c4df9ad3af
Create the projects records from the configuration to make the foreign keys all work
...
With this the database is ready to start creating records based on user behavior
2023-01-29 18:06:00 -08:00
7fc0902d4c
Add the projects table to keep track of the projects configured
2023-01-29 17:42:06 -08:00
09ed646c76
Implement some JANKY AF data access layers
...
Things I've learned today:
* The [sqlx
documentation](https://docs.rs/sqlx/0.6.2/sqlx/sqlite/types/index.html#uuid )
is *lying* about its `uuid` support. Basically `query_as!` does not
ser/deserialize `Uuid` properly in/out of Sqlite with `TEXT` _or_ `BLOB`
* There are [no useful
examples](https://github.com/launchbadge/sqlx/issues/1014 ) of doing nested
struct queries in sqlx at the moment
2023-01-29 17:28:40 -08:00
8c63bf6095
Preserve line-breaks for testing
2023-01-29 14:32:08 -08:00
3ecf9eef9e
Fix the yaml to be better yaml
2023-01-29 14:30:43 -08:00
dda839a50d
Add a multi-line command for testing
2023-01-29 14:23:43 -08:00
c0970ba7b7
Add tango icons
2023-01-28 22:48:42 -08:00
99aaa368da
Add bootstrap to start building out some nice views
2023-01-28 22:43:57 -08:00
e8507f5b5f
Add bootstrap 5.3.0-alpha1
2023-01-28 22:22:36 -08:00
705a7fffa9
Clean up some warnings from rustc
2023-01-28 22:14:45 -08:00
c256be98d8
List the configured projects on the home page
...
Calling this for the night, since the path to views for projects is pretty
straightforward, and will be easy to pick back up later and get into the swing
of things
2023-01-28 21:43:47 -08:00
ceb24a296a
Fetch capable agents and execute workloads on them
...
This makes the basic end-to-end example work. There's now a flow of the scripts
being pulled from the ci.janky.yml and executed on an agent with the right
capabilities
🎉
2023-01-28 21:33:26 -08:00
c386f34697
Eschew Jenkinsfile compatibility in favor of dumbass yaml for now
2023-01-28 20:42:37 -08:00
19126ed88b
Refactor the project configuration to take in a github configuration
...
This allows for fetching the Jankyfile directly via REST API so the server
doesn't have to do any Git work just yet
2023-01-28 20:33:20 -08:00
909dbe587d
Prototype fetching just the Jankyfile from GitHub for execution
2023-01-28 19:55:58 -08:00
6c9f7ab491
Add a simple Jankyfile for testing
2023-01-28 19:39:42 -08:00
05fb2d5889
Parse command and configuration file options for the server
...
This allows Janky to start setting up projects and agents
2023-01-28 19:36:20 -08:00
eea8fbf8a9
Refactored the work execution into its own task governed by a bounded channel
...
The bounded channel prevents too many things from trying to be executed, but at
the moment the API will not return a 409 unless there are *two* subsequent
requests while work is being done
2023-01-28 18:35:37 -08:00
433239f47d
Output the logs to the file and return the log URL to the server
2023-01-28 17:46:50 -08:00
b47b1943cd
Actually execute whatever commands the agent receives 😱
2023-01-28 17:08:53 -08:00
6d963464cf
Process the CommandRequest from the OpenAPI Spec in the execute handler
...
This is where the rubber starts to meet the road
2023-01-28 16:54:01 -08:00
cc8cc30b17
Define the /execute API in the agent spec
2023-01-28 16:47:53 -08:00
ed96899c6c
Some basic capabilities with a bungled trait implementation
...
I would like these traits to make this more dynamic or compact, but I don't have
the time to get it right today
2023-01-28 16:35:28 -08:00
5494a54483
Start implementing the API documentation and stubs for agent APIs
2023-01-28 15:43:29 -08:00
0e3f874870
Start in on implementing the OpenAPI for the agent side of the equation
2023-01-28 15:31:04 -08:00
59c01e0e34
cargo clippy --fix
2023-01-28 15:10:48 -08:00
bd33634d04
Add a simple Tide scaffold for the agent
2023-01-28 15:10:20 -08:00
bb154cb92a
Oops, re-commited the root main.rs
2023-01-28 15:05:50 -08:00
2789850f5b
Add multiple targets for server and agent, start implementing migrations
2023-01-28 15:05:05 -08:00
0a3b14b942
Add the SqlitePool to the AppState for Janky data storage
2023-01-28 14:49:02 -08:00