# EESSI hackathon Jan'22 - workflow to propose additions to EESSI software stack
Live collaborative notes for this task during the 2nd EESSI hackathon; see also general notes at https://hackmd.io/vSOfDj-SQSmYglhxz_R4hg
Notes from Dec'21 hackathon: https://github.com/EESSI/meetings/wiki/EESSI-hackathon-Dec'21
Zoom for this task: https://uib.zoom.us/j/69105180487?pwd=YldPU2ZPYWRGV1duV2JaV082MEVJdz09
## Subtasks
* [03.1] Use EESSI build container for the actual software builds
* [03.2] Monitor build/test jobs, handle failures
* [03.3] Let the app pick up the logs and tarball(s)
* [03.4] Reply results/failures back to PR (success/failure comment, logs as gist, ...)
* [03.5] Support more architectures
* [03.6] Add dependency structure between subtasks, e.g. tests should be triggered when build has succeeded
* [03.7] Handle many more events
* [03.8] Prepare slides for [Easybuild User Meeting talk](https://easybuild.io/eum22/#eessi-workflow)
* [03.9] Set up CI for the Github App
## Quick 'n dirty job script
```
#!/bin/bash
#SBATCH --job-name=build_easystack
#SBATCH --time=01:00:00
#SBATCH --constraint=shape=c4.2xlarge
ARCH=x86_64/intel/haswell
export EESSI_PILOT_VERSION=2021.12
EESSI_TMPDIR=/tmp/eessi
JOBID=18fa2650-5cd1-11ec-89c7-a0e0f4a35775
mkdir -p ${EESSI_TMPDIR}
cp -r ~/software-layer ${EESSI_TMPDIR}
cp ~/EESSI-pilot-install-software-easystack.sh ${EESSI_TMPDIR}/software-layer
cp ~/jobs/${JOBID}/softwarelist.yaml ${EESSI_TMPDIR}/easystack.yml
cd ${EESSI_TMPDIR}/software-layer
./build_container.sh run ${EESSI_TMPDIR} ./run_in_compat_layer_env.sh ./EESSI-pilot-install-software-easystack.sh
if [ $? -eq 0 ]; then
TARBALL=${EESSI_TMPDIR}/eessi-${EESSI_PILOT_VERSION}-software-linux-${ARCH////-}-$(date +'%s').tar.gz
./build_container.sh run ${EESSI_TMPDIR} ./create_tarball.sh ${EESSI_TMPDIR} ${EESSI_PILOT_VERSION} ${ARCH} ${TARBALL}
cp ${TARBALL} ~/jobs/${JOBID}
fi
```
## Questions
- How does the build job get the build scripts from `software-layer`?
- Preinstalled on app account?
- Include in build container?
- Download on the fly?
- default behaviour: the ones from `main`, or from tag corresponding to EESSI version?
- some option to override that for testing