Skip to content

Commit a08071a

Browse files
yahondaclaude
andcommitted
Add test_11g_ojdbc11 workflow for JRuby 10 against Oracle 11g XE
Add a dedicated workflow that exercises ruby-plsql with ojdbc11.jar against Oracle 11g XE on JRuby 10.0.5.0. This keeps ojdbc11 coverage after the main test workflow moved to ojdbc17, modeled after the oracle-enhanced test_11g_ojdbc11 workflow. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 46054fe commit a08071a

1 file changed

Lines changed: 89 additions & 0 deletions

File tree

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
name: test_11g_ojdbc11
2+
3+
on:
4+
push:
5+
branches:
6+
- master
7+
pull_request:
8+
types: [opened, synchronize, reopened, ready_for_review]
9+
10+
jobs:
11+
build:
12+
if: github.event_name != 'pull_request' || !github.event.pull_request.draft
13+
14+
runs-on: ubuntu-latest
15+
continue-on-error: true
16+
strategy:
17+
matrix:
18+
ruby: [
19+
'jruby-10.0.5.0'
20+
]
21+
env:
22+
ORACLE_HOME: /opt/oracle/instantclient_21_15
23+
LD_LIBRARY_PATH: /opt/oracle/instantclient_21_15
24+
NLS_LANG: AMERICAN_AMERICA.AL32UTF8
25+
TNS_ADMIN: ./ci/network/admin
26+
DATABASE_NAME: XE
27+
TZ: Europe/Riga
28+
DATABASE_SYS_PASSWORD: Oracle18
29+
30+
services:
31+
oracle:
32+
image: gvenzl/oracle-xe:11
33+
ports:
34+
- 1521:1521
35+
env:
36+
TZ: Europe/Riga
37+
ORACLE_PASSWORD: Oracle18
38+
options: >-
39+
--health-cmd healthcheck.sh
40+
--health-interval 10s
41+
--health-timeout 5s
42+
--health-retries 10
43+
44+
steps:
45+
- uses: actions/checkout@v6
46+
- name: Set up Ruby
47+
uses: ruby/setup-ruby@v1
48+
with:
49+
ruby-version: ${{ matrix.ruby }}
50+
- name: Create symbolic link for libaio library compatibility
51+
run: |
52+
sudo ln -s /usr/lib/x86_64-linux-gnu/libaio.so.1t64 /usr/lib/x86_64-linux-gnu/libaio.so.1
53+
- name: Download Oracle instant client
54+
run: |
55+
wget -q https://download.oracle.com/otn_software/linux/instantclient/2115000/instantclient-basic-linux.x64-21.15.0.0.0dbru.zip
56+
wget -q https://download.oracle.com/otn_software/linux/instantclient/2115000/instantclient-sqlplus-linux.x64-21.15.0.0.0dbru.zip
57+
wget -q https://download.oracle.com/otn_software/linux/instantclient/2115000/instantclient-sdk-linux.x64-21.15.0.0.0dbru.zip
58+
- name: Install Oracle instant client
59+
run: |
60+
sudo mkdir -p /opt/oracle/
61+
sudo unzip -q instantclient-basic-linux.x64-21.15.0.0.0dbru.zip -d /opt/oracle
62+
sudo unzip -qo instantclient-sqlplus-linux.x64-21.15.0.0.0dbru.zip -d /opt/oracle
63+
sudo unzip -qo instantclient-sdk-linux.x64-21.15.0.0.0dbru.zip -d /opt/oracle
64+
echo "/opt/oracle/instantclient_21_15" >> $GITHUB_PATH
65+
- name: Install JDBC Driver
66+
run: |
67+
wget -q https://download.oracle.com/otn-pub/otn_software/jdbc/23261/ojdbc11.jar -O ./lib/ojdbc11.jar
68+
- name: Configure ORA_TZFILE to match Oracle 11g server
69+
run: |
70+
# Oracle 11g XE uses timezone file v14; Instant Client 21.15 embeds
71+
# v35. This mismatch causes ORA-01805 when fetching DATE/TIMESTAMP
72+
# values. Copy the v14 files from the 11g container and point the
73+
# Instant Client at them via ORA_TZFILE.
74+
ORACLE_CONTAINER="${{ job.services.oracle.id }}"
75+
sudo mkdir -p "$ORACLE_HOME/oracore/zoneinfo"
76+
docker cp "$ORACLE_CONTAINER":/u01/app/oracle/product/11.2.0/xe/oracore/zoneinfo/timezlrg_14.dat /tmp/timezlrg_14.dat
77+
docker cp "$ORACLE_CONTAINER":/u01/app/oracle/product/11.2.0/xe/oracore/zoneinfo/timezone_14.dat /tmp/timezone_14.dat
78+
sudo mv /tmp/timezlrg_14.dat "$ORACLE_HOME/oracore/zoneinfo/"
79+
sudo mv /tmp/timezone_14.dat "$ORACLE_HOME/oracore/zoneinfo/"
80+
echo "ORA_TZFILE=timezlrg_14.dat" >> $GITHUB_ENV
81+
- name: Create database user
82+
run: |
83+
./ci/setup_accounts.sh
84+
- name: Bundle install
85+
run: |
86+
bundle install --jobs 4 --retry 3
87+
- name: Run RSpec
88+
run: |
89+
RUBYOPT=-w bundle exec rspec

0 commit comments

Comments
 (0)