-
Notifications
You must be signed in to change notification settings - Fork 0
Brainstorm meeting github app software layer Nov 26th 2021
Kenneth Hoste edited this page Nov 26, 2021
·
1 revision
Attending: Bob, Kenneth
-
bot code public or not?
-
goals
- build node app
- test app (ReFrame)
- cron mode: check every 5min for stuff to follow up on (Slurm jobs?)
-
events (software-layer repo)
- create PR
- by trusted contributor?
- yes: do stuff
- no: post comment to ask
- by trusted contributor?
- comment
- by trusted contributor?
- yes:
- bot tag present?
- yes:
- try to take action
- no: ignore
- yes:
- bot tag present?
- no: ignore
- yes:
- by trusted contributor?
- labels
- build_ok:<cpu_target>, build_failed:...
- tests_ok:<cpu_target>
- review
- approved review:
- by trusted contributor?
- yes: try to take action
- no: post comment: nice try dude!
- by trusted contributor?
- other (requested changes, comments): ignore
- approved review:
- CI runs
- failed: post comment
- success: try to take action
- merge
- close
- create PR
-
tasks
- general
- log_event
- save JSON event data
- check out PR branch
- modified easystack file
- extra/changed tests
- check_requirements
- (1) trusted contributor or approved review
- (2) CI passes
- (3) build worked for CPU arch X
- (4) ReFrame tests passed for CPU arch X
- (5) all target CPU archs OK (build+test)
- task_follow_up (cron mode)
- check for completed tasks
- build task
- success:
- add label build_ok:cpu
- try to take action (start test?)
- fail:
- add label build_failed:cpu
- report via comment
- incl. link to gist with build log
- success:
- test task (run ReFrame local vs in job)
- success:
- add label
- try to take action (stage/ingest?)
- fail:
- add label
- report via comment
- incl. link to gist with test log
- success:
- build task
- check for completed tasks
- try to take action
- known action?
- build (requires 1-2)
- start build or submit build jobs
- create state dir with job iD
- post comment that build has started (incl. job ID)
- run tests (requires 3)
- native vs in Slurm job?
- in container X
- stage tarball + metadata (requires 5)
- using eessi-upload-to-staging script from
EESSI/infrastructure
- into S3 bucket (to trigger ingest)
- used on build nodes we don't manage
- using eessi-upload-to-staging script from
- ingest? (requires 5)
- only for trusted nodes we manage
- stage to bucket + ingest to S0
- directly?
- requires bot host to be publisher node?
- build (requires 1-2)
- known action?
- add label to PR
- new
- replace
- post comment in PR
- send mail in case of trouble
- log_event
- build node
- start build
- single node
- Slurm jobs
- evaluate build
- triage new vs replacement software installations
- create tarball
- stage tarball
- start build
- test app
- run ReFrame
- general
- test cluster
- CitC in AWS
- mix of x86_64, aarch64
- outline what a PR to contribute software should look like
- to EESSI/software-layer repo
- add something to easystack file
- software-layer repo:
- hackathon branch
- hackathon/easystack.yml easystack file that describes software stack
- ReFrame test file hackathon/tests.py to run '
eb --sanity-check-only --robot
' on easystack file
- hackathon branch
- create (private) repo: EESSI/eessi-bot
- implement basic app
- only log event data
- separate Python file per task
- set up CI to test app code
- docs
- only touch "your" Python file
- specify hackathon setup:
- build/install into /tmp/eessi-hackathon
- unpack tarball into /tmp/eessi-hackathon for test jobs
- mocked S3 bucket in /eessi-hackathon/s3-bucket
- how to test
- set up branch per per subtask
- implement basic app