6. Continuous Integration
MET utilizes GitHub Actions to run processes automatically when changes are pushed to GitHub.
6.1. GitHub Actions Workflows
GitHub Actions runs workflows defined by files in the .github/workflows
directory of a GitHub repository. Workflows that are run by multiple METplus
components are documented in the METplus Contributor’s Guide.
These common workflows include:
Testing (testing.yml) to perform regression testing.
Documentation (documentation.yml) to check for problems building the documentation.
SonarQube (sonarqube.yml) to perform static code analysis.
Build Docker Image and Trigger METplus Workflow (build_docker_and_trigger_metplus.yml) to confirm that changes to METplus components do not break existing METplus use cases.
Release Checksum (release-checksum.yml) to create and attach checksum file assets to software releases.
Release Docker Images (release-docker-images.yml) to routinely recreate Docker images for recent software releases to minimize vulnerabilities.
Update Truth (update_truth.yml) to update the reference truth data used by the testing workflow.
6.1.1. Compilation Options (compilation_options.yml)
MET supports multiple compile-time options which are specified as arguments to the “configure” script. The Compilation Options workflow compiles MET multiple times to confirm that each configuration results in a successful build. These configurations include compiling MET with:
All options enabled
All options disabled
Each individual option enabled by itself
This workflow confirms that MET compiles successfully with a variety of configurations but does not run any unit tests or compare output against a truth dataset.