diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..566aff4 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,49 @@ +name: build + +on: [push, pull_request] + +jobs: + unix: + strategy: + matrix: + os: [ubuntu, macos] + compiler: [g++, clang++] + defines: [standard, PUGIXML_WCHAR_MODE, PUGIXML_COMPACT, PUGIXML_NO_EXCEPTIONS] + exclude: + - os: macos + compiler: g++ + name: ${{matrix.os}} + runs-on: ${{matrix.os}}-latest + steps: + - uses: actions/checkout@v1 + - name: make test + run: | + set CXX=${{matrix.compiler}} + set DEFINES=${{matrix.defines}} + make test cxxstd=c++11 defines=$DEFINES config=release -j2 + make test cxxstd=c++98 defines=$DEFINES config=debug -j2 + make test defines=$DEFINES config=sanitize -j2 + - name: make coverage + if: ${{matrix.os == 'ubuntu' && matrix.compiler == 'clang++'}} + run: | + set DEFINES=${{matrix.defines}} + make test defines=$DEFINES config=coverage -j2 + bash <(curl -s https://codecov.io/bash) -f pugixml.cpp.gcov -X search -t ${{secrets.CODECOV_TOKEN}} -B ${{github.ref}} + + windows: + runs-on: windows-latest + strategy: + matrix: + arch: [Win32, x64] + defines: [standard, PUGIXML_WCHAR_MODE, PUGIXML_COMPACT, PUGIXML_NO_EXCEPTIONS] + steps: + - uses: actions/checkout@v1 + - name: cmake configure + run: cmake . -DPUGIXML_BUILD_TESTS=ON -DPUGIXML_BUILD_DEFINES=${{matrix.defines}} -A ${{matrix.arch}} + - name: cmake test + shell: bash # necessary for fail-fast + run: | + cmake --build . -- -property:Configuration=Debug -verbosity:minimal + Debug/pugixml-check.exe + cmake --build . -- -property:Configuration=Release -verbosity:minimal + Release/pugixml-check.exe diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 01bd59f..0000000 --- a/.travis.yml +++ /dev/null @@ -1,27 +0,0 @@ -language: cpp -os: - - linux - - osx -compiler: - - clang - - gcc - -matrix: - exclude: - - os: osx - compiler: gcc - -env: - - DEFINES=standard - - DEFINES=PUGIXML_WCHAR_MODE - - DEFINES=PUGIXML_COMPACT - - DEFINES=PUGIXML_NO_EXCEPTIONS - -script: - - if [[ ! ( "$CXX" == "clang++" && "$TRAVIS_OS_NAME" == "linux" ) ]]; then make test cxxstd=c++11 defines=$DEFINES config=coverage -j2; fi - - if [[ "$CXX" == "clang++" ]]; then make test cxxstd=c++11 defines=$DEFINES config=sanitize -j2; fi - - make test cxxstd=c++11 defines=$DEFINES config=release -j2 - - make test cxxstd=c++98 defines=$DEFINES config=debug -j2 - -after_success: - - bash <(curl -s https://codecov.io/bash) -f pugixml.cpp.gcov