diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml
new file mode 100644
index 0000000000000000000000000000000000000000..4620a6365e0d115d68ae63eeb1f0f7819247f81f
--- /dev/null
+++ b/.github/workflows/lint.yml
@@ -0,0 +1,30 @@
+name: Lint
+
+on:
+  push:
+    branches:
+      - master
+  pull_request:
+  workflow_dispatch: # allows to be run manually
+
+jobs:
+  lint:
+    runs-on: ubuntu-latest
+    strategy:
+      matrix:
+        python-version:
+          - 2.7
+          - 3.8
+          - 3.9
+          - 3.10
+          - 3.11
+    steps:
+      - uses: actions/checkout@v3
+      - name: Set up Python ${{ matrix.python-version }}
+        uses: actions/setup-python@v4
+        with:
+          python-version: ${{ matrix.python-version }}
+      - name: Install ansible-lint
+        run: pip install --user ansible-lint
+      - name: Run ansible-lint
+        run: ansible-lint -x ANSIBLE0010 -x 602 .
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index 2e5011c20375c84967b1c3a5af8bbad1637903bc..0000000000000000000000000000000000000000
--- a/.travis.yml
+++ /dev/null
@@ -1,7 +0,0 @@
----
-sudo: required
-language: python
-python: "2.7"
-install:
-  - pip install ansible-lint
-script: ansible-lint -x ANSIBLE0010 -x 602 .
diff --git a/README.rst b/README.rst
index e2b6cf97f62cea3604c11273980b09862a9c8c6f..921d0966a7f9b9f21ef18ea6c00bdd00bf886dec 100644
--- a/README.rst
+++ b/README.rst
@@ -1,8 +1,8 @@
 ansible-pretalx
 ===============
 
-.. image:: https://travis-ci.org/pretalx/ansible-pretalx.svg?branch=master
-   :target: https://travis-ci.org/pretalx/ansible-pretalx
+.. image:: https://github.com/pretalx/ansible-pretalx/actions/workflows/lint.yml/badge.svg
+   :target: https://github.com/pretalx/ansible-pretalx/actions/workflows/lint.yml
 
 `ansible-pretalx` is an ansible role to install pretalx_ in a production environment.