Add a GitHub actions CI workflow. (#389)

diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
new file mode 100644
index 0000000..3d5990a
--- /dev/null
+++ b/.github/workflows/ci.yml
@@ -0,0 +1,82 @@
+name: CI
+
+on:
+  push:
+    branches:
+      - main
+  pull_request:
+    branches:
+      - main
+
+jobs:
+  test:
+    strategy:
+      matrix:
+        python-version: [
+          "2.7",
+          "3.5",
+          "3.6",
+          "3.7",
+          "3.8",
+          "3.9",
+          "3.10",
+          "3.11",
+          "3.12",
+          "3.13",
+          "pypy-2.7",
+          "pypy-3.8",
+        ]
+        os: [ubuntu-latest, windows-latest, macos-latest]
+        exclude:
+          - python-version: "2.7"
+            os: "ubuntu-latest"
+          - python-version: "2.7"
+            os: "windows-latest"
+          - python-version: "2.7"
+            os: "macos-latest"
+          - python-version: "3.5"
+            os: "macos-latest"
+          - python-version: "3.6"
+            os: "macos-latest"
+          - python-version: "3.7"
+            os: "macos-latest"
+          - python-version: "3.5"
+            os: "ubuntu-latest"
+          - python-version: "3.6"
+            os: "ubuntu-latest"
+        include:
+          - python-version: "3.5"
+            os: "macos-12"
+          - python-version: "3.6"
+            os: "macos-12"
+          - python-version: "3.7"
+            os: "macos-12"
+          - python-version: "2.7"
+            os: "ubuntu-20.04"
+          - python-version: "3.5"
+            os: "ubuntu-20.04"
+          - python-version: "3.6"
+            os: "ubuntu-20.04"
+    runs-on: ${{ matrix.os }}
+    env:
+      TOXENV: py
+    steps:
+      - uses: actions/checkout@v3
+      - if: ${{ matrix.python-version == '2.7' }}
+        run: |
+          sudo apt-get install python-is-python2
+          curl -sSL https://bootstrap.pypa.io/pip/2.7/get-pip.py -o get-pip.py
+          python get-pip.py
+        name: Set up Python ${{ matrix.python-version }} on ${{ matrix.os }}
+      - if: ${{ matrix.python-version != '2.7' }}
+        name: Set up Python ${{ matrix.python-version }} on ${{ matrix.os }}
+        uses: actions/setup-python@v5
+        with:
+          python-version: ${{ matrix.python-version }}
+          allow-prereleases: true
+        env:
+          PIP_TRUSTED_HOST: ${{ contains(fromJson('["3.5"]'), matrix.python-version) && 'pypi.python.org pypi.org files.pythonhosted.org' || '' }}
+      - name: Install dependencies
+        run: python -m pip install -U tox
+      - name: Run tox
+        run: python -m tox
diff --git a/.github/workflows/empty b/.github/workflows/empty
deleted file mode 100644
index e69de29..0000000
--- a/.github/workflows/empty
+++ /dev/null