Skip to content

Added Unit Tests for CI Codes #6

Added Unit Tests for CI Codes

Added Unit Tests for CI Codes #6

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.12.3
- 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 8.2.2
pip install wxflow 0.2.0
pip install wget
- 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: |
sudo mkdir -p /work/noaa
cd $GITHUB_WORKSPACE/sorc/wxflow
git submodule update --init
cd $GITHUB_WORKSPACE/sorc
./link_workflow.sh
cd $GITHUB_WORKSPACE/ci/scripts/tests
pytest -v --junitxml $GITHUB_WORKSPACE/ci/scripts/tests/test-results.xml
- 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