From f2c00c40cbbb8686cc80eef59e49c3c438fed279 Mon Sep 17 00:00:00 2001 From: Kyle Shores Date: Wed, 10 Jan 2024 13:32:15 -0600 Subject: [PATCH] github actions, readme --- .github/workflows/mac.yml | 86 +++++++++++++++++++++++++++++++++++ .github/workflows/ubuntu.yml | 56 +++++++++++++++++++++++ .github/workflows/windows.yml | 31 +++++++++++++ README.md | 5 +- 4 files changed, 177 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/mac.yml create mode 100644 .github/workflows/ubuntu.yml create mode 100644 .github/workflows/windows.yml diff --git a/.github/workflows/mac.yml b/.github/workflows/mac.yml new file mode 100644 index 0000000..9e9bc0e --- /dev/null +++ b/.github/workflows/mac.yml @@ -0,0 +1,86 @@ +name: Mac + +on: [push, pull_request] + +concurrency: + group: ${{ github.workflow }}-${{ github.ref || github.run_id }} + cancel-in-progress: true + +jobs: + xcode_macos_12: + 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-12 + strategy: + matrix: + # all available versions of xcode: https://github.com/actions/runner-images/blob/main/images/macos/macos-12-Readme.md#xcode + xcode: ['13.1', '14.1'] + build_type: [Debug, Release] + env: + DEVELOPER_DIR: /Applications/Xcode_${{ matrix.xcode }}.app/Contents/Developer + + 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 + + xcode_macos_13: + 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-13 + strategy: + matrix: + # all available versions of xcode: https://github.com/actions/runner-images/blob/main/images/macos/macos-13-Readme.md#xcode + xcode: ['14.1', '15.0'] + build_type: [Debug, Release] + env: + DEVELOPER_DIR: /Applications/Xcode_${{ matrix.xcode }}.app/Contents/Developer + + 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 + + macos_lateset: + 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: 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 \ No newline at end of file diff --git a/.github/workflows/ubuntu.yml b/.github/workflows/ubuntu.yml new file mode 100644 index 0000000..64b8179 --- /dev/null +++ b/.github/workflows/ubuntu.yml @@ -0,0 +1,56 @@ +name: Ubuntu + +on: [push, pull_request] + +concurrency: + group: ${{ github.workflow }}-${{ github.ref || github.run_id }} + cancel-in-progress: true + +jobs: + gcc: + 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: + build_type: [Debug, Release] + env: + CC: gcc + CXX: g++ + steps: + - name: Checkout code + 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 + + clang: + 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: + build_type: [Debug, Release] + env: + CC: clang + CXX: clang++ + steps: + - name: Checkout code + 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 \ No newline at end of file diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml new file mode 100644 index 0000000..f5564e1 --- /dev/null +++ b/.github/workflows/windows.yml @@ -0,0 +1,31 @@ +name: Windows + +on: [push, pull_request] + +concurrency: + group: ${{ github.workflow }}-${{ github.ref || github.run_id }} + cancel-in-progress: true + +jobs: + msvc2022: + if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name + runs-on: windows-latest + strategy: + matrix: + build_type: [Release] + architecture: [Win32, x64] + + steps: + - uses: actions/checkout@v3 + - name: Run CMake + run: cmake -S . -B build -A ${{ matrix.architecture }} + if: matrix.build_type == 'Release' + - name: Run CMake + run: cmake -S . -B build -A ${{ matrix.architecture }} + if: matrix.build_type == 'Debug' + - name: Build + run: cmake --build build --config ${{ matrix.build_type }} --parallel 10 + - name: Run tests + run: | + cd build + ctest -C ${{ matrix.build_type }} --rerun-failed --output-on-failure . --verbose \ No newline at end of file diff --git a/README.md b/README.md index bb13199..1370104 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,10 @@ An attempt at defining a model-independent configuration schema for atmospheric [![GitHub Releases](https://img.shields.io/github/release/open-atmos/MechanismConfiguration.svg)](https://github.com/open-atmos/MechanismConfiguration/releases) [![License](https://img.shields.io/github/license/open-atmos/MechanismConfiguration.svg)](https://github.com/open-atmos/MechanismConfiguration/blob/master/LICENSE) -[![Builds](https://github.com/open-atmos/MechanismConfiguration/actions/workflows/gh-pages.yml/badge.svg)](https://github.com/open-atmos/MechanismConfiguration/actions/workflows/gh-pages.yml) +[![Docs build](https://github.com/open-atmos/MechanismConfiguration/actions/workflows/gh-pages.yml/badge.svg)](https://github.com/open-atmos/MechanismConfiguration/actions/workflows/gh-pages.yml) +[![Windows](https://github.com/open-atmos/MechanismConfiguration/actions/workflows/windows.yml/badge.svg)](https://github.com/open-atmos/MechanismConfiguration/actions/workflows/windows.yml) +[![Mac](https://github.com/open-atmos/MechanismConfiguration/actions/workflows/mac.yml/badge.svg)](https://github.com/open-atmos/MechanismConfiguration/actions/workflows/mac.yml) +[![Ubuntu](https://github.com/open-atmos/MechanismConfiguration/actions/workflows/ubuntu.yml/badge.svg)](https://github.com/open-atmos/MechanismConfiguration/actions/workflows/ubuntu.yml) Copyright (C) 2017–2023 Barcelona Supercomputing Center, University of Illinois at Urbana–Champaign, and National Center for Atmospheric Research