Add devcontainer environment and CI#276
Merged
yahonda merged 3 commits intorsim:masterfrom May 5, 2026
Merged
Conversation
Collaborator
Author
|
Follow-up note: once this devcontainer lands, the existing Vagrant-based setup ( |
2 tasks
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. Ruby is pinned to 4.0.3 to match the current default of ghcr.io/rails/devcontainer/features/ruby:2 (v2.2.1).
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.
Ruby 4.0 removed rdoc from the default gems, so the unconditional `require "rdoc/task"` in rakefile:45 raises LoadError when running `bundle exec rake spec` under the devcontainer's Ruby 4.0.3. Declaring rdoc in the development group keeps the rdoc-related rake tasks available without changing the gemspec or restructuring the rakefile. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
3 tasks
yahonda
added a commit
that referenced
this pull request
May 5, 2026
The Vagrant workflow is superseded by the .devcontainer/ setup added in #276, which boots gvenzl/oracle-free in a container and provisions the same hr and arunit accounts the spec suite expects via the existing ci/setup_accounts.sh. Maintaining both paths is unnecessary; the Vagrant configuration also targets a CentOS 7.2 box and the Oracle XE 11.2.0 RPM, which is no longer readily distributable. Removed: - Vagrantfile - spec/support/file_check_script.sh — only invoked by the Vagrantfile to verify the Oracle XE installer was placed in the project root - spec/support/test_db.rb — only invoked under USE_VM_DATABASE=Y and hardcoded to the XE service, system/oracle credentials, and the /u01/app/oracle/oradata/XE paths inside the Vagrant box - USE_VM_DATABASE branches in spec/spec_helper.rb - .vagrant entry from .gitignore - Vagrant sections from README.md TESTS instructions History.txt entries that mention the Vagrant box are left as historical changelog records. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
.devcontainer/so contributors can develop ruby-plsql in a containerized environment with Oracle Free, mirroring the setup inrsim/oracle-enhanced. The Dockerfile installs Oracle Instant Client (latest x86_64, pinned 23.26.1.0.0 on arm64),docker-compose.ymlbootsgvenzl/oracle-free:latestalongside the app container, andpostCreateCommand.shruns the existingci/setup_accounts.shonce Oracle is healthy to provision thehrandarunitusers used by the spec suite..github/workflows/devcontainer.yml, a monthly (and manual-dispatch) workflow that boots the devcontainer and runsrake spec+rubocopto catch regressions in Instant Client URLs, thegvenzl/oracle-freeimage, and base image drift before they hit contributors.Test plan
bundle exec rake specpasses.devcontainerworkflow and confirm green.🤖 Generated with Claude Code