NOAA-GFDL / SHiELD_build

Other
7 stars 21 forks source link

Add CI to repo #29

Open laurenchilutti opened 1 year ago

laurenchilutti commented 1 year ago

Description

Adding CI tests to this repo. This brings over a similar workflow as is done in the GFDL_atmos_cubed_sphere repository. Will build solo model (nh, sw, and hydro) and then run the 35 tests in RTS/CI.

GitHub recognizes yaml files stored in .github/workflows as GitHub Actions workflows: Intel_Parallelworks_CI.yaml specifies instructions for automated CI with every pull request. There are 4 steps to the CI: -checkout: Executes a script checkout.sh stored on Parallelworks cloud. This script will checkout the SHiELD_build directory (checks out the branch/commit of the PR that triggers the CI) and check out component codes. We only compile FMS when the CHECKOUT_code script specifies a new version of FMS. We store the latest version of FMS for use in compiling SHiELD on Parallelworks at /contrib/fv3/2023.2.0/SHiELD_build/externallibs.
-build: Executes the script compile.sh with various build configurations (a total of 36 combinations, of which any with sw + shield will be skipped). The script executes a compile command inside of the CI container on Parallelworks -test: Runs the script run_test.sh 35 times. Each time giving it an argument specifying which test to run. These tests run in parallel.

The scripts stored on parallelworks will be version controlled in this repository and are at .github/.parallelworks.

Fixes # (issue)

How Has This Been Tested?

Tested by the successful checks on this PR

Checklist:

Please check all whether they apply or not

laurenchilutti commented 6 months ago

I have one more update to make. I will send an email when I am ready for this to be reviewed for a final time.

laurenchilutti commented 6 months ago

@bensonr I can't see any reason why I had some as sh and some as bash. They should all be consistent now. I also modified the argument parsing to be cleaner.

This is now ready for review. Thanks!