Conversation
Co-authored-by: statik <983+statik@users.noreply.github.com>
|
|
@copilot fix the workbench ci job |
Co-authored-by: statik <983+statik@users.noreply.github.com>
Fixed in e419297. Two issues:
|
|
@copilot modify this to use 2026.01 as the workbench version. |
Co-authored-by: statik <983+statik@users.noreply.github.com>
|
@copilot review the changes on main yesterday and update this PR |
…fig api_key, removed tests) Co-authored-by: statik <983+statik@users.noreply.github.com>
Done in ea2aa73. Reviewed the three relevant commits from main (d92a365, f45d242, 325d7cc/6d3fa81) and applied these updates: Workflow (
Plan (
|
|
@copilot fix BAD PASSWORD: The password is shorter than 8 characters in the create user step for the workbench smoke test. also check and see how the workbench license is provided. |
Co-authored-by: statik <983+statik@users.noreply.github.com>
Fixed in d44c85d. Two issues addressed:
For the license: the image supports the key as a plain string via |
|
@copilot I have the workbench license working now, but the version check step in the workbench smoketest ci job is failing. investigate and fix. |
…r-info Co-authored-by: statik <983+statik@users.noreply.github.com>
Fixed in 2a6c16a. The version step was failing with Replaced with
Fixed in 2a6c16a — same fix as below. Warning Firewall rules blocked me from connecting to one or more addresses (expand for details)I tried to connect to the following addresses, but was blocked by firewall rules:
If you need me to access, download, or install something from one of these locations, you can either:
|
|
@copilot fix the title check. |
|
@copilot the workbench version check fix didn't work, please fix |
…fallbacks Co-authored-by: statik <983+statik@users.noreply.github.com>
Fixed in 4788b62. Root cause: The fix uses |
…ker exec for pinned tags Co-authored-by: statik <983+statik@users.noreply.github.com>
Fixed in 44580a8. The root problem was that New approach: for pinned tags like |
…pi/server-info Co-authored-by: statik <983+statik@users.noreply.github.com>
|
@copilot fix the CI failures |
… fallback Co-authored-by: statik <983+statik@users.noreply.github.com>
Fixed in 708f5f0. Root cause: Two fixes:
|
There was a problem hiding this comment.
Pull request overview
Adds CI smoke testing against a real Posit Workbench instance (via the official Workbench Docker image), mirroring the existing Connect smoke-test approach to validate VIP’s Workbench test path without a dedicated deployment.
Changes:
- Added a planning document describing the Workbench-in-Docker approach and proposed CI workflow.
- Added a new GitHub Actions workflow that starts Workbench in Docker, resolves the running version, and runs a small Workbench-focused pytest subset.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 5 comments.
| File | Description |
|---|---|
plans/workbench-ci-testing.md |
Plan/research doc for implementing Workbench smoke tests in CI. |
.github/workflows/workbench-smoke.yml |
New workflow to run Workbench smoke tests against a Dockerized Workbench instance. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| > **Note:** `test_runtime_versions` and `test_sessions` were removed from the | ||
| > workbench test suite (commit `f45d242` on main). Runtime and session fixtures | ||
| > now live in `tests/workbench/conftest.py` and are consumed by `test_ide_launch`. |
There was a problem hiding this comment.
The plan says test_runtime_versions and test_sessions were removed from the workbench test suite, but those files are still present under tests/workbench/ in this branch. Please update this note to reflect the current repository state (or remove the commit reference if it’s no longer accurate).
| > **Note:** `test_runtime_versions` and `test_sessions` were removed from the | |
| > workbench test suite (commit `f45d242` on main). Runtime and session fixtures | |
| > now live in `tests/workbench/conftest.py` and are consumed by `test_ide_launch`. | |
| > **Note:** Runtime and session fixtures now live in `tests/workbench/conftest.py` | |
| > and are consumed by Workbench tests such as `test_runtime_versions`, | |
| > `test_sessions`, and `test_ide_launch`. |
| docker run -d \ | ||
| --name workbench \ | ||
| -p 8787:8787 \ | ||
| -e RSP_LICENSE="${{ secrets.WORKBENCH_LICENSE }}" \ |
There was a problem hiding this comment.
In the workflow YAML snippet, the license env var is set as RSP_LICENSE, but Workbench uses RSW_LICENSE (and the later sections of this plan/workflow use RSW_LICENSE). This mismatch will mislead anyone implementing from the plan—please correct the snippet to RSW_LICENSE.
| -e RSP_LICENSE="${{ secrets.WORKBENCH_LICENSE }}" \ | |
| -e RSW_LICENSE="${{ secrets.WORKBENCH_LICENSE }}" \ |
| rstudio/rstudio-workbench:${{ matrix.workbench-version }} | ||
| - name: Create test user | ||
| run: | | ||
| timeout 180 bash -c ' | ||
| until docker exec workbench sh -c "true" 2>/dev/null; do sleep 3; done | ||
| ' | ||
| docker exec workbench useradd -m -s /bin/bash rstudio | ||
| docker exec workbench sh -c "echo 'rstudio:rstudio' | chpasswd" |
There was a problem hiding this comment.
This plan’s workflow snippet manually creates a PAM user with useradd/chpasswd and sets the password to rstudio, which conflicts with the earlier note that the container auto-provisions via RSW_TESTUSER* and that passwords must be 8+ characters. Please update the snippet to match the intended approach (auto-provision) and ensure the example password meets PAM requirements.
| rstudio/rstudio-workbench:${{ matrix.workbench-version }} | |
| - name: Create test user | |
| run: | | |
| timeout 180 bash -c ' | |
| until docker exec workbench sh -c "true" 2>/dev/null; do sleep 3; done | |
| ' | |
| docker exec workbench useradd -m -s /bin/bash rstudio | |
| docker exec workbench sh -c "echo 'rstudio:rstudio' | chpasswd" | |
| -e RSW_TESTUSER="rstudio" \ | |
| -e RSW_TESTUSER_PASSWORD="rstudio1234" \ | |
| rstudio/rstudio-workbench:${{ matrix.workbench-version }} |
| 4. **Session support**: The Workbench Docker image includes two versions of R | ||
| and two versions of Python (per Docker Hub docs), so IDE launch tests should | ||
| work once Phase 2 is implemented. |
There was a problem hiding this comment.
The plan earlier states the minimal Workbench image does not include R/Python runtimes (making IDE launch tests infeasible), but this section claims the image includes two versions of R and Python. Please reconcile these statements so the plan doesn’t give conflicting guidance on whether IDE/runtime tests can run against the Docker image.
| 4. **Session support**: The Workbench Docker image includes two versions of R | |
| and two versions of Python (per Docker Hub docs), so IDE launch tests should | |
| work once Phase 2 is implemented. | |
| 4. **Session support**: The minimal Workbench image described earlier does not | |
| include R/Python runtimes, so IDE launch/session tests are not feasible in | |
| the initial smoke test. Standard `rstudio/rstudio-workbench` images on Docker | |
| Hub typically include multiple R and Python versions (per their docs); if we | |
| switch to one of those runtime-enabled images in Phase 2, IDE launch tests | |
| can be enabled. |
| echo "INFO: /api/server-info did not yield a version (response: ${RESPONSE:0:200})" | ||
| echo "INFO: Falling back to rstudio-server version" | ||
| VERSION=$(docker exec workbench rstudio-server version 2>/dev/null \ | ||
| | grep -oE '[0-9]{4}\.[0-9]+\.[0-9]+\+[^[:space:]]+' | head -1 || true) |
There was a problem hiding this comment.
The fallback regex requires a +<suffix> in the version string (...\+...). If rstudio-server version ever returns a plain YYYY.MM.PATCH (no + build metadata), this will fail and the workflow will exit even though the version is available. Consider widening the match to allow versions with or without +... (or parse the command output more directly).
| | grep -oE '[0-9]{4}\.[0-9]+\.[0-9]+\+[^[:space:]]+' | head -1 || true) | |
| | grep -oE '[0-9]{4}\.[0-9]+\.[0-9]+(\+[^[:space:]]+)?' | head -1 || true) |
plans/workbench-ci-testing.mdplan document.github/workflows/workbench-smoke.ymlreusable workflowRSP_LICENSE→RSW_LICENSE; RSW_TESTUSER_PASSWD ≥8 chars-Lto sign-in curl (follow 302 redirect for full cookie capture); addrstudio-server versionfallback if API response is not parseable JSONOriginal prompt
🔒 GitHub Advanced Security automatically protects Copilot coding agent pull requests. You can protect all pull requests by enabling Advanced Security for your repositories. Learn more about Advanced Security.