Browse Source

Restructuring repo (#150)

* Restructured folders and env files and some docs in regards

* Additional refactoring to file names

* Github actions configured fully

* Corrected ubuntu vs win64 bug in CI

* Windows build fix

* Trying to fix Windows build tests

* Continue fixing windows build tests

* ANother fixing attempt on windows build tests

* Stil attempting to fix

* Another attempt to fix

* Little correction in config

* Still trying to get windows build tests done

* Maybe this time

* try a different windows build bat

* Another attempt

* Trying vs2015 installation

* again

* Gave up windows build tests

* Remove CircleCI config

* Corrected env namein docs

* Sorted env files alphabetically
main
Orhan Eroglu 4 years ago committed by GitHub
parent
commit
c6f4737d75
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 12
      .circleci/conda_env.yml
  2. 99
      .circleci/config.yml
  3. 56
      .github/workflows/ci.yml
  4. 21
      build_envs/Darwin.yml
  5. 21
      build_envs/Linux.yml
  6. 20
      build_envs/Win64.yml
  7. 8
      doc/source/contrib.rst
  8. 22
      testenv2.yml
  9. 22
      testenv3.yml

12
.circleci/conda_env.yml

@ -1,12 +0,0 @@ @@ -1,12 +0,0 @@
name: wrf-python
channels:
- conda-forge
dependencies:
- gcc_linux-64
- gfortran_linux-64
- setuptools
- python
- numpy
- wrapt
- xarray
- netcdf4

99
.circleci/config.yml

@ -1,99 +0,0 @@ @@ -1,99 +0,0 @@
# Python CircleCI 2.0 configuration file
#
# Check https://circleci.com/docs/2.0/language-python/ for more details
#
version: 2
jobs:
lint:
docker:
- image: circleci/python:3.6.1
working_directory: ~/repo
steps:
- checkout
- run:
name: install pycodestyle
command: |
sudo pip install pycodestyle
- run:
name: run pycodestyle
command: |
pycodestyle src test
build:
docker:
# specify the version you desire here
# use `-browsers` prefix for selenium tests, e.g. `3.6.1-browsers`
- image: circleci/python:3.6.1
# Specify service dependencies here if necessary
# CircleCI maintains a library of pre-built images
# documented at https://circleci.com/docs/2.0/circleci-images/
# - image: circleci/postgres:9.4
working_directory: ~/repo
steps:
- checkout
# Download and cache dependencies
- restore_cache:
keys:
- v1-dependencies-{{ checksum ".circleci/conda_env.yml" }}
- run:
name: install conda and dependencies
command: |
test -d ~/miniconda3 && exit 0
echo "Installing a fresh version of Miniconda."
MINICONDA_URL="https://repo.continuum.io/miniconda"
MINICONDA_FILE="Miniconda3-latest-Linux-x86_64.sh"
curl -L -O "${MINICONDA_URL}/${MINICONDA_FILE}"
bash $MINICONDA_FILE -b
source ~/miniconda3/bin/activate root
conda env create -f .circleci/conda_env.yml
- save_cache:
paths:
- ~/miniconda3
key: v1-dependencies-{{ checksum ".circleci/conda_env.yml" }}
- run:
name: build wrf-python
command: |
source ~/miniconda3/bin/activate wrf-python
unset FFLAGS
unset LDFLAGS
unset CFLAGS
cd fortran/build_help
$FC -o sizes -fopenmp omp_sizes.f90
LD_LIBRARY_PATH=~/miniconda3/envs/wrf-python/lib python sub_sizes.py
cd ..
$FC -E ompgen.F90 -fopenmp -cpp -o omp.f90
cd ..
python setup.py config_fc --f90flags="-mtune=generic -fopenmp" build_ext --libraries="gomp" build
python setup.py install --single-version-externally-managed --record=record.txt
# run tests!
# this example uses Django's built-in test-runner
# other common Python testing frameworks include pytest and nose
# https://pytest.org
# https://nose.readthedocs.io
- run:
name: run tests
command: |
source ~/miniconda3/bin/activate wrf-python
cd test/ci_tests
python utests.py
- store_artifacts:
path: test-reports
destination: test-reports
workflows:
version: 2
build_and_lint:
jobs:
- build
- lint

56
.github/workflows/ci.yml

@ -0,0 +1,56 @@ @@ -0,0 +1,56 @@
name: CI
on:
push:
pull_request:
workflow_dispatch:
# schedule:
# - cron: '0 0 * * *' # Daily “At 00:00”
jobs:
test:
# if: |
# github.repository == 'NCAR/wrf-python'
name: Python (${{ matrix.python-version }}, ${{ matrix.os }})
runs-on: ${{ matrix.os }}
defaults:
run:
shell: bash -l {0}
strategy:
fail-fast: false
matrix:
os: [ "ubuntu-latest", "macos-latest"]
python-version: [ "3.6", "3.7", "3.8", "3.9" ]
steps:
- name: Cancel previous runs
uses: styfle/cancel-workflow-action@0.9.0
with:
access_token: ${{ github.token }}
- name: Checkout
uses: actions/checkout@v2
with:
token: ${{ github.token }}
- name: Conda setup
uses: conda-incubator/setup-miniconda@v2
with:
activate-environment: wrf_python_build
python-version: ${{ matrix.python-version }}
channels: conda-forge, ncar
- name: Conda install (Darwin)
if: matrix.os == 'macos-latest'
run: |
conda env update --file build_envs/Darwin.yml --prune
- name: Conda install (Linux)
if: matrix.os == 'ubuntu-latest'
run: |
conda env update --file build_envs/Linux.yml --prune
- name: Build WRF-Python
run: |
cd build_scripts
./gnu_omp.sh
cd ..
- name: Run tests
run: |
cd test/ci_tests
python utests.py

21
osx.yml → build_envs/Darwin.yml

@ -1,20 +1,21 @@ @@ -1,20 +1,21 @@
# Create full conda environment for development, including some useful tools
name: develop
name: wrf_python_build
channels:
- conda-forge
dependencies:
- python=3
- wrapt
- numpy
- basemap
- cartopy
- clang_osx-64
- gfortran_osx-64
- jupyter
- matplotlib
- netcdf4
- xarray
- jupyter
- numpy
- pycodestyle
- setuptools
- sphinx
- sphinx_rtd_theme
- pycodestyle
- cartopy
- basemap
- clang_osx-64
- gfortran_osx-64
- wrapt
- xarray

21
linux.yml → build_envs/Linux.yml

@ -1,20 +1,21 @@ @@ -1,20 +1,21 @@
# Create full conda environment for development, including some useful tools
name: develop
name: wrf_python_build
channels:
- conda-forge
dependencies:
- python=3
- wrapt
- numpy
- basemap
- cartopy
- gcc_linux-64
- gfortran_linux-64
- jupyter
- matplotlib
- netcdf4
- xarray
- jupyter
- numpy
- pycodestyle
- setuptools
- sphinx
- sphinx_rtd_theme
- pycodestyle
- cartopy
- basemap
- gcc_linux-64
- gfortran_linux-64
- wrapt
- xarray

20
win64.yml → build_envs/Win64.yml

@ -1,19 +1,21 @@ @@ -1,19 +1,21 @@
# Create full conda environment for development, including some useful tools
name: develop
name: wrf_python_build
channels:
- conda-forge
- msys2
dependencies:
- python=3
- wrapt
- numpy
- basemap
- cartopy
- jupyter
- m2w64-toolchain
- matplotlib
- netcdf4
- xarray
- jupyter
- numpy
- pycodestyle
- setuptools
- sphinx
- sphinx_rtd_theme
- pycodestyle
- cartopy
- basemap
- m2w64-toolchain
- wrapt
- xarray

8
doc/source/contrib.rst

@ -301,19 +301,19 @@ contributing is: @@ -301,19 +301,19 @@ contributing is:
.. code::
conda env create -f osx.yml
conda env create -f build_envs/Darwin.yml
Linux:
.. code::
conda env create -f linux.yml
conda env create -f build_envs/Linux.yml
Win64:
.. code::
conda env create -f win64.yml
conda env create -f build_envs/Win64.yml
Note: For Win64, you will also need VS2015 installed on your system.
@ -321,7 +321,7 @@ contributing is: @@ -321,7 +321,7 @@ contributing is:
.. code::
conda activate develop
conda activate wrf_python_build
- CD to the build_scripts directory.

22
testenv2.yml

@ -1,22 +0,0 @@ @@ -1,22 +0,0 @@
# Create full conda environment for development, including some useful tools
name: testenv2
channels:
- conda-forge
dependencies:
- python=2
- wrapt
- numpy
- matplotlib
- netcdf4
- xarray
- jupyter
- sphinx
- sphinx_rtd_theme
- pycodestyle
- cartopy
- basemap
- clang_osx-64
- gfortran_osx-64
- pynio
- ncl

22
testenv3.yml

@ -1,22 +0,0 @@ @@ -1,22 +0,0 @@
# Create full conda environment for development, including some useful tools
name: testenv3
channels:
- conda-forge
dependencies:
- python=3
- wrapt
- numpy
- matplotlib
- netcdf4
- xarray
- jupyter
- sphinx
- sphinx_rtd_theme
- pycodestyle
- cartopy
- basemap
- clang_osx-64
- gfortran_osx-64
- pynio
- ncl
Loading…
Cancel
Save