diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 9510aee948..264287afe8 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -37,6 +37,26 @@ jobs: with: token: ${{ secrets.GITHUB_TOKEN }} + - name: Set OS-specific paths + run: | + if [ "${{ runner.os }}" = "Windows" ]; then + printf '%s\n' "OPENCODE_E2E_ROOT=${{ runner.temp }}\\opencode-e2e" >> "$GITHUB_ENV" + printf '%s\n' "OPENCODE_TEST_HOME=${{ runner.temp }}\\opencode-e2e\\home" >> "$GITHUB_ENV" + printf '%s\n' "XDG_DATA_HOME=${{ runner.temp }}\\opencode-e2e\\share" >> "$GITHUB_ENV" + printf '%s\n' "XDG_CACHE_HOME=${{ runner.temp }}\\opencode-e2e\\cache" >> "$GITHUB_ENV" + printf '%s\n' "XDG_CONFIG_HOME=${{ runner.temp }}\\opencode-e2e\\config" >> "$GITHUB_ENV" + printf '%s\n' "XDG_STATE_HOME=${{ runner.temp }}\\opencode-e2e\\state" >> "$GITHUB_ENV" + printf '%s\n' "MODELS_DEV_API_JSON=${{ github.workspace }}\\packages\\opencode\\test\\tool\\fixtures\\models-api.json" >> "$GITHUB_ENV" + else + printf '%s\n' "OPENCODE_E2E_ROOT=${{ runner.temp }}/opencode-e2e" >> "$GITHUB_ENV" + printf '%s\n' "OPENCODE_TEST_HOME=${{ runner.temp }}/opencode-e2e/home" >> "$GITHUB_ENV" + printf '%s\n' "XDG_DATA_HOME=${{ runner.temp }}/opencode-e2e/share" >> "$GITHUB_ENV" + printf '%s\n' "XDG_CACHE_HOME=${{ runner.temp }}/opencode-e2e/cache" >> "$GITHUB_ENV" + printf '%s\n' "XDG_CONFIG_HOME=${{ runner.temp }}/opencode-e2e/config" >> "$GITHUB_ENV" + printf '%s\n' "XDG_STATE_HOME=${{ runner.temp }}/opencode-e2e/state" >> "$GITHUB_ENV" + printf '%s\n' "MODELS_DEV_API_JSON=${{ github.workspace }}/packages/opencode/test/tool/fixtures/models-api.json" >> "$GITHUB_ENV" + fi + - name: Setup Bun uses: ./.github/actions/setup-bun @@ -48,36 +68,37 @@ jobs: working-directory: packages/opencode run: bun script/seed-e2e.ts env: - MODELS_DEV_API_JSON: ${{ github.workspace }}/packages/opencode/test/tool/fixtures/models-api.json + MODELS_DEV_API_JSON: ${{ env.MODELS_DEV_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_TEST_HOME: ${{ env.OPENCODE_TEST_HOME }} + XDG_DATA_HOME: ${{ env.XDG_DATA_HOME }} + XDG_CACHE_HOME: ${{ env.XDG_CACHE_HOME }} + XDG_CONFIG_HOME: ${{ env.XDG_CONFIG_HOME }} + XDG_STATE_HOME: ${{ env.XDG_STATE_HOME }} 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 run dev -- --print-logs --log-level WARN serve --port 4096 --hostname 0.0.0.0 & + working-directory: packages/opencode + run: bun 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 + MODELS_DEV_API_JSON: ${{ env.MODELS_DEV_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_TEST_HOME: ${{ env.OPENCODE_TEST_HOME }} + XDG_DATA_HOME: ${{ env.XDG_DATA_HOME }} + XDG_CACHE_HOME: ${{ env.XDG_CACHE_HOME }} + XDG_CONFIG_HOME: ${{ env.XDG_CONFIG_HOME }} + XDG_STATE_HOME: ${{ env.XDG_STATE_HOME }} OPENCODE_CLIENT: "app" - name: Wait for opencode server @@ -93,17 +114,17 @@ jobs: run: ${{ matrix.settings.command }} env: CI: true - MODELS_DEV_API_JSON: ${{ github.workspace }}/packages/opencode/test/tool/fixtures/models-api.json + MODELS_DEV_API_JSON: ${{ env.MODELS_DEV_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_TEST_HOME: ${{ env.OPENCODE_TEST_HOME }} + XDG_DATA_HOME: ${{ env.XDG_DATA_HOME }} + XDG_CACHE_HOME: ${{ env.XDG_CACHE_HOME }} + XDG_CONFIG_HOME: ${{ env.XDG_CONFIG_HOME }} + XDG_STATE_HOME: ${{ env.XDG_STATE_HOME }} PLAYWRIGHT_SERVER_HOST: "localhost" PLAYWRIGHT_SERVER_PORT: "4096" VITE_OPENCODE_SERVER_HOST: "localhost"