Adjust icepack interface for E3SM #47
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: GHActions | |
# This workflow is triggered on pushes, pull-requeust, and releases | |
# ghactions* branch names will trigger this to support development testing | |
# To Do: get it working with bash and ubuntu | |
on: | |
push: | |
branches: | |
- master | |
- 'Icepack*' | |
- 'ghactions*' | |
pull_request: | |
release: | |
types: | |
- created | |
defaults: | |
run: | |
shell: /bin/csh -e {0} | |
jobs: | |
build: | |
name: "IcepackTesting" | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
# os: [macos-latest, ubuntu-latest] | |
os: [macos-latest] | |
# os: [ubuntu-latest] | |
include: | |
- os: macos-latest | |
envdef: macos | |
minicond: Miniconda3-latest-MacOSX-x86_64.sh | |
# - os: ubuntu-latest | |
# envdef: linux | |
# minicond: Miniconda3-latest-Linux-x86_64.sh | |
steps: | |
- name: reset macos toolchain to commandlinetools | |
shell: /bin/bash {0} | |
if: contains( matrix.envdef, 'macos') | |
run: | | |
sudo xcode-select -r | |
sudo xcode-select -s /Library/Developer/CommandLineTools | |
echo "xcrun --show-sdk-path: $(xcrun --show-sdk-path)" | |
echo "xcode-select -p: $(xcode-select -p)" | |
- name: system info | |
shell: /bin/bash {0} | |
run: | | |
type wget | |
type curl | |
type csh | |
echo "readlink \$(which csh): $(python -c 'import os, sys; print os.path.realpath(sys.argv[1])' $(which csh))" | |
echo "csh --version: $(csh --version)" | |
echo "uname -a: $(uname -a)" | |
echo "sw_vers: $(sw_vers)" | |
echo "HOME: $HOME" | |
echo "GITHUB_WORKSPACE: $GITHUB_WORKSPACE" | |
echo "OS: ${{ matrix.os }}" | |
echo "ENVDEF: ${{ matrix.envdef }}" | |
echo "MINICOND: ${{ matrix.minicond }}" | |
- name : install miniconda | |
shell: /bin/bash {0} | |
run: | | |
wget https://repo.anaconda.com/miniconda/${{ matrix.minicond }} -O ~/miniconda.sh | |
bash ~/miniconda.sh -b -p $HOME/miniconda | |
- name: clone | |
uses: actions/checkout@v2 | |
with: | |
submodules: 'recursive' | |
- name: link | |
run: | | |
ln -s ${GITHUB_WORKSPACE}/../Icepack ${HOME}/icepack | |
# ls -al ${HOME}/ | |
# ls -al ${GITHUB_WORKSPACE}/ | |
- name: check for tabs | |
run: | | |
cd $HOME/icepack | |
set cnt = 0 | |
set ffiles = `find -P columnphysics configuration/driver -iname "*.f*"` | |
set cfiles = `find -P columnphysics configuration/driver -iname "*.c*"` | |
foreach file ($ffiles $cfiles) | |
set fcnt = `sed -n '/\t/p' $file | wc -l` | |
@ cnt = $cnt + $fcnt | |
if ($fcnt > 0) then | |
echo "TAB found: $fcnt $file" | |
endif | |
end | |
exit $cnt | |
- name: setup conda env | |
shell: /bin/bash {0} | |
run: | | |
cd $HOME && mkdir -p icepack-dirs/runs icepack-dirs/baseline icepack-dirs/input | |
source $HOME/miniconda/bin/activate | |
conda init tcsh | |
cd $HOME/icepack | |
conda env create -f configuration/scripts/machines/environment.yml | |
- name: check conda env | |
run: | | |
conda activate icepack && which clang && which gfortran && which make | |
gfortran --version | |
clang --version | |
make --version | |
- name: check setup case | |
run: | | |
cd $HOME/icepack | |
./icepack.setup -m conda -e ${{ matrix.envdef }} -c case0 --pes 1x1 -s diag1 | |
- name: check setup test | |
run: | | |
cd $HOME/icepack | |
./icepack.setup -m conda -e ${{ matrix.envdef }} --test smoke --testid c0 | |
# - name: compile case | |
# run: | | |
# cd $HOME/icepack | |
# ./icepack.setup -m conda -e ${{ matrix.envdef }} -c case1 | |
# cd case1 | |
# ./icepack.build | |
- name: download input data | |
run: | | |
cd $HOME/icepack-dirs/input | |
wget --progress=dot:giga https://zenodo.org/record/3728287/files/Icepack_data-20200326.tar.gz && tar xvfz ICEPACK_data-20200326.tar.gz | |
pwd | |
ls -alR | |
# - name: run case | |
# run: | | |
# cd $HOME/icepack | |
# cd case1 | |
# ./icepack.run | |
- name: run suite | |
run: | | |
cd $HOME/icepack | |
./icepack.setup -m conda -e ${{ matrix.envdef }} --suite travis_suite,io_suite --testid ${{ matrix.os }} | |
- name: write output | |
run: | | |
cd $HOME/icepack | |
./.github/workflows/write_logfiles.csh | |
cd testsuite.${{ matrix.os }} | |
./results.csh | |
- name: successful run | |
if: ${{ success() }} | |
run: | | |
echo "${{ job.name }} PASSED" | |
- name: trap failure | |
if: ${{ failure() }} | |
run: | | |
echo "${{ job.name }} FAILED" | |
exit 99 |