diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..d1d7785 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,137 @@ +name: CI + +on: + pull_request: + push: + branches: + - master + - develop + - feature/** + - pr/** + +jobs: + posix: + strategy: + fail-fast: false + matrix: + include: + - compiler: g++-7 + cxxstd: "17" + os: ubuntu-20.04 + install: g++-7 + - compiler: g++-8 + cxxstd: "17,2a" + os: ubuntu-20.04 + install: g++-8 + - compiler: g++-9 + cxxstd: "17,2a" + os: ubuntu-20.04 + - compiler: g++-10 + cxxstd: "17,2a" + os: ubuntu-20.04 + install: g++-10 + - compiler: g++-11 + cxxstd: "17,2a" + os: ubuntu-22.04 + install: g++-11 + - compiler: g++-12 + cxxstd: "17,20,2b" + os: ubuntu-22.04 + install: g++-12 + - compiler: g++-13 + cxxstd: "17,20,2b" + os: ubuntu-24.04 + install: g++-13 + - compiler: clang++-6.0 + cxxstd: "17" + os: ubuntu-18.04 + install: clang-6.0 + - compiler: clang++-7 + cxxstd: "17" + os: ubuntu-18.04 + install: clang-7 + - compiler: clang++-8 + cxxstd: "17" + os: ubuntu-20.04 + install: clang-8 + - compiler: clang++-9 + cxxstd: "17,2a" + os: ubuntu-20.04 + install: clang-9 + - compiler: clang++-10 + cxxstd: "17,2a" + os: ubuntu-20.04 + - compiler: clang++-11 + cxxstd: "17,2a" + os: ubuntu-20.04 + - compiler: clang++-12 + cxxstd: "17,2a" + os: ubuntu-20.04 + - compiler: clang++-13 + cxxstd: "17,20,2b" + os: ubuntu-22.04 + install: clang-13 + - compiler: clang++-14 + cxxstd: "17,20,2b" + os: ubuntu-22.04 + install: clang-14 + - compiler: clang++-15 + install: clang-15 + cxxstd: "17,20,2b" + os: ubuntu-22.04 + - compiler: clang++-16 + install: clang-16 + cxxstd: "17,20,2b" + os: ubuntu-24.04 + - compiler: clang++-17 + install: clang-17 + cxxstd: "17,20,2b" + os: ubuntu-24.04 + - compiler: clang++-18 + install: clang-18 + cxxstd: "17,20,2b" + os: ubuntu-24.04 +# macos + - compiler: clang++ + os: macos-12 + cxxstd: "17,20,2b" + - compiler: clang++ + os: macos-13 + cxxstd: "17,20,2b" + - compiler: clang++ + os: macos-14 + cxxstd: "17,20,2b" + + runs-on: ${{matrix.os}} + + steps: + - uses: actions/checkout@v3 + + - name: Install packages + if: matrix.install + run: sudo apt install ${{matrix.install}} + + - name: Build and Run tests + run: | + mkdir build + cd build + + standards=$(sed 's/,/ /g' <<<"${{matrix.cxxstd}}") + variants="Debug Release" + err=0 + for standard in ${standards} ; do + for variant in ${variants} ; do + if [[ err -ne 0 ]] ; then + echo "skipping: ${standard} ${variant}" + else + echo "running: ${standard} ${variant}" + cmake --fresh -DCMAKE_CXX_COMPILER=${{matrix.compiler}} -DCMAKE_CXX_STANDARD=${standard} -DCMAKE_BUILD_TYPE=${variant} .. + cmake --build . + cd test + ./driver + cd - + err=$? + fi + done + done + [[ $err -ne 0 ]] && false || "true" diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 0eee5d9..0000000 --- a/.travis.yml +++ /dev/null @@ -1,13 +0,0 @@ -language: cpp -dist: bionic -compiler: -- gcc -- clang -os: -- linux -- osx -script: -- mkdir build -- cd build -- cmake .. -- make \ No newline at end of file diff --git a/README.md b/README.md index afb57ca..0c1b53b 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,4 @@ -[![Build Status](https://travis-ci.com/ashtum/lazycsv.svg?branch=master)](https://travis-ci.com/ashtum/lazycsv) -[![Language grade: C/C++](https://img.shields.io/lgtm/grade/cpp/g/ashtum/lazycsv.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/ashtum/lazycsv/context:cpp) +[![CI](https://github.com/ashtum/lazycsv/actions/workflows/ci.yml/badge.svg)](https://github.com/ashtum/lazycsv/actions/workflows/ci.yml) ![lazycsv](img/logo.png)