repo: setup CI testing, linting, dependabot
diff --git a/.github/dependabot.yaml b/.github/dependabot.yaml
new file mode 100644
index 0000000..b5501e3
--- /dev/null
+++ b/.github/dependabot.yaml
@@ -0,0 +1,9 @@
+version: 2
+updates:
+  - package-ecosystem: gomod
+    directory: "/"
+    schedule:
+      interval: "monthly"
+    labels:
+      - "dependencies"
+
diff --git a/.github/release.yaml b/.github/release.yaml
new file mode 100644
index 0000000..46cf869
--- /dev/null
+++ b/.github/release.yaml
@@ -0,0 +1,6 @@
+changelog:
+  categories:
+    - title: Changes
+      labels:
+        - "*"
+
diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml
new file mode 100644
index 0000000..91d5e55
--- /dev/null
+++ b/.github/workflows/ci.yaml
@@ -0,0 +1,32 @@
+name: Run CI Tests
+on: [push]
+jobs:
+  run-lint:
+    runs-on: [macos-latest]
+    steps:
+      - uses: actions/checkout@v3
+      - uses: hashicorp/setup-golang@v1
+        with:
+          version-file: go.mod
+      - name: GolangCI-Lint
+      - uses: golangci/golangci-lint-action@v3
+        with:
+          version: v1.50
+          skip-cache: true
+  run-tests:
+    strategy:
+      fail-fast: false
+      matrix:
+        os:
+          - macos-13
+          - macos-12
+    runs-on: ${{matrix.os}}
+    steps:
+      - uses: actions/checkout@v3
+      - uses: hashicorp/setup-golang@v1
+        with:
+          version-file: go.mod
+      - name: Run Go Test
+        run: |
+          make vet
+          make test
diff --git a/.golangci.yaml b/.golangci.yaml
new file mode 100644
index 0000000..dc6fefb
--- /dev/null
+++ b/.golangci.yaml
@@ -0,0 +1,12 @@
+run:
+  timeout: 5m
+linters:
+  enable:
+   - gofmt
+   - errcheck
+   - errname
+   - errorlint
+   - bodyclose
+   - durationcheck
+   - whitespace
+