EESSI / eessi-bot-software-layer

Bot to help with requests to add software installations to the EESSI software layer
GNU General Public License v2.0
0 stars 18 forks source link

Control center in PR description #96

Open trz42 opened 1 year ago

trz42 commented 1 year ago

Provide an overview of the status of the PR and means to control instances (disable/enable instances and/or targets, deploy builds for specific instance/target).

Could be implemented by a "master" bot instance which receives all events (PR opened, labelled and particularly updates to comments).

Add mockups of the layout in subsequent comments to this issue.

Maybe a simple table that is added to the very first comment. Table could look as follows

Target Build Step
(Submit/Release/Run/Finish)
Deploy Step
(Upload/Stage/Approve/Ingest)
Bot Instance
x86_64-generic :white_check_mark: / :white_check_mark: / :white_check_mark: / :white_check_mark: :white_check_mark: / :white_check_mark: / :white_check_mark: / :white_check_mark: Saga-PR62
x86_64-intel-haswell :white_check_mark: / :white_check_mark: / :white_check_mark: / :x: - / - / - / - CitC-PR62
aarch64-generic :white_check_mark: / :white_check_mark: / :white_check_mark: / :white_check_mark: :white_check_mark: / :white_check_mark: / :white_check_mark: / :white_check_mark: eX3-PR62
aarch64-generic :white_check_mark: / :white_check_mark: / :white_check_mark: / :white_check_mark: :white_check_mark: / :white_check_mark: / :white_check_mark: / :white_check_mark: CitC-PR62
aarch64-graviton2 :white_check_mark: / :white_check_mark: / :white_check_mark: / :white_check_mark: - / - / - / - CitC-PR62

OR

Target Submitted Released Running Finished Uploaded Staged Approved Ingested Bot Instance
x86_64-generic :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: Saga-PR62
x86_64-intel-haswell :white_check_mark: :white_check_mark: :white_check_mark: :x: CitC-PR62
aarch64-generic :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: eX3-PR62
aarch64-generic :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: CitC-PR62
aarch64-graviton2 :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: CitC-PR62

OR

PRSO (Pull Request Status Overview)

target confirmed built validated deployed verified comments
x86_64-generic 👍 link(s) to details
x86_64-amd-zen2 👍 link(s) to details

(GHA could add a second comment used as command log: confirm <target>, approve <target>, deploy <target>, etc.)

trz42 commented 1 year ago
Bot instance at name with defined targets: arch repo/version config builds deployment
x86_64/generic NESSI/2022.11 enabled :x: 🏃approved
aarch4/generic NESSI/2022.11 disabled --

Last state changes ($n$ per target)

date arch+repo/version job id action/state details
tomorrow aarch64/generic+NESSI/2022.11 1234 submitted job dir /tmp/foo
All jobs (human readable, one table per job) |date|arch+repo/version|job id|action/state|details| |----|--------|-----|-----|------------------------| |tomorrow|`aarch64/generic+NESSI/2022.11`|`1234`|`submitted`|job dir `/tmp/foo`| |today|`aarch64/generic+NESSI/2022.11`|`1234`|`submitted`|job dir `/tmp/foo`| |yesterday|`aarch64/generic+NESSI/2022.11`|`1234`|`submitted`|job dir `/tmp/foo`| |date|arch+repo/version|job id|action/state|details| |----|--------|-----|-----|------------------------| |tomorrow|`x86_64/generic+NESSI/2022.11`|`5678`|`submitted`|job dir `/tmp/foo`| |today|`x86_64/generic+NESSI/2022.11`|`5678`|`submitted`|job dir `/tmp/foo`| |yesterday|`x86_64/generic+NESSI/2022.11`|`5678`|`submitted`|job dir `/tmp/foo`| job `ABCD` arch `x86_64/generic` repo `NESSI/2022.11` |date|action/state|details| |----|-----|------------------------| |tomorrow|`submitted`|job dir `/tmp/foo`| |today|`submitted`|job dir `/tmp/foo`| |yesterday|`submitted`|job dir `/tmp/foo`|
All state changes (machine readable, `json`) ```json { "date 1" } ```

Commands Note, add commands to the bot below. Keep the ones which are there. Add new at the end of the list. See DOC for a list of supported commands. Example 1: @bot cancel job 12345 Example 2: @bot disable target aarch64/generic for NESSI/2022.11


Notes

  • why all these checksum errors
bedroge commented 11 months ago

While reviewing https://github.com/EESSI/software-layer/pull/328, I also figured that it would be very useful to have something like this. The PRs had quite a few build issues, and multiple rebuilds were triggered in attempts to solve these issues, which makes it hard for a reviewer to determine the actual state of the builds/PR.

laraPPr commented 7 months ago

I have created a bot: status command which collects all the comments in the pr related to the bot: build command which then print an overveiw of all the build in one table. I'll open a pr for it once I have cleaned some things up.

laraPPr commented 7 months ago

Just opened https://github.com/EESSI/eessi-bot-software-layer/pull/237 to create a bot: status command.

also tested it and here is an example of what the command does: