Skip to content
Merged
Show file tree
Hide file tree
Changes from 217 commits
Commits
Show all changes
221 commits
Select commit Hold shift + click to select a range
a3df322
reproduce FLINT.Cloud apis
radistoubalidis Apr 8, 2022
f1af387
changed form data paths
radistoubalidis Apr 10, 2022
3765331
Merge pull request #1 from radistoubalidis/reproduce
radistoubalidis Apr 10, 2022
14ea019
example sim report using cml
radistoubalidis Apr 11, 2022
486184a
Update cml-report.yml
radistoubalidis Apr 11, 2022
93cb748
Update cml-report.yml
radistoubalidis Apr 11, 2022
29138c0
Update cml-report.yml
radistoubalidis Apr 11, 2022
4991cf4
Update cml-report.yml
radistoubalidis Apr 11, 2022
7eb9cf6
Update cml-report.yml
radistoubalidis Apr 11, 2022
0d89ef4
Update cml-report.yml
radistoubalidis Apr 11, 2022
6b21e96
Update cml-report.yml
radistoubalidis Apr 11, 2022
52e8445
test if cml is setup right
radistoubalidis Apr 11, 2022
806fdad
Merge branch 'master' of github.com:radistoubalidis/FLINT.Cloud into …
radistoubalidis Apr 11, 2022
66e8192
add cml script
radistoubalidis Apr 11, 2022
ba03306
Update cml-report.yml
radistoubalidis Apr 11, 2022
5f59877
changed file paths to not show local directories
radistoubalidis Apr 11, 2022
a29fd30
Merge branch 'master' of github.com:radistoubalidis/FLINT.Cloud into …
radistoubalidis Apr 11, 2022
6266c5e
update cml report
radistoubalidis Apr 11, 2022
437622f
setup gha script to show summary
radistoubalidis Apr 11, 2022
472a51d
Update cml-report.yml
radistoubalidis Apr 11, 2022
81e5bdd
Merge branch 'master' of github.com:radistoubalidis/FLINT.Cloud into …
radistoubalidis Apr 11, 2022
11b6ef7
setup GCBM summary
radistoubalidis Apr 11, 2022
0ffe4a9
setup GCBM summary
radistoubalidis Apr 11, 2022
49473c7
setup GCBM summary
radistoubalidis Apr 11, 2022
d109e1e
setup GCBM summary
radistoubalidis Apr 11, 2022
c4dc48c
setup GCBM summary
radistoubalidis Apr 11, 2022
88e78c4
setup GCBM summary
radistoubalidis Apr 11, 2022
6a33fae
setup GCBM summary
radistoubalidis Apr 11, 2022
36ebf49
setup GCBM summary
radistoubalidis Apr 11, 2022
2c12120
setup GCBM summary
radistoubalidis Apr 11, 2022
bf6cd6a
setup GCBM summary
radistoubalidis Apr 11, 2022
292ded1
setup GCBM summary
radistoubalidis Apr 11, 2022
d936923
setup GCBM summary
radistoubalidis Apr 11, 2022
3cc08d0
Merge branch 'moja-global:master' into master
radistoubalidis May 24, 2022
5f0490e
update cml_report script
radistoubalidis May 25, 2022
300da4e
update cml script
radistoubalidis May 25, 2022
f46377a
update cml script
radistoubalidis May 25, 2022
2363fa1
update cml script
radistoubalidis May 25, 2022
a1f7dc8
update cml script
radistoubalidis May 25, 2022
4f382b2
update cml script
radistoubalidis May 25, 2022
db41251
update cml script
radistoubalidis May 25, 2022
89e5b08
update python script
radistoubalidis May 25, 2022
3489fcd
Merge branch 'master' into integrate_cml
radistoubalidis May 25, 2022
056c048
Update cml-report.yml
radistoubalidis May 25, 2022
19014d8
Merge branch 'master' into integrate_cml
radistoubalidis May 25, 2022
08f8673
Update cml-report.yml
radistoubalidis May 25, 2022
4fd669b
Merge branch 'integrate_cml' of github.com:radistoubalidis/FLINT.Clou…
radistoubalidis May 25, 2022
0509984
run model summary
radistoubalidis May 25, 2022
3dc01e9
add sim start and end dates
radistoubalidis May 25, 2022
b65ea19
Merge branch 'moja-global:master' into master
radistoubalidis Jun 1, 2022
1922f0a
Merge branch 'moja-global:master' into master
radistoubalidis Jun 7, 2022
24a98e9
Merge branch 'moja-global:master' into integrate_cml
radistoubalidis Jun 7, 2022
97a72f8
Merge pull request #3 from radistoubalidis/integrate_cml
radistoubalidis Jun 7, 2022
738a31b
Merge branch 'moja-global:master' into master
radistoubalidis Jun 23, 2022
6832b0e
Merge branch 'moja-global:master' into master
radistoubalidis Jun 24, 2022
91f67d9
add action to create new sim
radistoubalidis Jun 7, 2022
2cd7271
run api and get list of saved simulations
radistoubalidis Jun 7, 2022
3573020
run api and get list of saved simulations
radistoubalidis Jun 7, 2022
2f99313
run api and get list of saved simulations
radistoubalidis Jun 7, 2022
9ea2b35
run api and get list of saved simulations
radistoubalidis Jun 7, 2022
d3de7d0
run api and get list of saved simulations
radistoubalidis Jun 7, 2022
6838b7b
run api and get list of saved simulations
radistoubalidis Jun 7, 2022
e9dec2b
run api and get list of saved simulations
radistoubalidis Jun 7, 2022
aa01b46
run api and get list of saved simulations
radistoubalidis Jun 7, 2022
bed6c7a
run api and get list of saved simulations
radistoubalidis Jun 7, 2022
b5788d8
create new sim and check if it works
radistoubalidis Jun 7, 2022
7db1fb9
add script to get log files in CML action
radistoubalidis Jun 8, 2022
660de46
add script to get log files in CML action
radistoubalidis Jun 8, 2022
ba737c8
fix some paths and get log files in CML action
radistoubalidis Jun 8, 2022
1b9d602
test if ci has docker
radistoubalidis Jun 8, 2022
3901db6
test curl on gcbm api
radistoubalidis Jun 8, 2022
2b86fa1
test curl on gcbm api
radistoubalidis Jun 8, 2022
fa17d12
update curl command
radistoubalidis Jun 8, 2022
46de531
add cli to api
radistoubalidis Jun 8, 2022
db21cef
cli instead of curl to interact with gcbm api
radistoubalidis Jun 8, 2022
aca6998
cli instead of curl to interact with gcbm api
radistoubalidis Jun 8, 2022
9c0230e
Managed to retrieve logs from sim run localy
radistoubalidis Jun 8, 2022
62e6299
check if cURL works with api
radistoubalidis Jun 8, 2022
06238bf
check if cURL works with api in actions
radistoubalidis Jun 8, 2022
97327b9
check if cURL works with public ip
radistoubalidis Jun 8, 2022
ef13f95
check if it works with webrequest
radistoubalidis Jun 8, 2022
7745d2c
check if it works with webrequest
radistoubalidis Jun 8, 2022
9a19e2f
check if it works with webrequest
radistoubalidis Jun 8, 2022
d128d5d
check right ports
radistoubalidis Jun 8, 2022
811a293
test in port 5000
radistoubalidis Jun 8, 2022
0313dab
test ports
radistoubalidis Jun 8, 2022
7d3e5d7
test ports
radistoubalidis Jun 8, 2022
167f6ce
check if simulation runs
radistoubalidis Jun 8, 2022
5277444
check if simulation runs
radistoubalidis Jun 8, 2022
042ab8e
check if simulation runs
radistoubalidis Jun 8, 2022
f3c7ec5
check if simulation runs
radistoubalidis Jun 8, 2022
585fb59
check if sim runs
radistoubalidis Jun 9, 2022
60ae222
check if sim runs
radistoubalidis Jun 9, 2022
e60ad22
check if sim run right
radistoubalidis Jun 9, 2022
822e202
check if sim run right
radistoubalidis Jun 9, 2022
bf01d74
check if sim run right
radistoubalidis Jun 9, 2022
4e06e56
check if sim run right
radistoubalidis Jun 9, 2022
a6c3727
check if sim run right
radistoubalidis Jun 9, 2022
e89dbe2
check if sim run right
radistoubalidis Jun 9, 2022
d322de4
check if sim run right
radistoubalidis Jun 9, 2022
0f613c3
check if sim run right
radistoubalidis Jun 9, 2022
587b938
check if sim run right
radistoubalidis Jun 9, 2022
ba58093
check if sim run right
radistoubalidis Jun 9, 2022
0f2576d
check if sim run right
radistoubalidis Jun 9, 2022
ea0ee09
check if sim run right
radistoubalidis Jun 9, 2022
5da627e
check if sim run right
radistoubalidis Jun 9, 2022
33586e1
check if sim run right
radistoubalidis Jun 9, 2022
5b65a90
check if sim run right
radistoubalidis Jun 9, 2022
ce105e1
check if sim runs using python script
radistoubalidis Jun 9, 2022
4e01057
check if sim runs using python script
radistoubalidis Jun 9, 2022
c10921d
check if sim runs using python script
radistoubalidis Jun 9, 2022
11a2ba4
check if sim runs using python script
radistoubalidis Jun 9, 2022
a2220d1
check if sim run smoothly
radistoubalidis Jun 9, 2022
27019a5
check if sim runs smoothly
radistoubalidis Jun 9, 2022
ed2d3d1
check if sim runs smoothly
radistoubalidis Jun 9, 2022
b5ebb7c
check if sim runs using a python script
radistoubalidis Jun 10, 2022
2073f59
check if sim runs using moja.cli
radistoubalidis Jun 13, 2022
3b05b57
check if sim runs using moja.cli
radistoubalidis Jun 13, 2022
ccb5c65
check if sim runs using moja.cli no tty
radistoubalidis Jun 13, 2022
4069f92
sim runs but zip file not found
radistoubalidis Jun 13, 2022
6cd4b75
copy output instead using docker cp instead of /download
radistoubalidis Jun 13, 2022
0254859
sim runs smoothly using partially gcbm-api and moja.cli and using cml…
radistoubalidis Jun 13, 2022
0418309
sim runs smoothly using partially gcbm-api and moja.cli and using cml…
radistoubalidis Jun 13, 2022
d027975
check if sim runs with threading
radistoubalidis Jun 14, 2022
5a97787
check if sim runs with threading
radistoubalidis Jun 14, 2022
f03b5ce
added CompileResults repo to rest_api_gcbm
radistoubalidis Jun 14, 2022
e9864f5
check sim with GCBM.CompileResults repo
radistoubalidis Jun 15, 2022
b178907
fix typo in cml_report.yml line 104
radistoubalidis Jun 15, 2022
8fb961e
add cml comment
radistoubalidis Jun 15, 2022
de59f16
check if annual_summaries.py runs properly
radistoubalidis Jun 15, 2022
0fd84c8
check if annual_summaries.py runs properly
radistoubalidis Jun 15, 2022
00572ac
compile results runs but cml comment cant display plot
radistoubalidis Jun 15, 2022
f05d05b
check if total biomass plot is displayed
radistoubalidis Jun 16, 2022
245a5fc
display sim log
radistoubalidis Jun 17, 2022
a6140f8
display sim log
radistoubalidis Jun 17, 2022
9a779a8
change cml-report to run on push/master and pr/master
radistoubalidis Jun 20, 2022
8879451
update cml comment
radistoubalidis Jun 20, 2022
956c6b9
update cml comment
radistoubalidis Jun 20, 2022
903d49c
update cml comment
radistoubalidis Jun 20, 2022
42fa9ab
update cml comment
radistoubalidis Jun 20, 2022
f70185e
update cml comment
radistoubalidis Jun 20, 2022
4bfc63d
update comment
radistoubalidis Jun 20, 2022
cb2a776
added job to upload logs as artifact
radistoubalidis Jun 23, 2022
7a71b73
fix typo in line 103 cml-report.yml
radistoubalidis Jun 23, 2022
c9a635d
check if download works
radistoubalidis Jun 23, 2022
40febe5
check why curl 26 in upload
radistoubalidis Jun 23, 2022
c2bbf0c
check why curl 26 in upload
radistoubalidis Jun 23, 2022
07cea98
check why curl 26 in upload
radistoubalidis Jun 23, 2022
6abfab5
check why curl 26 in upload
radistoubalidis Jun 23, 2022
688c2d7
check why curl 26 in upload
radistoubalidis Jun 23, 2022
e605a50
check why curl 26 in upload
radistoubalidis Jun 23, 2022
39c21d9
check why curl 26 in upload
radistoubalidis Jun 23, 2022
743916e
check why curl 26 in upload
radistoubalidis Jun 23, 2022
b71347e
check why curl 26 in upload
radistoubalidis Jun 23, 2022
74499a2
check why curl 26 in upload
radistoubalidis Jun 23, 2022
1d28e27
check why curl 26 in upload
radistoubalidis Jun 23, 2022
9ab7d31
check why curl 26 in upload
radistoubalidis Jun 23, 2022
d644c3d
check correct paths
radistoubalidis Jun 23, 2022
2dc0e2d
check why curl 26 in upload
radistoubalidis Jun 23, 2022
2a3865e
chech verbose cURL
radistoubalidis Jun 24, 2022
4a85d37
upload via python
radistoubalidis Jun 24, 2022
6fe45e1
upload via python
radistoubalidis Jun 24, 2022
907ddfd
upload via python
radistoubalidis Jun 24, 2022
7bbb830
upload via python
radistoubalidis Jun 24, 2022
2053d17
upload via python
radistoubalidis Jun 24, 2022
f916548
upload via python
radistoubalidis Jun 24, 2022
878a676
update cml-report
radistoubalidis Jun 24, 2022
cd28228
add requests module
radistoubalidis Jun 24, 2022
e313bf5
new upload params check if it runs
radistoubalidis Jun 24, 2022
e9c529c
new upload params check if it runs
radistoubalidis Jun 24, 2022
acd87a8
having issues in dynamic endpoint
radistoubalidis Jun 24, 2022
c7994bd
remove run job on push
radistoubalidis Jun 24, 2022
71faa5b
apply requested changes
radistoubalidis Jun 24, 2022
ff18dac
unzip zDemo_Run and templates before running api
radistoubalidis Jun 24, 2022
37a9db1
unzip form files before building api
radistoubalidis Jun 24, 2022
7238350
add Dockerfile.cml
radistoubalidis Jun 24, 2022
0783a9e
update paths in compileresults call
radistoubalidis Jun 24, 2022
66e51ce
test run to see file structure of output
radistoubalidis Jun 24, 2022
5277361
test run to see file structure of output
radistoubalidis Jun 24, 2022
b3152f8
check to see if compileresults fails
radistoubalidis Jun 24, 2022
7953fa0
update paths for compiled output db in annual_summaries.py
radistoubalidis Jun 27, 2022
ba63ed6
update cml action to run only when run-simulation label is added
radistoubalidis Jun 27, 2022
66c127f
see if the label condition if contains(...) works
radistoubalidis Jun 27, 2022
eebb991
see if the label condition if contains(...) works
radistoubalidis Jun 27, 2022
9bad2bb
run action based on pr labeling
radistoubalidis Jun 27, 2022
ea6b544
rename templates.zip to input_tepmlates.zip
radistoubalidis Jun 27, 2022
1d7fdfb
rename templates to template
radistoubalidis Jun 27, 2022
4ed4a3e
add templates to gitignore
radistoubalidis Jun 27, 2022
c8af633
check for templates in rest_api_gcbm folder
radistoubalidis Jun 27, 2022
75ce806
Revert "add templates to gitignore"
radistoubalidis Jun 27, 2022
958bd6e
refactor sim name form run4 test-run
radistoubalidis Jul 4, 2022
083739a
changes docker build to docker pull in cml-report.yml line 24
radistoubalidis Jul 4, 2022
14ad6a7
test changes
HarshCasper Jul 18, 2022
bdfcb6c
Merge branch 'moja-global:master' into master
radistoubalidis Jul 18, 2022
6e8bd81
Merge branch 'master' of github.com:radistoubalidis/FLINT.Cloud into …
radistoubalidis Jul 18, 2022
38b130f
Merge branch 'moja-global:master' into sim_summary
radistoubalidis Jul 18, 2022
be6ae5a
push to old version
HarshCasper Jul 19, 2022
2b68ae5
reduce number of threads
HarshCasper Jul 19, 2022
6215593
Merge branch 'sim_summary' of github.com:radistoubalidis/FLINT.Cloud …
radistoubalidis Jul 19, 2022
d031d89
Merge branch 'moja-global:master' into master
radistoubalidis Jul 19, 2022
17538f2
Merge branch 'master' of github.com:radistoubalidis/FLINT.Cloud into …
radistoubalidis Jul 19, 2022
f523b81
Merge branch 'moja-global:master' into sim_summary
radistoubalidis Jul 19, 2022
d256eb7
Merge branch 'moja-global:master' into sim_summary
radistoubalidis Jul 22, 2022
96a8e4c
Merge branch 'moja-global:master' into sim_summary
radistoubalidis Jul 25, 2022
f02515d
try fixing
HarshCasper Jul 31, 2022
cd6ee22
Merge branch 'moja-global:master' into sim_summary
radistoubalidis Aug 4, 2022
4cdea9f
Test CML Action with linux-demo.zip as configuration
radistoubalidis Aug 4, 2022
ec1c919
Test CML Action with linux-demo.zip as configuration
radistoubalidis Aug 4, 2022
47ad7ed
Test CML Action with linux-demo.zip as configuration
radistoubalidis Aug 4, 2022
b373392
Test CML Action with linux-demo.zip as configuration
radistoubalidis Aug 4, 2022
3a35fdf
Test CML Action with linux-demo.zip as configuration
radistoubalidis Aug 4, 2022
562b11d
Test CML Action with linux-demo.zip as configuration
radistoubalidis Aug 4, 2022
af25046
Test CML Action with linux-demo.zip as configuration
radistoubalidis Aug 4, 2022
69f700c
Test CML Action with linux-demo.zip as configuration
radistoubalidis Aug 4, 2022
92b2678
Test CML Action with linux-demo.zip as configuration
radistoubalidis Aug 4, 2022
03832a3
Test CML Action with linux-demo.zip as configuration
radistoubalidis Aug 4, 2022
bd28f5b
test dataset tracking action
radistoubalidis Aug 4, 2022
d57a229
remove useless files
HarshCasper Aug 6, 2022
f686578
remove more useless files
HarshCasper Aug 6, 2022
ab364e3
after all a new workflow
HarshCasper Aug 6, 2022
81953ef
label pr workflow
HarshCasper Aug 13, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
122 changes: 122 additions & 0 deletions .github/workflows/cml-report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
name: CML Report
on:
pull_request:
# types: [ labeled ]
branches:
- master

jobs:
sim-summary:
# if: ${{ github.event.label.name == ['run-simulation','GCBM'] }}
name: CML Simulation
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v3

- name: Setup python
uses: actions/setup-python@v2
with:
python-version: '3.9'

# - name: Build API
# run: |
# python local/rest_api_gcbm/cml_report/process_input.py
# cd local/rest_api_gcbm
# docker build -f Dockerfile.cml --build-arg BUILD_TYPE=RELEASE --build-arg NUM_CPU=4 -t gcbm-api .
# docker run -d --name gcbm-api --rm -p 8080:8080 gcbm-api

# - name: Get Public IP
# id: ip
# uses: haythem/public-ip@v1.2

# - name: Print public IP
# run: |
# echo ${{ steps.ip.outputs.ipv4 }}

# - name: Check ports
# run: |
# sudo netstat -tunlp

# - name: Create New Sim
# run: |
# curl -d "title=run4" -X POST http://0.0.0.0:8080/gcbm/new

# - name: Upload Files
# run: |
# cd GCBM/GCBM_New_Demo_Run
# curl -F disturbances='@disturbances/disturbances_2011_moja.tiff' \
# -F disturbances='@disturbances/disturbances_2012_moja.tiff' \
# -F disturbances='@disturbances/disturbances_2013_moja.tiff' \
# -F disturbances='@disturbances/disturbances_2014_moja.tiff' \
# -F disturbances='@disturbances/disturbances_2015_moja.tiff' \
# -F disturbances='@disturbances/disturbances_2016_moja.tiff' \
# -F disturbances='@disturbances/disturbances_2018_moja.tiff' \
# -F classifiers='@classifiers/Classifier1_moja.tiff' \
# -F classifiers='@classifiers/Classifier2_moja.tiff' \
# -F db='@db/gcbm_input.db' \
# -F miscellaneous='@miscellaneous/initial_age_moja.tiff' \
# -F miscellaneous='@miscellaneous/mean_annual_temperature_moja.tiff' \
# -F title="run4" \
# http://localhost:8080/gcbm/upload

# - name: Run Simulation
# run: |
# pip install requests
# python local/rest_api_gcbm/cml_report/run_gcbm.py

# - name: Retrive Logs and Download Results
# run: |
# cd local/tests
# python simulation_status.py
# cd ../..
# curl -d "title=run4" -X POST http://0.0.0.0:8080/gcbm/download -L -o run4.zip
# python local/rest_api_gcbm/cml_report/process_output.py

# - name: Upload Logs as artifact
# uses: actions/upload-artifact@v3
# with:
# name: simulation-logs
# path: local/tests/*.txt


- name: Build container
run: |
cd local/rest_api_gcbm
docker build -f Dockerfile.cml --build-arg BUILD_TYPE=RELEASE --build-arg NUM_CPU=4 -t gcbm-api .
docker run -d --name gcbm --rm -p 8080:8080 gcbm-api

- name: Process Input
run: |
docker exec -i gcbm python cml_report/process_input.py

- name: Run Simulation
run: |
docker exec -i -w /app/tests/config gcbm /opt/gcbm/moja.cli --config_file gcbm_config.cfg --config_provider provider_config.json
docker cp gcbm:/app/tests/output/logs/Moja_Debug.log local/rest_api_gcbm/tests

- name: Upload Logs as artifact
uses: actions/upload-artifact@v3
with:
name: simulation-logs
path: local/rest_api_gcbm/tests/Moja_Debug.log

- name: Compile Results
run: |
docker exec -i gcbm python GCBM.CompileResults/compileresults.py sqlite:///tests/output/gcbm_output.db --output_db sqlite:///tests/output/compiled_simulation_output.db
docker cp -L gcbm:/app/tests/output/compiled_simulation_output.db local/rest_api_gcbm/tests

- name: Setup CML
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm pretty sure the rest_api_gcbm container already has CML installed - this action generates the statement "Uninstalling existing CML installation", so I think it can be removed.

uses: iterative/setup-cml@v1

- name: Send the report
env:
repo_token: ${{ secrets.GITHUB_TOKEN }}
run: |
pip install matplotlib
pip install pandas
python local/rest_api_gcbm/cml_report/annual_summaries.py
echo "# GCBM Model" > report.md
Comment thread
aornugent marked this conversation as resolved.
Outdated
echo "## Total Biomass Curve" >> report.md
cml-publish output/total_biomass_mt.png --md >> report.md
cml-send-comment report.md
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -173,3 +173,4 @@ terraform.rc
# Add GCBM Demo runs
GCBM_Demo_Run/
GCBM_New_Demo_Run/
local/rest_api_gcbm/cml_report/templates
Comment thread
HarshCasper marked this conversation as resolved.
Outdated
4 changes: 4 additions & 0 deletions local/rest_api_gcbm/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,10 @@ RUN pip install --no-cache-dir -r requirements.txt
# Adding npm for CML Actions
RUN apt-get update
RUN apt-get install nodejs npm -y
RUN apt-get install -y python3-dev \
&& cd /usr/local/bin \
&& ln -s /usr/bin/python3 python
RUN python --version
RUN node --version
RUN npm --version

Expand Down
21 changes: 21 additions & 0 deletions local/rest_api_gcbm/Dockerfile.cml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
FROM ghcr.io/moja-global/flint.gcbm:master
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we can merge this into the rest_api_gcbm Dockerfile (above). Then we wouldn't need to rebuild it as part of the Action.

# FROM ghcr.io/moja-global/rest_api_gcbm@sha256:4c23b9874109b274247c26e3a01f8bdeecf26cda1afc8b5941234530c47c0012

WORKDIR /app

RUN pip install --upgrade pip

COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt

RUN apt-get update
RUN apt-get install -y python3-dev \
&& cd /usr/local/bin \
&& ln -s /usr/bin/python3 python
RUN python --version

RUN git clone https://github.com/moja-global/GCBM.CompileResults.git

COPY . .

CMD ["gunicorn", "--bind", ":8080", "--workers", "1", "--threads", "8", "--timeout", "0", "app:app"]
19 changes: 19 additions & 0 deletions local/rest_api_gcbm/cml_report/annual_summaries.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import sqlite3
import pandas as pd

conn = sqlite3.connect("local/rest_api_gcbm/tests/output/compiled_simulation_output.db")

query = f"""
SELECT years.year, COALESCE(SUM(i.pool_tc), 0) / 1e6 AS total_biomass_mt
FROM (SELECT DISTINCT year FROM v_age_indicators ORDER BY year) AS years
LEFT JOIN v_pool_indicators i
ON years.year = i.year
WHERE i.indicator = 'Total Biomass'
AND (years.year BETWEEN 2010 AND 2020)
GROUP BY years.year
ORDER BY years.year
"""

df = pd.read_sql_query(query, conn)
ax = df.plot.line("year") # x-axis
ax.figure.savefig("local/rest_api_gcbm/tests/output/total_biomass_mt.png", dpi=300)
12 changes: 12 additions & 0 deletions local/rest_api_gcbm/cml_report/process_input.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import zipfile
import os

# Unzip file
zip = os.path.join("tests","linux-demo.zip")
with zipfile.ZipFile(zip, "r") as zip_ref:
zip_ref.extractall("tests")

# template = os.path.join("local", "rest_api_gcbm", "templates.zip")
# extract_to = os.path.join("local", "rest_api_gcbm", "cml_report")
# with zipfile.ZipFile(template, "r") as zip_ref:
# zip_ref.extractall(extract_to)
6 changes: 6 additions & 0 deletions local/rest_api_gcbm/cml_report/process_output.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
import os
import zipfile

zip = "run4.zip"
with zipfile.ZipFile(zip, "r") as zip_ref:
zip_ref.extractall("output")
52 changes: 52 additions & 0 deletions local/rest_api_gcbm/cml_report/run_gcbm.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
import os
import requests
from threading import Timer
import time
import json

HOME = "http://localhost:8080/gcbm"
DONE = False


def run_gcbm():
url = f"{HOME}/dynamic"
req_data = {"title": "run4"}
res = requests.post(url, data=req_data)
return res.text


def status():
url = f"{HOME}/status"
req_data = {"title": "run4"}
res = requests.post(url, data=req_data)
return json.loads(res.text)


def display():
global DONE
sim_status = status()
if sim_status["finished"] == "In Progress":
print(os.system("docker logs gcbm-api --until=30s"))
else:
DONE = True


class CheckSimulation(Timer):
def run(self):
while not self.finished.wait(self.interval):
self.function(*self.args, **self.kwargs)
print("Threading Done")


run_sim = run_gcbm()
print(run_sim)

timer = CheckSimulation(30, display)
print("Starting simulation.")
timer.start()
time.sleep(300)
if not DONE:
time.sleep(300)

print("Simulation Ending.")
timer.cancel()
Loading