Commit Graph

39 Commits

Author SHA1 Message Date
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
c736b2b5a2
Properly build with a root route 2023-01-28 14:34:58 -08:00
2d331c3db0
Add some scaffolding copied from dotdotvote 2023-01-28 14:33:40 -08:00
10af0c3335
Add a cargo init skeleton 2023-01-27 11:21:30 -08:00
545b2405b7
Add a simple asciidoc README 2023-01-27 11:20:58 -08:00
00a82ef8fc Initial commit 2023-01-27 10:48:50 -08:00