Skip to content

Add devcontainer environment and CI#276

Draft
yahonda wants to merge 3 commits intorsim:masterfrom
yahonda:add-devcontainer
Draft

Add devcontainer environment and CI#276
yahonda wants to merge 3 commits intorsim:masterfrom
yahonda:add-devcontainer

Conversation

@yahonda
Copy link
Copy Markdown
Collaborator

@yahonda yahonda commented Apr 30, 2026

Summary

  • Adds .devcontainer/ so contributors can develop ruby-plsql in a containerized environment with Oracle Free, mirroring the setup in rsim/oracle-enhanced. The Dockerfile installs Oracle Instant Client (latest x86_64, pinned 23.26.1.0.0 on arm64), docker-compose.yml boots gvenzl/oracle-free:latest alongside the app container, and postCreateCommand.sh runs the existing ci/setup_accounts.sh once Oracle is healthy to provision the hr and arunit users used by the spec suite.
  • Adds .github/workflows/devcontainer.yml, a monthly (and manual-dispatch) workflow that boots the devcontainer and runs rake spec + rubocop to catch regressions in Instant Client URLs, the gvenzl/oracle-free image, and base image drift before they hit contributors.

Test plan

  • Open the repo in VS Code "Reopen in Container" on x86_64 and confirm bundle exec rake spec passes.
  • Repeat on arm64 (Apple Silicon) to confirm the pinned Instant Client zip resolves.
  • Manually dispatch the new devcontainer workflow and confirm green.

🤖 Generated with Claude Code

yahonda added 3 commits April 30, 2026 15:39
Adds a .devcontainer/ setup mirroring rsim/oracle-enhanced so contributors
can develop ruby-plsql against a containerized Oracle Free database without
local Oracle Instant Client installation. The Dockerfile installs Instant
Client (latest x86_64, pinned 23.26.1.0.0 on arm64), docker-compose.yml
boots gvenzl/oracle-free alongside the app container, and
postCreateCommand.sh runs the existing ci/setup_accounts.sh once Oracle is
healthy to provision the hr and arunit users used by the spec suite.
Boots the devcontainer on a monthly schedule (and on manual dispatch) to
catch regressions in the dev environment — Oracle Instant Client URLs,
gvenzl/oracle-free image changes, and base image drift — before they hit
contributors. Runs the spec suite and rubocop inside the booted container.
Matches the current default of ghcr.io/rails/devcontainer/features/ruby:2
(v2.2.1).
@yahonda
Copy link
Copy Markdown
Collaborator Author

yahonda commented Apr 30, 2026

Follow-up note: once this devcontainer lands, the existing Vagrant-based setup (Vagrantfile, the USE_VM_DATABASE=Y path in spec/spec_helper.rb, and the related Vagrant instructions in README.md) becomes redundant and should be removed in a separate PR.

@yahonda yahonda mentioned this pull request Apr 30, 2026
2 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant