Step 1 - Select and instantiate an Ellip Workflows archetype¶
In this step, we will create an application structure, based on an archetype, that is a template of an application (see Application Archetypes).
Prerequisites¶
- The <community-name> and <app-name> values.
Procedure¶
- Open a Terminal using the JupyterLab Launcher,
- Enter the workspace directory:
cd /workspace
- Set the proper values for community and app-name:
APP_NAME=<app-name>
COMMUNITY=<community>
- Generate the application structure from the archetype:
mvn archetype:generate -B \
-DgroupId=com.terradue \
-DartifactId=${APP_NAME} \
-Dversion=0.1-SNAPSHOT \
-Dpackage=${APP_NAME} \
-Dcommunity=${COMMUNITY} \
-Ddescription='Sentinel-1 backscatter timeseries' \
-Dsummary='Data transformation application - Sentinel-1 backscatter timeseries' \
-DarchetypeArtifactId=ewf-notebook-stagein-1 \
-DarchetypeGroupId=com.terradue.app
If the app-name value was myapp, we would have under /workspace/myapp
an application structure like:
tree myapp/
myapp/
├── Jenkinsfile
├── pom.xml
├── README.md
└── src
├── main
│ └── app-resources
│ ├── application_template.xml
│ ├── dependencies
│ │ └── python
│ │ └── packages.list
│ └── notebook
│ ├── etc
│ │ └── snappy.ini
│ ├── libexec
│ │ └── input.ipynb
│ └── run
└── test
└── test_util.py
9 directories, 9 files
src/main/app-resources
with notebook/run, the wrapping streaming executable, a python script that instantiates, parametrizes and invokes the Jupyter notebook and finally publishes the generated results (depending on the template it stages-in the inputs) - no edits here!,src/main/app-resources/notebook/libexec/input.ipynb
, the Jupyter Notebook that will be converted as an executable,src/test
with the unit tests for the application
Next step¶
- Step 2 - Set the software repository of the Hands-On puts these files in a GitLab software repository
[ ]: