Skip to content

3388 update the beta limit section of the docs to be up to date and include all models #2627

3388 update the beta limit section of the docs to be up to date and include all models

3388 update the beta limit section of the docs to be up to date and include all models #2627

Workflow file for this run

---
name: PROCESS main/develop testing
on:
pull_request:
push:
permissions:
contents: read
pages: write
id-token: write
jobs:
make:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: '3.10'
- name: Build PROCESS
run: |
git config --global --add safe.directory '*'
cmake -S. -Bbuild
cmake --build build
- name: Archive build artifacts in process
uses: actions/upload-artifact@v3
with:
name: process-build-artifacts
path: |
process/**/*.so
process/io/python_fortran_dicts.json
- name: Archive ford artifacts
uses: actions/upload-artifact@v3
with:
name: ford-artifact
path: build/ford_project.pickle
unit-test:
runs-on: ubuntu-latest
needs: make
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: '3.10'
- name: Download build artifacts
uses: actions/download-artifact@v3
with:
name: process-build-artifacts
path: process/
- name: Install PROCESS
# Editable install to match default install
run: |
pip install -e '.[test, examples]'
pip install -r requirements_dev.txt
- name: Run unit tests
run: |
pytest --cov=process tests/unit -v \
--cov-report xml
- name: Archive unit test coverage data
uses: actions/upload-artifact@v3
with:
name: unit-coverage-artifacts
path: .coverage
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v4
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
with:
fail_ci_if_error: ${{ github.ref_name == 'main' }}
integration-test:
runs-on: ubuntu-latest
needs: make
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: '3.10'
- name: Download build artifacts
uses: actions/download-artifact@v3
with:
name: process-build-artifacts
path: process/
- name: Install PROCESS
# Editable install to match default install
run: |
pip install -e '.[test, examples]'
pip install -r requirements_dev.txt
- name: Install poppler
run: |
sudo apt update
sudo apt install poppler-utils
- name: Run integration tests
run: pytest tests/integration -n auto -v
regression-test:
runs-on: ubuntu-latest
needs: [make, tracking]
# depend on make and tracking job, check make job was successful
# but dont skip if tracking was skipped
if: always() && needs.make.result == 'success'
continue-on-error: true
strategy:
matrix:
tolerance: [0, 5]
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- uses: actions/setup-python@v4
with:
python-version: '3.10'
- name: Download build artifacts
uses: actions/download-artifact@v3
with:
name: process-build-artifacts
path: process/
- name: Install PROCESS
# Editable install to match default install
run: |
pip install -e '.[test, examples]'
pip install -r requirements_dev.txt
- name: Allow git commands to be run
run: git config --global --add safe.directory '*'
- name: Run regression tests
run: pytest tests/regression -sv --reg-tolerance=${{ matrix.tolerance }}
run-tracking-inputs:
runs-on: ubuntu-latest
needs: make
if: github.ref == 'refs/heads/main'
steps:
- uses: actions/checkout@v3
- name: Download build artifacts
uses: actions/download-artifact@v3
with:
name: process-build-artifacts
path: process/
- name: Install PROCESS
run: pip install -e .
- name: Install dev dependencies
run: pip install -r requirements_dev.txt
- name: Run regression input files
run: python tracking/run_tracking_inputs.py run tests/regression/input_files
- name: Archive tracked MFILEs
uses: actions/upload-artifact@v3
with:
name: tracked-mfiles
path: tracking/*_MFILE.DAT
pre-commit-quality-check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: '3.10'
- name: Install dev dependencies
run: pip install -r requirements_dev.txt
- name: Run pre-commit
run: pre-commit run --all-files
tracking:
concurrency:
group: tracking-jobs
cancel-in-progress: false
runs-on: ubuntu-latest
needs: run-tracking-inputs
if: github.ref == 'refs/heads/main'
env:
COMMIT_MESSAGE: ${{ github.event.head_commit.message }}
steps:
- uses: actions/checkout@v3
- name: Download build artifacts
uses: actions/download-artifact@v3
with:
name: process-build-artifacts
path: process/
- name: Install PROCESS
run: pip install -e .
- name: Install dev dependencies
run: pip install -r requirements_dev.txt
- name: Setup SSH identity
uses: webfactory/[email protected]
with:
ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }}
- name: Download tracking data
run: git clone [email protected]:timothy-nunn/process-tracking-data.git process-tracking-data
- name: Download large tokamak MFILE
uses: actions/download-artifact@v3
with:
name: tracked-mfiles
path: tracking/
- name: Create new tracking entries
shell: bash
run: |
MSG=$(printf "%q " $COMMIT_MESSAGE)
git config --global --add safe.directory '*'
python tracking/run_tracking_inputs.py track process-tracking-data "${MSG}" ${{ github.sha }}
- name: Create the tracking dashboard
run: python tracking/tracking_data.py plot process-tracking-data --out tracking.html
- name: Archive tracking dashboard
uses: actions/upload-artifact@v3
with:
name: tracking-html
path: tracking.html
- name: Setup Git identity
run: |
git config --global user.email "${{ github.triggering_actor }}@github.runner"
git config --global user.name "${{ github.job }}"
- name: Commit and push tracking data
run: |
cd process-tracking-data
git add .
git commit -m "${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}"
git push
docs:
concurrency:
group: docs-jobs
cancel-in-progress: false
runs-on: ubuntu-latest
needs: tracking
if: github.ref == 'refs/heads/main'
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Download build artifacts
uses: actions/download-artifact@v3
with:
name: process-build-artifacts
path: process/
- name: Install PROCESS
run: pip install -e .
- name: Install dev dependencies
run: pip install -r requirements_dev.txt
- name: Install ford
run: pip install git+https://github.com/jonmaddock/ford
- run: ford documentation/ford/index.md
- name: Download ford project
uses: actions/download-artifact@v3
with:
name: ford-artifact
path: build/
- run: python scripts/document_fortran_interface.py
- run: python scripts/vardes.py
- run: git config --global --add safe.directory '*'
- run: mkdocs build
- run: mv ford_site site
- name: Download tracking html
uses: actions/download-artifact@v3
with:
name: tracking-html
- run: mv tracking.html site || cp site/404.html site/tracking.html
- name: Upload documentation page
uses: actions/upload-pages-artifact@v1
with:
path: site/
- name: Deploy GitHub pages
id: deployment
uses: actions/deploy-pages@v2