5.1 Overview of the github actions

Github actions permit to run parts of data pipelines automatically, as summarised in figure 2.1. The results of github action runs as well as the corresponding files are available on github under the ‘actions’ tab. In particular, this page shows the current status of the different actions:

  • running (yellow): the job is currently running
  • passed (green): the last job ran successfully
  • failed (red): the last job errored

In every case, logs are available. These are particularly useful for troubleshooting issues.

Each github action is defined by a YAML file stored in the hidden folder .github/workflows/, currently containing:

## [1] "auto_synthesis.yml"    "auto_update_afro.yml"  "auto_update_all.yml"  
## [4] "auto_update_emro.yml"  "auto_update_euro.yml"  "auto_update_paho.yml" 
## [7] "auto_update_searo.yml" "auto_update_wpro.yml"  "refresh_readme.yml"
  • auto_update_[region].yml: analysis updates for a given region
  • auto_update_all.yml: same, but for all regions
  • auto_synthesis.yml: collects existing results for all regions, generate ELR report and send information products by email to a list of recipients
  • refresh_readme.yml: update the README.md file

Sub-sections below provide more information on these actions.

5.1.1 Regional updates

5.1.1.1 Outline

This set of actions (one per WHO region) are implemented in the auto_update_[region].yml files. They automate the following workflow:

  • download and prepare the current data
  • run all analyses for the region under consideration
  • commit and push to github the resulting information products (i.e. the asmodee_outputs/ folder) - see details on the regional analyses in the report chapter 3

note: Neither the data nor the compiled report (usually stored in the outputs/ folder) are commited or pushed to github.

5.1.1.2 Schedule

These actions run every day at 12:30, 14:30, and 18:30 GMT. It can also be triggered manually from the github action page (see figure @(fig:action-trigger) below.

Manual trigger of actions from the github action page.

Figure 5.1: Manual trigger of actions from the github action page.

5.1.2 Updates of all regions

5.1.2.1 Outline

This action is implemented in the auto_update_all.yml and automates the same workflow as the regional updates, but for all regions.

5.1.2.2 Schedule

This action runs every day at 16:00 and 22:00 GMT. It can also be triggered manually from the github action page (see figure 5.1. As an option, the user can specify a single WHO region (using the upper case abbreviations) when manually triggering a run of this action.

5.1.3 ELR synthesis

5.1.3.1 Outline

This action is implemented in the auto_synthesis.yml and automates the following workflow:

  • compile results of all regions using the latest analyses on github from the asmodee_outputs/ folder
  • generates an ELR report - see details on the ELR synthesis in the report chapter 3
  • creates a zip archive of:
    • the ELR report as a self-contained html file
    • an xlsx spreadsheet containing ELRs for all countries alongside key indicators
    • a text file listing countries excluded from the analysis as well as the rationale for their exclusion
  • sends an email to a list of recipients hard-coded in the script run_synthesis.R (located in the root folder) with this zip attached

note: this job does not commit anything to github; the only end-result persisting after the job has run is the email and its attachments.

5.1.3.2 Schedule

This action runs every Monday at 6:00 GMT. It can also be triggered manually from the github action page (see figure 5.1.

5.1.3.3 Automated emails

Automated emails, as currently implemented, require SMTP authentication for the free SMTP provider sendinblue. This is currently done through Thibaut Jombart’s account, linked to the gmail address . While emails will look like they were sent from this email, they were actually sent by a different provider, which will often result in these emails being marked as SPAM. Double-check your SPAM folder if you are on the list of recipients and seem to have missed the email.

5.1.4 README updates

5.1.4.1 Outline

This action is implemented in the refresh_readme.yml and ensures that the README.md displaying results on the landing page of the github project is updated every time new results are generated. The README is updated by recompiling the file README.Rmd.

5.1.4.2 Schedule

This action runs every time there is a push to the main branch resulting in a change of files, excluding:

  • README.md
  • run_synthesis.R
  • report_sources/elr_review.Rmd