Skip to content

Commit 62101cb

Browse files
yahondaclaude
andcommitted
Add CI workflow for Oracle Database 11g
Uses gvenzl/oracle-xe:11 container with Oracle Instant Client 21.15 (the latest client that supports Oracle 11g). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 4a92719 commit 62101cb

1 file changed

Lines changed: 89 additions & 0 deletions

File tree

.github/workflows/test_11g.yml

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
name: test_11g
2+
3+
on:
4+
push:
5+
pull_request:
6+
7+
jobs:
8+
build:
9+
10+
runs-on: ubuntu-latest
11+
continue-on-error: true
12+
strategy:
13+
matrix:
14+
ruby: [
15+
'4.0',
16+
'3.4',
17+
'3.3',
18+
'3.2',
19+
'3.1',
20+
'3.0',
21+
'2.7',
22+
'2.6',
23+
'2.5',
24+
ruby-head,
25+
ruby-debug,
26+
truffleruby,
27+
truffleruby-head
28+
]
29+
env:
30+
ORACLE_HOME: /opt/oracle/instantclient_21_15
31+
LD_LIBRARY_PATH: /opt/oracle/instantclient_21_15
32+
NLS_LANG: AMERICAN_AMERICA.AL32UTF8
33+
TNS_ADMIN: ./ci/network/admin
34+
DATABASE_NAME: XE
35+
TZ: Europe/Riga
36+
DATABASE_SYS_PASSWORD: Oracle18
37+
DATABASE_VERSION: 11.2.0.2
38+
39+
services:
40+
oracle:
41+
image: gvenzl/oracle-xe:11
42+
ports:
43+
- 1521:1521
44+
env:
45+
TZ: Europe/Riga
46+
ORACLE_PASSWORD: Oracle18
47+
options: >-
48+
--health-cmd healthcheck.sh
49+
--health-interval 10s
50+
--health-timeout 5s
51+
--health-retries 10
52+
53+
steps:
54+
- uses: actions/checkout@v4
55+
- name: Set up Ruby
56+
uses: ruby/setup-ruby@v1
57+
with:
58+
ruby-version: ${{ matrix.ruby }}
59+
- name: Create symbolic link for libaio library compatibility
60+
run: |
61+
sudo ln -s /usr/lib/x86_64-linux-gnu/libaio.so.1t64 /usr/lib/x86_64-linux-gnu/libaio.so.1
62+
- name: Download Oracle instant client
63+
run: |
64+
wget -q https://download.oracle.com/otn_software/linux/instantclient/2115000/instantclient-basic-linux.x64-21.15.0.0.0dbru.zip
65+
wget -q https://download.oracle.com/otn_software/linux/instantclient/2115000/instantclient-sqlplus-linux.x64-21.15.0.0.0dbru.zip
66+
wget -q https://download.oracle.com/otn_software/linux/instantclient/2115000/instantclient-sdk-linux.x64-21.15.0.0.0dbru.zip
67+
- name: Install Oracle instant client
68+
run: |
69+
sudo mkdir -p /opt/oracle/
70+
sudo unzip instantclient-basic-linux.x64-21.15.0.0.0dbru.zip -d /opt/oracle
71+
sudo unzip -o instantclient-sqlplus-linux.x64-21.15.0.0.0dbru.zip -d /opt/oracle
72+
sudo unzip -o instantclient-sdk-linux.x64-21.15.0.0.0dbru.zip -d /opt/oracle
73+
echo "/opt/oracle/instantclient_21_15" >> $GITHUB_PATH
74+
- name: Install JDBC Driver
75+
run: |
76+
wget -q https://download.oracle.com/otn-pub/otn_software/jdbc/233/ojdbc11.jar -O ./lib/ojdbc11.jar
77+
- name: Create database user
78+
run: |
79+
./ci/setup_accounts.sh
80+
- name: Disable ActiveRecord for TruffleRuby
81+
run: |
82+
echo "NO_ACTIVERECORD=true" >> $GITHUB_ENV
83+
if: "contains(matrix.ruby, 'truffleruby')"
84+
- name: Bundle install
85+
run: |
86+
bundle install --jobs 4 --retry 3
87+
- name: Run RSpec
88+
run: |
89+
bundle exec rspec

0 commit comments

Comments
 (0)