commit 7ad1125a9fe13363ca39721cb0957b8295922f26
Author: John MacFarlane <jgm@berkeley.edu>
Date:   Mon Jan 2 16:16:45 2023 -0800

    Add .github directory from jgm/djot.

diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml
new file mode 100644
index 0000000..726f8b0
--- /dev/null
+++ b/.github/FUNDING.yml
@@ -0,0 +1 @@
+github: [jgm]
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
new file mode 100644
index 0000000..ee65ed9
--- /dev/null
+++ b/.github/workflows/ci.yml
@@ -0,0 +1,77 @@
+name: CI tests
+
+on: [push, pull_request]
+
+jobs:
+  linux:
+
+    runs-on: ubuntu-latest
+    strategy:
+      fail-fast: false
+      matrix:
+        luaVersion:
+          - '5.1'
+          - '5.2'
+          - '5.3'
+          - '5.4'
+          - 'luajit'
+    steps:
+    - uses: actions/checkout@v1
+    - uses: leafo/gh-actions-lua@v9
+      with:
+        luaVersion: ${{ matrix.luaVersion }}
+    - uses: leafo/gh-actions-luarocks@v4
+    - uses: mymindstorm/setup-emsdk@v11
+    - uses: r-lib/actions/setup-pandoc@v1
+      with:
+        pandoc-version: '2.19.2'
+    - name: Install luaposix for fuzz test
+      run: |
+          luarocks install luaposix # for fuzz tests
+    - name: Build and test
+      run: |
+          make ci
+
+  windows:
+
+    runs-on: windows-2019
+    strategy:
+      fail-fast: false
+    steps:
+    - uses: actions/checkout@v1
+    - name: Install mingw
+      run: |
+          choco install mingw
+    - name: Build and test executable
+      run: |
+          cd clib
+          make
+    - name: Test lua script
+      run: |
+          ./clib/lua-src/lua test.lua
+
+  macos:
+
+    runs-on: macos-11
+    strategy:
+      fail-fast: false
+      matrix:
+        luaVersion:
+          - '5.4'
+          - 'luajit'
+    steps:
+    - uses: actions/checkout@v1
+    - uses: r-lib/actions/setup-pandoc@v1
+      with:
+        pandoc-version: '2.19.2'
+    - uses: leafo/gh-actions-lua@v9
+      with:
+        luaVersion: ${{ matrix.luaVersion }}
+    - uses: leafo/gh-actions-luarocks@v4
+    - uses: mymindstorm/setup-emsdk@v11
+    - name: Install luaposix for fuzz test
+      run: |
+          luarocks install luaposix # for fuzz tests
+    - name: Build and test
+      run: |
+          make ci
diff --git a/.github/workflows/full-coverage.yml b/.github/workflows/full-coverage.yml
new file mode 100644
index 0000000..a07e4bd
--- /dev/null
+++ b/.github/workflows/full-coverage.yml
@@ -0,0 +1,26 @@
+name: Full coverage tests
+
+on:
+  workflow_dispatch:
+  schedule:
+    - cron: '53 7 * * *'
+
+jobs:
+  linux:
+
+    runs-on: ubuntu-latest
+    strategy:
+      fail-fast: false
+      matrix:
+        luaVersion:
+          - '5.4'
+    steps:
+    - uses: actions/checkout@v1
+    - uses: leafo/gh-actions-lua@v9
+      with:
+        luaVersion: ${{ matrix.luaVersion }}
+    - uses: leafo/gh-actions-luarocks@v4
+    - name: Build and test
+      run: |
+          lua full-coverage.lua
+