Feature #23115
closedBuild Workbench development Docker image with Ansible
Description
source:services/workbench2/docker/Dockerfile defines a Docker image that is useful for developing and testing Workbench. However, it is blocking the removal of arvados-server install, and it has a lot of functionality that isn't actually necessary for the job.
Update source:services/workbench2/Makefile to build the Docker image with Ansible, similarly to the way we build package build and test files. I believe this image only needs to belong to the arvados_build_workbench group.
Updated by Brett Smith 7 months ago
- Blocks Support #22436: Remove `arvados-server install`, `arvados-package` added
Updated by Brett Smith 7 months ago
- Target version changed from Development 2025-09-03 to Development 2025-09-17
Updated by Brett Smith 6 months ago
- Target version deleted (
Development 2025-09-17)
Updated by Brett Smith 6 months ago
- Target version set to Development 2025-10-01
- Status changed from New to In Progress
Updated by Brett Smith 6 months ago
23115-workbench-docker-build @ 2172406d489bd2c3c03a8fc12e0c90e9946183b3 - developer-run-tests: #4888
In order to build the Docker image with the new process, you must have Ansible installed. See the instructions in tools/ansible/README.md.
I asked if it was okay to require a Go installation too. I ended up not needing that; Go is installed in the Docker image and I ended up using that.
I have seen an issue where the first run of unit tests hangs, but then you can Ctrl-C it and future runs work fine. Since this is meant for interactive use, I'm taking that as a livable bug. But if you know how to fix it, I'm all ears.
- All agreed upon points are implemented / addressed. Describe changes from pre-implementation design.
- Yes. See 13f69dc7b1495ffe77c6a1639590317e9b3f4923 message for implementation background.
- Anything not implemented (discovered or discussed during work) has a follow-up story.
- N/A
- Code is tested and passing, both automated and manual, what manual testing was done is described.
- Docker tests pass on my system. Test run above shows no regressions.
- Tested code incorporates recent main branch changes.
- Yes
- New or changed UI/UX and has gotten feedback from stakeholders.
- N/A, I think - The main entry point of the Makefile rules retain their names and configuration.
- Documentation has been updated.
- Yes
- Behaves appropriately at the intended scale (describe intended scale).
- N/A (but note at least on my system, the Docker image shrunk from 10GiB to 2, which is a nice bonus)
- Considered backwards and forwards compatibility issues between client and server.
- N/A
- Follows our coding standards and GUI style guidelines.
- N/A - I don't think we have any style rules for shell, Make, or Ansible
Updated by Stephen Smith 6 months ago
This looks great, I haven't had any issue running unit or integration tests and it all just worked(TM)
I have 1 small suggestion, the cypress interactive mode was only documented at: https://dev.arvados.org/projects/arvados/wiki/Running_tests#Running-workbench2-tests but isn't part of the makefile, it would be nice to have a make target to run it interactively. It seems it just needs --env="DISPLAY" --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" added to the docker command and -i added to run-integration-tests.sh. Interactive mode can be used for both unit (component) and e2e integration, so it could be called interactive-tests-in-docker or something.
I tried like this and it seems to work fine:
interactive-tests-in-docker: workbench-docker-volume
docker run $(TI) --rm \
--env="DISPLAY" --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" \
--mount="type=volume,src=$(DOCKER_VOLUME),dst=/home" \
--mount="type=bind,src=$(ARVADOS_DIRECTORY),dst=/opt/arvados" \
--workdir=/opt/arvados/services/workbench2 \
"$(DOCKER_IMAGE)" \
bash tools/run-integration-tests.sh -i
Another note, it seems that in interactive mode Firefox no longer works, but I'm pretty sure this is due to FF being upgraded many versions with cypress still being v13, so another ticket to upgrade cypress to v14 or v15 perhaps would be good. The interactive electron runner seems to work fine so it should be good enough for test debugging in the meantime.
Updated by Brett Smith 6 months ago
Stephen Smith wrote in #note-8:
I tried like this and it seems to work fine:
Added with some minor spelling improvements. I'm not bothering to run the tests for this since nothing in them will exercise this change.
Another note, it seems that in interactive mode Firefox no longer works, but I'm pretty sure this is due to FF being upgraded many versions with cypress still being v13, so another ticket to upgrade cypress to v14 or v15 perhaps would be good. The interactive electron runner seems to work fine so it should be good enough for test debugging in the meantime.
Feel free to make that ticket. There will probably be time to work on that soon, it's one of those things that's easy to do right now because if it makes it into 3.2.0 it's low-risk and if it doesn't, no big deal.
Updated by Stephen Smith 6 months ago
- Related to Feature #23175: Update cypress to v14 or v15 added
Updated by Brett Smith 6 months ago
- Status changed from In Progress to Resolved