Skip to content

Added Unit Tests for CI Codes #76

Added Unit Tests for CI Codes

Added Unit Tests for CI Codes #76

Workflow file for this run

name: CI Unit Tests
on: [pull_request, workflow_dispatch]
jobs:
ci_pytest:
runs-on: ubuntu-latest
name: Run unit tests on CI system
permissions:
checks: write
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: 3.7.16
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y perl libxml-libxml-perl libxml-libxslt-perl libdatetime-perl
python -m pip install --upgrade pip
pip install pytest
pip install wxflow
- name: Cache Rocoto Install
uses: actions/cache@v4
with:
path: ~/rocoto
key: ${{ runner.os }}-rocoto-${{ hashFiles('**/ci-unit_tests.yaml') }}
- name: Install Rocoto
run: |
if [ ! -d "$HOME/rocoto/bin" ]; then
git clone https://github.com/christopherwharrop/rocoto.git $HOME/rocoto
cd $HOME/rocoto
./INSTALL
fi
echo "$HOME/rocoto/bin" >> $GITHUB_PATH
- name: Run tests
shell: bash
run: |
echo $SHELL
python --version
sudo mkdir -p /work/noaa
cd $GITHUB_WORKSPACE/sorc/wxflow
git submodule update --init
cd $GITHUB_WORKSPACE/sorc/gsi_utils.fd
git submodule update --init
cd $GITHUB_WORKSPACE/sorc
./link_workflow.sh
cd $GITHUB_WORKSPACE/ci/scripts/tests
ln -s $GITHUB_WORKSPACE/sorc/wxflow/src/wxflow .
pytest -v test_setup.py --junitxml $GITHUB_WORKSPACE/ci/scripts/tests/test-results.xml
ls $GITHUB_WORKSPACE/ci/scripts/tests/testdata/RUNDIR/EXPDIR/C48_ATM/config.base
grep EXPDIR $GITHUB_WORKSPACE/ci/scripts/tests/testdata/RUNDIR/EXPDIR/C48_ATM/config.base
python3 ${GITHUB_WORKSPACE}/workflow/setup_xml.py $GITHUB_WORKSPACE/ci/scripts/tests/testdata/RUNDIR/EXPDIR/C48_ATM
- name: Publish Test Results
if: always()
uses: EnricoMi/publish-unit-test-result-action@v2
with:
files: ci/scripts/tests/test-results.xml
job_summary: true
comment_mode: off