diff --git a/.github/workflows/perl.yml b/.github/workflows/perl.yml
new file mode 100644
index 0000000000000000000000000000000000000000..261b9e5584dfe53ba1c2ccefcd58127c31644524
--- /dev/null
+++ b/.github/workflows/perl.yml
@@ -0,0 +1,33 @@
+name: linux
+
+on:
+  push:
+    branches:
+      - '*'
+  pull_request:
+    branches:
+      - '*'
+
+jobs:
+  perl:
+
+    runs-on: ubuntu-latest
+
+    strategy:
+      matrix:
+        perl-version:
+          - '5.20'
+          - 'latest'
+          - 'threaded'
+
+    container:
+      image: perl:${{ matrix.perl-version }}
+
+    steps:
+      - uses: actions/checkout@v2
+      - name: perl -V
+        run: perl -V
+      - name: Install Dependencies
+        run: curl -sL https://git.io/cpm | perl - install -g --show-build-log-on-failure
+      - name: Run Tests
+        run: prove -l t
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index 0fcf3ca1813b66b32123494a42d2840ad9651f42..0000000000000000000000000000000000000000
--- a/.travis.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-language: perl
-perl:
-  - "5.28"
-  - "5.26"
-  - "5.24"
-  - "5.22"
diff --git a/cpanfile b/cpanfile
new file mode 100644
index 0000000000000000000000000000000000000000..edb0fec68e540e14d98932369fcf1e52c7246d08
--- /dev/null
+++ b/cpanfile
@@ -0,0 +1,14 @@
+requires 'Class::Accessor';
+requires 'Exception::Class';
+requires 'Getopt::Long';
+requires 'List::Util';
+requires 'LWP::UserAgent';
+requires 'XML::LibXML';
+
+on test => sub {
+	requires 'File::Slurp';
+	requires 'Test::Compile';
+	requires 'Test::Fatal';
+	requires 'Test::More';
+	requires 'Test::Pod';
+};