ci: add GitHub Actions
Change-Id: Idc715edf136550b088f89c19b581f5478b296653
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
new file mode 100644
index 0000000..e7188d2
--- /dev/null
+++ b/.github/workflows/ci.yml
@@ -0,0 +1,57 @@
+name: CI
+on:
+ push:
+ pull_request:
+ workflow_dispatch:
+
+jobs:
+ linux:
+ name: ${{ matrix.compiler }} on ${{ matrix.os }}
+ strategy:
+ fail-fast: false
+ matrix:
+ compiler: [g++-8, g++-9, g++-10, g++-11,
+ clang++-7, clang++-8, clang++-9, clang++-10, clang++-11, clang++-12]
+ os: [ubuntu-20.04]
+ include:
+ - compiler: g++-7
+ os: ubuntu-18.04
+ - compiler: clang++-5.0
+ os: ubuntu-18.04
+ - compiler: clang++-6.0
+ os: ubuntu-18.04
+ runs-on: ${{ matrix.os }}
+ env:
+ CXX: ${{ matrix.compiler }}
+ NODE_LABELS: Linux Ubuntu
+ WAF_JOBS: 2
+ steps:
+ - name: Install C++ compiler
+ run: |
+ sudo apt-get -qy install ${CXX/clang++/clang}
+ ${CXX} --version
+ - name: Checkout
+ uses: actions/checkout@v2
+ - name: Build and test
+ run: ./.jenkins
+
+ macos:
+ name: Xcode ${{ matrix.xcode }} on ${{ matrix.os }}
+ strategy:
+ fail-fast: false
+ matrix:
+ xcode: ['11.3', '11.7', '12.4']
+ os: [macos-10.15]
+ runs-on: ${{ matrix.os }}
+ env:
+ NODE_LABELS: OSX OSX-10.15
+ WAF_JOBS: 3
+ steps:
+ - name: Set up Xcode
+ uses: maxim-lobanov/setup-xcode@v1
+ with:
+ xcode-version: ${{ matrix.xcode }}
+ - name: Checkout
+ uses: actions/checkout@v2
+ - name: Build and test
+ run: ./.jenkins
diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml
new file mode 100644
index 0000000..1cc5381
--- /dev/null
+++ b/.github/workflows/docs.yml
@@ -0,0 +1,35 @@
+name: Docs
+on:
+ push:
+ pull_request:
+ workflow_dispatch:
+
+jobs:
+ build:
+ strategy:
+ fail-fast: false
+ matrix:
+ os: [macos-10.15, ubuntu-20.04]
+ runs-on: ${{ matrix.os }}
+ env:
+ JOB_NAME: Docs
+ WAF_JOBS: 3
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v2
+ with:
+ submodules: true
+ - name: Install dependencies
+ run: |
+ case ${RUNNER_OS} in
+ Linux) export NODE_LABELS="Linux Ubuntu Ubuntu-20.04" ;;
+ macOS) export NODE_LABELS="OSX OSX-10.15" ;;
+ esac
+ find .jenkins.d/ -type f -name '[1-9]*.sh' -exec chmod -x '{}' +
+ ./.jenkins
+ - name: Build documentation
+ run: |
+ ./waf --color=yes configure
+ ./waf --color=yes build --targets=version.hpp
+ ./waf --color=yes build --targets=manpages
+ ./waf --color=yes docs