diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..9462f90 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,52 @@ +name: build + +on: + push: + branches: + - 'master' + 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}} (${{matrix.compiler}}, ${{matrix.defines}}) + runs-on: ${{matrix.os}}-latest + steps: + - uses: actions/checkout@v1 + - name: make test + run: | + export CXX=${{matrix.compiler}} + make test cxxstd=c++11 defines=${{matrix.defines}} config=release -j2 + make test cxxstd=c++98 defines=${{matrix.defines}} config=debug -j2 + make test defines=${{matrix.defines}} config=sanitize -j2 + - name: make coverage + if: ${{!(matrix.os == 'ubuntu' && matrix.compiler == 'clang++')}} # linux/clang produces coverage info gcov can't parse + run: | + export CXX=${{matrix.compiler}} + make test defines=${{matrix.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 diff --git a/README.md b/README.md index 2982ec2..1d49def 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -pugixml [![Build Status](https://travis-ci.org/zeux/pugixml.svg?branch=master)](https://travis-ci.org/zeux/pugixml) [![Build status](https://ci.appveyor.com/api/projects/status/9hdks1doqvq8pwe7/branch/master?svg=true)](https://ci.appveyor.com/project/zeux/pugixml) [![codecov.io](https://codecov.io/github/zeux/pugixml/coverage.svg?branch=master)](https://codecov.io/github/zeux/pugixml?branch=master) ![MIT](https://img.shields.io/badge/license-MIT-blue.svg) +pugixml [![Actions Status](https://github.com/zeux/pugixml/workflows/build/badge.svg)](https://github.com/zeux/pugixml/actions) [![Build status](https://ci.appveyor.com/api/projects/status/9hdks1doqvq8pwe7/branch/master?svg=true)](https://ci.appveyor.com/project/zeux/pugixml) [![codecov.io](https://codecov.io/github/zeux/pugixml/coverage.svg?branch=master)](https://codecov.io/github/zeux/pugixml?branch=master) ![MIT](https://img.shields.io/badge/license-MIT-blue.svg) ======= pugixml is a C++ XML processing library, which consists of a DOM-like interface with rich traversal/modification