Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/develop' into feature/fire_blending
Browse files Browse the repository at this point in the history
  • Loading branch information
zmoon committed Jan 7, 2025
2 parents 46fdc0b + fececaf commit 93d26e5
Show file tree
Hide file tree
Showing 172 changed files with 3,422 additions and 2,636 deletions.
3 changes: 3 additions & 0 deletions .flake8
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[flake8]
exclude = .git,.github,venv,__pycache__,old,build,dist
max-line-length = 160
1 change: 1 addition & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -211,3 +211,4 @@ ush/python/pygfs/utils/marine_da_utils.py @guillaumevernieres @AndrewEichmann-NO

# Specific workflow scripts
workflow/generate_workflows.sh @DavidHuber-NOAA
workflow/build_compute.py @DavidHuber-NOAA @aerorahul
20 changes: 10 additions & 10 deletions .github/workflows/orion.yaml → .github/workflows/hercules.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Orion
name: Hercules

on:
pull_request_target:
Expand Down Expand Up @@ -26,7 +26,7 @@ jobs:
echo "labels=$LABELS" >> $GITHUB_OUTPUT
passed:
if: contains( needs.getlabels.outputs.labels, 'CI-Orion-Passed') && github.event.pull_request.merged
if: contains( needs.getlabels.outputs.labels, 'CI-Hercules-Passed') && github.event.pull_request.merged
runs-on: ubuntu-22.04
needs:
- getlabels
Expand All @@ -38,13 +38,13 @@ jobs:
forceUpdate: true
auth: ${{ secrets.CLI_DYNAMIC_BADGES }}
gistID: e35aa2904a54deae6bbb1fdc2d960c71
filename: orion.json
label: orion
filename: hercules.json
label: hercules
message: passing
color: green

failed:
if: contains( needs.getlabels.outputs.labels, 'CI-Orion-Failed') && github.event.pull_request.merged
if: contains( needs.getlabels.outputs.labels, 'CI-Hercules-Failed') && github.event.pull_request.merged
runs-on: ubuntu-latest
needs:
- getlabels
Expand All @@ -56,14 +56,14 @@ jobs:
forceUpdate: true
auth: ${{ secrets.CLI_DYNAMIC_BADGES }}
gistID: e35aa2904a54deae6bbb1fdc2d960c71
filename: orion.json
label: orion
filename: hercules.json
label: hercules
message: failing
color: red


pending:
if: "!contains( needs.getlabels.outputs.labels, 'CI-Orion-Passed') && !contains( needs.getlabels.outputs.labels, 'CI-Orion-Failed')"
if: "!contains( needs.getlabels.outputs.labels, 'CI-Hercules-Passed') && !contains( needs.getlabels.outputs.labels, 'CI-Hercules-Failed')"
runs-on: ubuntu-latest
needs:
- getlabels
Expand All @@ -75,7 +75,7 @@ jobs:
forceUpdate: true
auth: ${{ secrets.CLI_DYNAMIC_BADGES }}
gistID: e35aa2904a54deae6bbb1fdc2d960c71
filename: orion.json
label: orion
filename: hercules.json
label: hercules
message: pending
color: orange
81 changes: 81 additions & 0 deletions .github/workflows/wcoss2.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
name: WCOSS2

on:
pull_request_target:
branches:
- develop
types: [closed]

jobs:

getlabels:
runs-on: ubuntu-22.04
outputs:
labels: ${{ steps.id.outputs.labels }}
steps:
- name: Get Label Steps
id: id
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
OWNER: ${{ github.repository_owner }}
REPO_NAME: ${{ github.event.repository.name }}
PULL_REQUEST_NUMBER: ${{ github.event.pull_request.number }}
run: |
LABELS1="$(gh api repos/$OWNER/$REPO_NAME/pulls/$PULL_REQUEST_NUMBER --jq '.labels.[].name')"
LABELS=$(echo "$LABELS1" | tr '\n' ' ')
echo "labels=$LABELS" >> $GITHUB_OUTPUT
passed:
if: contains( needs.getlabels.outputs.labels, 'CI-Wcoss2-Passed') && github.event.pull_request.merged
runs-on: ubuntu-latest
needs:
- getlabels

steps:
- name: Passed
uses: schneegans/dynamic-badges-action@v1.6.0
with:
forceUpdate: true
auth: ${{ secrets.CLI_DYNAMIC_BADGES }}
gistID: e35aa2904a54deae6bbb1fdc2d960c71
filename: wcoss2.json
label: wcoss2
message: passing
color: green

failed:
if: contains( needs.getlabels.outputs.labels, 'CI-Wcoss2-Failed') && github.event.pull_request.merged
runs-on: ubuntu-latest
needs:
- getlabels

steps:
- name: Failed
uses: schneegans/dynamic-badges-action@v1.6.0
with:
forceUpdate: true
auth: ${{ secrets.CLI_DYNAMIC_BADGES }}
gistID: e35aa2904a54deae6bbb1fdc2d960c71
filename: wcoss2.json
label: wcoss2
message: failing
color: red


pending:
if: "!contains( needs.getlabels.outputs.labels, 'CI-Wcoss2-Passed') && !contains( needs.getlabels.outputs.labels, 'CI-Wcoss2-Failed')"
runs-on: ubuntu-latest
needs:
- getlabels

steps:
- name: Pending
uses: schneegans/dynamic-badges-action@v1.6.0
with:
forceUpdate: true
auth: ${{ secrets.CLI_DYNAMIC_BADGES }}
gistID: e35aa2904a54deae6bbb1fdc2d960c71
filename: wcoss2.json
label: wcoss2
message: pending
color: orange
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,9 @@ parm/wafs

# Ignore sorc and logs folders from externals
#--------------------------------------------
sorc/build.xml
sorc/build.db
sorc/build_lock.db
sorc/*log
sorc/logs
sorc/calc_analysis.fd
Expand Down
1 change: 0 additions & 1 deletion .gitmodules
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
[submodule "sorc/ufs_model.fd"]
path = sorc/ufs_model.fd
url = /~https://github.com/ufs-community/ufs-weather-model
ignore = dirty
[submodule "sorc/wxflow"]
path = sorc/wxflow
url = /~https://github.com/NOAA-EMC/wxflow
Expand Down
44 changes: 29 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,28 +3,42 @@
[![pynorms](/~https://github.com/NOAA-EMC/global-workflow/actions/workflows/pynorms.yaml/badge.svg)](/~https://github.com/NOAA-EMC/global-workflow/actions/workflows/pynorms.yaml)

![Custom badge](https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/emcbot/e35aa2904a54deae6bbb1fdc2d960c71/raw/hera.json)
![Custom badge](https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/emcbot/e35aa2904a54deae6bbb1fdc2d960c71/raw/orion.json)
![Custom badge](https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/emcbot/e35aa2904a54deae6bbb1fdc2d960c71/raw/hercules.json)
![Custom badge](https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/emcbot/e35aa2904a54deae6bbb1fdc2d960c71/raw/wcoss2.json)

# global-workflow
Global Workflow currently supporting the Global Forecast System (GFS) with the [UFS-weather-model](/~https://github.com/ufs-community/ufs-weather-model) and [GSI](/~https://github.com/NOAA-EMC/GSI)-based Data Assimilation System.
The Global Workflow supporting the Global Forecast System (GFS), the Global Ensemble Forecasting System (GEFS), and the Seasonal Forecast System (SFS) with the [UFS-weather-model](/~https://github.com/ufs-community/ufs-weather-model). Data assimilation, currently only available for the GFS, is provides by both the [GSI](/~https://github.com/NOAA-EMC/GSI)- and [GDASApp (JEDI)](/~https://github.com/NOAA-EMC/GDASApp)-based Data Assimilation systems.

The `global-workflow` depends on the following prerequisities to be available on the system:
In progress [documentation](https://global-workflow.readthedocs.io/en/latest/) is available.

* Workflow Engine - [Rocoto](/~https://github.com/christopherwharrop/rocoto) and [ecFlow](/~https://github.com/ecmwf/ecflow) (for NWS Operations)
* Compiler - Intel Compiler Suite
* Software - NCEPLIBS (various), ESMF, HDF5, NetCDF, and a host of other softwares (see module files under /modulefiles for additional details)
# Prerequisites

The `global-workflow` current supports the following tier-1 machines:
The Global Workflow depends on the following prerequisities to be available on the system:

* NOAA RDHPCS - Hera
* MSU HPC - Orion
* MSU HPC - Hercules
* NOAA's operational HPC - WCOSS2
* Workflow Engines - [Rocoto](/~https://github.com/christopherwharrop/rocoto) and [ecFlow](/~https://github.com/ecmwf/ecflow) (for NWS Operations)
* Compiler - Intel classic compiler suite version 2021.x
* Software - NCEPLIBS (various), ESMF, HDF5, NetCDF, and a host of other softwares (see module files under /modulefiles for additional details).
- [Spack-stack](/~https://github.com/JCSDA/spack-stack) is recommended for the installation of dependent libraries.

Additionally, the following tier-2 machine is supported:
* SSEC at Univ. of Wisconsin - S4 (Note that S2S+ experiments are not fully supported)
## Supported platforms

Documentation (in progress) is available [here](https://global-workflow.readthedocs.io/en/latest/).
The Global Workflow currently supports the following machines at the indicated tier.

| HPC | Tier | Notes |
| --------------------------------------- |:----:|:--------------------------------------------------------------------------:|
| WCOSS2<br>NCO | 1 | GEFS testing is not regularly performed. |
| Hera<br>NOAA RDHPCS | 1 | |
| Hercules<br>MSU | 1 | Currently does not support the TC Tracker. |
| Orion<br>MSU | 2 | The GSI runs very slowly on Orion and the TC tracker is not supported. |
| Gaea C5/C6<br>RDHPCS | 3 | Currently non-operational following an OS upgrade.<br>Supported by EPIC. |
| AWS, GCP, Azure <br>NOAA Parallel Works | 3 | Supported by EPIC. |
| Jet<br>RDHPCS | 3 | Supported by NESDIS. |
| S4<br>SSEC | 3 | Currently non-operational following an OS upgrade.<br>Supported by NESDIS. |

<ins>**Tier Definitions**</ins>

1. Fully supported by the EMC global workflow team. CI testing is regularly performed on these systems, the majority of the global workflow features are supported, and the team will address any platform-specific features, bugs, upgrades, and requests for data.
2. Supported by the global workflow team on an ad-hoc basis. CI tests are supported on these systems, but not regularly performed.
3. No official support by the global workflow team, but may be supported by other entities (e.g. EPIC).

# Disclaimer

Expand Down
Loading

0 comments on commit 93d26e5

Please sign in to comment.