GitHub actions workflows.
diff --git a/.github/workflows/darwin.yml b/.github/workflows/darwin.yml
new file mode 100644
index 0000000..dd578d8
--- /dev/null
+++ b/.github/workflows/darwin.yml
@@ -0,0 +1,22 @@
+name: darwin
+on: [push, pull_request]
+jobs:
+
+ build:
+ name: build
+ runs-on: [ macos-latest ]
+ steps:
+ - name: Check out code
+ uses: actions/checkout@v1
+
+ - name: Install ninja
+ run: brew install ninja
+
+ - name: Configure
+ run: mkdir build && cd build && cmake -G Ninja ..
+
+ - name: build
+ run: cd build && ninja
+
+ - name: Test
+ run: cd build && ctest --output-on-failure
\ No newline at end of file
diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml
new file mode 100644
index 0000000..6a29748
--- /dev/null
+++ b/.github/workflows/linux.yml
@@ -0,0 +1,22 @@
+name: linux
+on: [push, pull_request]
+jobs:
+
+ build:
+ name: build
+ runs-on: [ ubuntu-latest ]
+ steps:
+ - name: Check out code
+ uses: actions/checkout@v1
+
+ - name: Install ninja
+ run: sudo apt-get install ninja-build
+
+ - name: Configure
+ run: mkdir build && cd build && cmake -G Ninja -D NNG_ENABLE_TLS=ON ..
+
+ - name: Build
+ run: cd build && ninja
+
+ - name: Test
+ run: cd build && ctest --output-on-failure
diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml
new file mode 100644
index 0000000..1badf1d
--- /dev/null
+++ b/.github/workflows/windows.yml
@@ -0,0 +1,22 @@
+name: windows
+on: [push, pull_request]
+jobs:
+
+ build:
+ name: build
+ runs-on: [ windows-latest ]
+ steps:
+ - name: Check out code
+ uses: actions/checkout@v1
+
+ - name: Configure
+ run: cmake -B build
+
+ - name: Build
+ run: cmake --build build
+
+ - name: Test
+ run: |
+ cd build
+ ctest -C Debug --output-on-failure
+