diff options
-rw-r--r-- | .github/workflows/build.yml | 105 | ||||
-rw-r--r-- | .travis.yml | 45 | ||||
-rw-r--r-- | README.md | 4 |
3 files changed, 107 insertions, 47 deletions
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..10e0430 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,105 @@ +# Continuous integration and pull request validation builds +name: CI builds +on: + push: + branches: [ master, actions_ci ] + pull_request: + branches: [ master, actions_ci ] + +jobs: + job: + name: ${{ matrix.name }}-build + runs-on: ${{ matrix.os }} + env: ${{ matrix.env }} + + strategy: + fail-fast: false + matrix: + name: [macos-clang, ubuntu-20.04-clang, ubuntu-18.04-g++, ubuntu-20.04-g++] + qt_ver: [5.12.0, 5.15.1] + include: + - name: macos-clang + os: macos-latest + env: + CXX: clang++ + CC: clang + - name: ubuntu-20.04-clang + os: ubuntu-20.04 + env: + CXX: clang++ + CC: clang + - name: ubuntu-18.04-g++ + os: ubuntu-18.04 + env: + CXX: g++ + CC: gcc + - name: ubuntu-20.04-g++ + os: ubuntu-20.04 + env: + CXX: g++ + CC: gcc + - name: windows-x64-vs19-qt-5.15.1 + qt_ver: 5.15.1 + os: windows-latest + msvc_arch: x64 + qt_arch: win64_msvc2019_64 + env: + CXX: cl + C: cl + - name: windows-x64-vs19-qt-5.12.0 + qt_ver: 5.12.0 + os: windows-latest + msvc_arch: x64 + qt_arch: win64_msvc2017_64 + env: + CXX: cl + C: cl + - name: windows-x86-vs19-qt-5.15.1 + qt_ver: 5.15.1 + os: windows-latest + msvc_arch: x86 + qt_arch: win32_msvc2019 + env: + CXX: cl + C: cl + - name: windows-x86-vs19-qt-5.12.0 + qt_ver: 5.12.0 + os: windows-latest + msvc_arch: x86 + qt_arch: win32_msvc2017 + env: + CXX: cl + C: cl + + steps: + - name: Check out sources + uses: actions/checkout@v2 + + - name: Get latest CMake and ninja + uses: lukka/get-cmake@latest + + - name: Cache Qt + id: cache-qt + uses: actions/cache@v2 + with: + path: ../Qt + key: ${{ runner.os }}-${{ matrix.qt_ver }}-${{ matrix.qt_arch }}-Qt-cache + + - name: Install Qt + uses: jurplel/install-qt-action@v2 + with: + version: ${{ matrix.qt_ver }} + arch: ${{ matrix.qt_arch }} + cached: ${{ steps.cache-qt.outputs.cache-hit }} + + - name: Add MSVC to path + uses: ilammy/msvc-dev-cmd@v1 + with: + arch: ${{ matrix.msvc_arch }} + + - name: Generate and build + run: | + mkdir build + cd build + cmake -G Ninja ../quacker + ninja -v diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 133e57b..0000000 --- a/.travis.yml +++ /dev/null @@ -1,45 +0,0 @@ -language: cpp -dist: xenial - -matrix: - include: - - os: linux - compiler: gcc - - - os: linux - compiler: clang - - - os: osx - -addons: - homebrew: - packages: - - qt - update: true - -before_install: - -install: - - export QT_SELECT=5 - - if [ $TRAVIS_OS_NAME = linux ]; then sudo apt-get install -y qtbase5-dev; fi - - if [ $TRAVIS_OS_NAME = osx ]; then brew link --force qt; fi - - qmake -v - -script: - - qmake -r "QMAKE_CXX=$CXX" "QMAKE_CC=$CC" && make -j 2 - - cd quackleio && qmake -r "QMAKE_CXX=$CXX" "QMAKE_CC=$CC" && make -j 2 - - cd .. - - cd quacker && qmake -r "QMAKE_CXX=$CXX" "QMAKE_CC=$CC" && make -j 2 - - cd .. - - cd encodeleaves && qmake -r "QMAKE_CXX=$CXX" "QMAKE_CC=$CC" && make -j 2 - - cd .. - - cd gaddagize && qmake -r "QMAKE_CXX=$CXX" "QMAKE_CC=$CC" && make -j 2 - - cd .. - - cd makegaddag && qmake -r "QMAKE_CXX=$CXX" "QMAKE_CC=$CC" && make -j 2 - - cd .. - - cd makeminidawg && qmake -r "QMAKE_CXX=$CXX" "QMAKE_CC=$CC" && make -j 2 - - cd .. - - cd quackleio/iotest && qmake -r "QMAKE_CXX=$CXX" "QMAKE_CC=$CC" && make -j 2 - - cd ../.. - - cd test && qmake -r "QMAKE_CXX=$CXX" "QMAKE_CC=$CC" && make -j 2 - - cd .. @@ -1,8 +1,8 @@ Quackle  ======= -[](http://travis-ci.org/quackle/quackle) [](https://ci.appveyor.com/project/jfultz/quackle/branch/master) +[](https://github.com/quackle/quackle/actions?query=workflow%3A%22CI+Builds%22+event%3Apush) Crossword game artificial intelligence and analysis tool. @@ -10,7 +10,7 @@ See LICENSE in this directory. Building Quackle: ----------------- -Quackle is built and tested with the latest releases of Qt 5.12 and 5.13. +Quackle runs automated GitHub CI builds on Qt 5.12 and 5.15, so it should work with any Qt version in that range. See README.MacOS and README.Windows for platform-specific instructions. Generally: Clone the repo or download the tarball and untar. Use qmake to build quackle.pro and quackleio/quackleio.pro: |