From 26956f6ae9f171cc7af0a2e3084a0190c1098bc8 Mon Sep 17 00:00:00 2001
From: Bram Borggreve <beeman@beeman.nl>
Date: Mon, 14 Oct 2024 15:29:49 -0500
Subject: [PATCH] chore: add GitHub Workflow

---
 .github/workflows/test-anchor.yml | 49 +++++++++++++++++++++++++++++++
 .github/workflows/test-web.yml    | 31 +++++++++++++++++++
 2 files changed, 80 insertions(+)
 create mode 100644 .github/workflows/test-anchor.yml
 create mode 100644 .github/workflows/test-web.yml

diff --git a/.github/workflows/test-anchor.yml b/.github/workflows/test-anchor.yml
new file mode 100644
index 0000000..b510697
--- /dev/null
+++ b/.github/workflows/test-anchor.yml
@@ -0,0 +1,49 @@
+name: Test and Build Anchor
+
+on:
+  pull_request:
+  push:
+    branches: ['main']
+
+jobs:
+  test-and-build:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout
+        uses: actions/checkout@v4
+
+      - name: Install pnpm
+        uses: pnpm/action-setup@v4
+        with:
+          run_install: false
+
+      - name: Install Node.js
+        uses: actions/setup-node@v4
+        with:
+          node-version: 20
+          cache: 'pnpm'
+
+      - name: Install dependencies
+        run: pnpm install --frozen-lockfile
+
+      - uses: metadaoproject/setup-anchor@v2
+        with:
+          anchor-version: '0.30.1'
+          node-version: '20'
+          solana-cli-version: '1.18.9'
+
+      - name: Generate new keypair
+        run: solana-keygen new --no-bip39-passphrase
+
+      - name: Set solana target cluster to local
+        run: solana config set --url http://localhost:8899
+
+      - name: Check solana config
+        run: solana config get
+
+      - run: pnpm run anchor build
+        shell: bash
+
+      - run: pnpm run anchor test
+        shell: bash
diff --git a/.github/workflows/test-web.yml b/.github/workflows/test-web.yml
new file mode 100644
index 0000000..6718a15
--- /dev/null
+++ b/.github/workflows/test-web.yml
@@ -0,0 +1,31 @@
+name: Test and Build Web
+
+on:
+  pull_request:
+  push:
+    branches: ['main']
+
+jobs:
+  test-and-build:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout
+        uses: actions/checkout@v4
+
+      - name: Install pnpm
+        uses: pnpm/action-setup@v4
+        with:
+          run_install: false
+
+      - name: Install Node.js
+        uses: actions/setup-node@v4
+        with:
+          node-version: 20
+          cache: 'pnpm'
+
+      - name: Install dependencies
+        run: pnpm install --frozen-lockfile
+
+      - name: Build project
+        run: pnpm build