diff --git a/.github/renovate.json b/.github/renovate.json
new file mode 100644
index 0000000..55ecf43
--- /dev/null
+++ b/.github/renovate.json
@@ -0,0 +1,11 @@
+{
+  "extends": [
+    "config:base"
+  ],
+  "packageRules": [
+    {
+      "matchUpdateTypes": ["minor", "patch", "pin", "digest"],
+      "automerge": true
+    }
+  ]
+}
diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml
new file mode 100644
index 0000000..236acaa
--- /dev/null
+++ b/.github/workflows/go.yml
@@ -0,0 +1,63 @@
+name: Go
+
+on:
+  push:
+    branches:
+      - master
+      - develop
+  pull_request:
+    branches:
+      - master
+      - develop
+
+jobs:
+  lint:
+    name: Linter
+    runs-on: ubuntu-latest
+    steps:
+    - name: Check out code into the Go module directory
+      uses: actions/checkout@v2
+
+    - uses: actions/setup-go@v2
+      with:
+        go-version: '^1.15'
+
+    - name: Run golangci-lint
+      uses: golangci/golangci-lint-action@v2
+      with:
+        version: v1.29
+        only-new-issues: true
+        args: -c ./.golangci.yml
+        skip-go-installation: true
+
+    - name: Get dependencies
+      run: go mod download
+
+    - name: Run go vet
+      run: go vet ./...
+
+    - name: Install golint
+      run: bash -c "GOBIN=$(pwd) go get -u golang.org/x/lint/golint"
+
+    - name: Run golint
+      run: ./golint -set_exit_status -min_confidence 1.0 ./...
+   
+    - name: Run gofmt
+      run: bash -c "test -z $(gofmt -s -l .)"
+
+  test:
+    name: Test
+    runs-on: ubuntu-latest
+    steps:
+    - name: Check out code into the Go module directory
+      uses: actions/checkout@v2
+
+    - uses: actions/setup-go@v2
+      with:
+        go-version: '^1.15'
+
+    - name: Get dependencies
+      run: go mod download
+
+    - name: Test
+      run: ./test --test-only