summaryrefslogtreecommitdiffhomepage
path: root/.github/workflows/test.yml
diff options
context:
space:
mode:
authorAdam <[email protected]>2026-01-17 20:52:21 -0600
committerAdam <[email protected]>2026-01-19 09:03:52 -0600
commit03d7467ea268f2f0f8d99f48ea1522741014b4bf (patch)
tree5df719dfef2b7d67fad86405a99cd2375174c41b /.github/workflows/test.yml
parent23e9c02a7fd80063dd49e3b9cbd2a0c6519034bc (diff)
downloadopencode-03d7467ea268f2f0f8d99f48ea1522741014b4bf.tar.gz
opencode-03d7467ea268f2f0f8d99f48ea1522741014b4bf.zip
test(app): initial e2e test setup
Diffstat (limited to '.github/workflows/test.yml')
-rw-r--r--.github/workflows/test.yml63
1 files changed, 63 insertions, 0 deletions
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index c39710bee..98eac1dab 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -18,6 +18,52 @@ jobs:
- name: Setup Bun
uses: ./.github/actions/setup-bun
+ - name: Install Playwright browsers
+ run: bun --cwd packages/app x playwright install --with-deps
+
+ - name: Seed opencode data
+ run: bun --cwd packages/opencode script/seed-e2e.ts
+ env:
+ MODELS_DEV_API_JSON: ${{ github.workspace }}/packages/opencode/test/tool/fixtures/models-api.json
+ OPENCODE_DISABLE_MODELS_FETCH: "true"
+ OPENCODE_DISABLE_SHARE: "true"
+ OPENCODE_DISABLE_LSP_DOWNLOAD: "true"
+ OPENCODE_DISABLE_DEFAULT_PLUGINS: "true"
+ OPENCODE_EXPERIMENTAL_DISABLE_FILEWATCHER: "true"
+ OPENCODE_TEST_HOME: ${{ runner.temp }}/opencode-e2e/home
+ XDG_DATA_HOME: ${{ runner.temp }}/opencode-e2e/share
+ XDG_CACHE_HOME: ${{ runner.temp }}/opencode-e2e/cache
+ XDG_CONFIG_HOME: ${{ runner.temp }}/opencode-e2e/config
+ XDG_STATE_HOME: ${{ runner.temp }}/opencode-e2e/state
+ OPENCODE_E2E_PROJECT_DIR: ${{ github.workspace }}
+ OPENCODE_E2E_SESSION_TITLE: "E2E Session"
+ OPENCODE_E2E_MESSAGE: "Seeded for UI e2e"
+ OPENCODE_E2E_MODEL: "opencode/gpt-5-nano"
+
+ - name: Run opencode server
+ run: bun --cwd packages/opencode run dev -- --print-logs --log-level WARN serve --port 4096 --hostname 0.0.0.0 &
+ env:
+ MODELS_DEV_API_JSON: ${{ github.workspace }}/packages/opencode/test/tool/fixtures/models-api.json
+ OPENCODE_DISABLE_MODELS_FETCH: "true"
+ OPENCODE_DISABLE_SHARE: "true"
+ OPENCODE_DISABLE_LSP_DOWNLOAD: "true"
+ OPENCODE_DISABLE_DEFAULT_PLUGINS: "true"
+ OPENCODE_EXPERIMENTAL_DISABLE_FILEWATCHER: "true"
+ OPENCODE_TEST_HOME: ${{ runner.temp }}/opencode-e2e/home
+ XDG_DATA_HOME: ${{ runner.temp }}/opencode-e2e/share
+ XDG_CACHE_HOME: ${{ runner.temp }}/opencode-e2e/cache
+ XDG_CONFIG_HOME: ${{ runner.temp }}/opencode-e2e/config
+ XDG_STATE_HOME: ${{ runner.temp }}/opencode-e2e/state
+ OPENCODE_CLIENT: "app"
+
+ - name: Wait for opencode server
+ run: |
+ for i in {1..60}; do
+ curl -fsS "http://localhost:4096/global/health" > /dev/null && exit 0
+ sleep 1
+ done
+ exit 1
+
- name: run
run: |
git config --global user.email "[email protected]"
@@ -26,3 +72,20 @@ jobs:
bun turbo test
env:
CI: true
+ MODELS_DEV_API_JSON: ${{ github.workspace }}/packages/opencode/test/tool/fixtures/models-api.json
+ OPENCODE_DISABLE_MODELS_FETCH: "true"
+ OPENCODE_DISABLE_SHARE: "true"
+ OPENCODE_DISABLE_LSP_DOWNLOAD: "true"
+ OPENCODE_DISABLE_DEFAULT_PLUGINS: "true"
+ OPENCODE_EXPERIMENTAL_DISABLE_FILEWATCHER: "true"
+ OPENCODE_TEST_HOME: ${{ runner.temp }}/opencode-e2e/home
+ XDG_DATA_HOME: ${{ runner.temp }}/opencode-e2e/share
+ XDG_CACHE_HOME: ${{ runner.temp }}/opencode-e2e/cache
+ XDG_CONFIG_HOME: ${{ runner.temp }}/opencode-e2e/config
+ XDG_STATE_HOME: ${{ runner.temp }}/opencode-e2e/state
+ PLAYWRIGHT_SERVER_HOST: "localhost"
+ PLAYWRIGHT_SERVER_PORT: "4096"
+ VITE_OPENCODE_SERVER_HOST: "localhost"
+ VITE_OPENCODE_SERVER_PORT: "4096"
+ OPENCODE_CLIENT: "app"
+ timeout-minutes: 30