Skip to content

Commit

Permalink
Reorganize (#67)
Browse files Browse the repository at this point in the history
* add musica c test

* add temp directory for the review

* make musica fortran shared lib

* musica fortran working version for the intel compilers

* clean up musica

* clean up musica-fortran

* reorganizing the cmake files, using MUSICA prefix

* renaming directory

* investingating cross-compiler library usage

* things build and link, but segfault happens

* trying a different interface

* sigh...

* c null char

* intent

* intent

* printing things

* calling the constructor...

* differnt constructor

* syntax

* removing prints

* comment out prints

* trying raw pointer

* uhhhh....

* return type

* trying to make the interface smaller

* fixing type

* adding pointer

* correcting thing

* wish I could read

* removing import

* yes, i do

* commenting out print

* pass by value

* thing

* removing value

* uncommenting thing

* trying a thing

* adding it back

* adding invalid

* new interface

* adding failure test

* trying to fix paths

* more paths

* thing

* reordering includes, giving up on trying to remove installed directories

* updating tuv branch

* going back to that version

* smaller interface

* getting the test to work

* moving fortran things to the fortran side

* removing musica_core, updating tuvx branch

* removing old tuvx git stuff

* what is happening

* including tuvx that can be built with gcc 13

* different actions

* more actions

* not looking for fortran stuff when we don't need it

* installing dependencies

* removing unused dependency

* trying to set compiler

* wait maybe it was right

* fix clang linking bad c++ version

* trying to add multiple clang versions on ubuntu

* removing duplicate build

* removing unused header

* correcting build

* seeing if 13 and 14 work

* not specifying clang version

* adding readme ci badges

* updating doi badge

* only installing micm_core.F90

* removing json fortran deps

* better openmp find interface

* huh, another seg fault

* trying a thing

* undoing one thing, keeping a thing

* okay so it needs it

* trying different standard library

* that didn't work

* adding gcc test to github

* commenting out writes

* pointer assignment

* yeah, pointer assignment

* removing reference to json fortran in module

* adding module message

* adding fortran install instructions

* some changes

* verbose

* actual verbose

* something different

* trying to remove a thing

* trying different ubuntu version

* trying a different thing

* maybe here

* maybe this

* trying a different interface

* trying to pass the pointer by value

* passing by value

* catching a bad allocation

* comments

* updating install stuff

* windows builds?

* adding c compiler for clang

* adding nvhpc dockerfile

* Update src/component_versions.c

Co-authored-by: Matt Dawson <[email protected]>

* including memcheck build

* removing gfortran dependencies for builds that don't need them

---------

Co-authored-by: Jiwon Gim <[email protected]>
Co-authored-by: Matt Dawson <[email protected]>
  • Loading branch information
3 people authored Mar 14, 2024
1 parent 8ab0aa0 commit 66176ba
Show file tree
Hide file tree
Showing 73 changed files with 1,339 additions and 1,159 deletions.
14 changes: 7 additions & 7 deletions .dockerignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@
*

# add things to copy
!.git/
!.gitmodules
!CMakeLists.txt
!musica/
!musica-fortran/
!docs/
!cmake/
!configs
!docs/
!fortran/
!include/
!lib/
!src/
!test/
!.gitmodules
!.git/
!src/
56 changes: 56 additions & 0 deletions .github/workflows/docker.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
name: Docker

on: [push, pull_request]

concurrency:
group: ${{ github.workflow }}-${{ github.ref || github.run_id }}
cancel-in-progress: true

jobs:
docker-build-and-test:
if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name
name: Build and Test - ${{ matrix.dockerfile }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
dockerfile:
- Dockerfile
- Dockerfile.memcheck
- Dockerfile.fortran-intel
- Dockerfile.fortran-gcc
- Dockerfile.fortran-nvhpc
- Dockerfile.openmp
- Dockerfile.mpi
- Dockerfile.mpi_openmp
steps:
- name: Checkout code
uses: actions/checkout@v3
with:
submodules: recursive

- name: Delete huge unnecessary tools folder
run: rm -rf /opt/hostedtoolcache

- name: Build Docker image
run: docker build -t tuvx -f docker/${{ matrix.dockerfile }} .

- name: Run tests in container
if: matrix.dockerfile != 'Dockerfile.coverage'
run: docker run --name test-container -t tuvx bash -c 'make test ARGS="--rerun-failed --output-on-failure -j8"'

- name: Run coverage tests in container
if: matrix.dockerfile == 'Dockerfile.coverage'
run: docker run --name test-container -t tuvx bash -c 'make coverage ARGS="--rerun-failed --output-on-failure -j8"'

- name: Copy coverage from container
if: matrix.dockerfile == 'Dockerfile.coverage'
run: docker cp test-container:build/coverage.info .

- name: Upload coverage report
if: matrix.dockerfile == 'Dockerfile.coverage'
uses: codecov/codecov-action@v3
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: coverage.info
63 changes: 63 additions & 0 deletions .github/workflows/mac.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
name: Mac

on: [push, pull_request]

concurrency:
group: ${{ github.workflow }}-${{ github.ref || github.run_id }}
cancel-in-progress: true

jobs:
c_cxx:
if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name
runs-on: macos-latest
strategy:
matrix:
compiler:
- { cpp: g++-11, c: gcc-11}
- { cpp: g++-12, c: gcc-12}
- { cpp: g++-13, c: gcc-13}
- { cpp: clang++, c: clang}
build_type: [Debug, Release]
env:
CC: ${{ matrix.compiler.c }}
CXX: ${{ matrix.compiler.cpp }}

steps:
- uses: actions/checkout@v3

- name: Run Cmake
run: cmake -S . -B build -D CMAKE_BUILD_TYPE=${{ matrix.build_type }}

- name: Build
run: cmake --build build --parallel 10

- name: Run tests
run: |
cd build
ctest -C ${{ matrix.build_type }} --rerun-failed --output-on-failure . --verbose -j 10
fortran:
if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name
runs-on: macos-latest
strategy:
matrix:
gcc_version: [11, 12, 13]
build_type: [Debug, Release]
env:
FC: gfortran-${{ matrix.gcc_version }}

steps:
- uses: actions/checkout@v3

- name: Install dependencies
run: brew install netcdf netcdf-fortran

- name: Run Cmake
run: cmake -S . -B build -D CMAKE_BUILD_TYPE=${{ matrix.build_type }} -D MUSICA_BUILD_FORTRAN_INTERFACE=ON

- name: Build
run: cmake --build build --parallel 10

- name: Run tests
run: |
cd build
ctest -C ${{ matrix.build_type }} --rerun-failed --output-on-failure . --verbose -j 10
88 changes: 0 additions & 88 deletions .github/workflows/test.yml

This file was deleted.

65 changes: 65 additions & 0 deletions .github/workflows/ubuntu.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
name: Ubuntu

on: [push, pull_request]

concurrency:
group: ${{ github.workflow }}-${{ github.ref || github.run_id }}
cancel-in-progress: true

jobs:
c_cxx:
if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name
runs-on: ubuntu-latest
strategy:
matrix:
compiler:
- { cpp: g++-11, c: gcc-11}
- { cpp: g++-12, c: gcc-12}
- { cpp: g++-13, c: gcc-13}
- { cpp: clang++, c: clang}
build_type: [Debug, Release]
env:
CC: ${{ matrix.compiler.c }}
CXX: ${{ matrix.compiler.cpp }}

steps:
- uses: actions/checkout@v3

- name: Run Cmake
run: cmake -S . -B build -D CMAKE_BUILD_TYPE=${{ matrix.build_type }}

- name: Build
run: cmake --build build --verbose

- name: Run tests
run: |
cd build
ctest -C ${{ matrix.build_type }} --rerun-failed --output-on-failure . --verbose -j 10
fortran:
if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name
runs-on: ubuntu-latest
strategy:
matrix:
gcc_version: [11, 12, 13]
build_type: [Debug, Release]
env:
FC: gfortran-${{ matrix.gcc_version }}

steps:
- uses: actions/checkout@v3

- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y libnetcdf-dev netcdf-bin libnetcdff-dev
- name: Run Cmake
run: cmake -S . -B build -D CMAKE_BUILD_TYPE=${{ matrix.build_type }} -D MUSICA_BUILD_FORTRAN_INTERFACE=ON

- name: Build
run: cmake --build build --parallel 10

- name: Run tests
run: |
cd build
ctest -C ${{ matrix.build_type }} --rerun-failed --output-on-failure . --verbose -j 10
Loading

0 comments on commit 66176ba

Please sign in to comment.