Skip to content

Commit 3cc63ed

Browse files
committed
ci: Add ORA_TZFILE workaround to remaining gvenzl/oracle-free workflows
rsim#291 added the ORA-01805 workaround to `ruby_head.yml`. The same root cause -- `gvenzl/oracle-free:latest` shipping a newer timezone-data version than the "latest" Instant Client embeds -- affects every other workflow that combines that image with ruby-oci8: - `truffleruby.yml`: failing on schedule since 2026-05-09 with `ORA-01805` from `ocidatetime.c:119 in oci8lib_truffleruby.so` (https://github.com/rsim/ruby-plsql/actions/runs/25710673905). - `test.yml`: not yet run against the updated image (latest run was 2026-05-08, image upgrade landed on 05-09); will fail on the MRI matrix slots on the next push/PR. - `test_gemfiles.yml`: same situation as test.yml. Apply the same dynamic copy-and-set-ORA_TZFILE step immediately after `Create database user`. `jruby_head.yml` is excluded because it uses the JDBC driver and is not affected (confirmed still green on schedule).
1 parent 959e88b commit 3cc63ed

3 files changed

Lines changed: 33 additions & 0 deletions

File tree

.github/workflows/test.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,17 @@ jobs:
7474
- name: Create database user
7575
run: |
7676
./ci/setup_accounts.sh
77+
- name: Force client TZ data to match server (ORA_TZFILE workaround)
78+
run: |
79+
ORACLE_CONTAINER=$(docker ps --filter "ancestor=gvenzl/oracle-free" -q)
80+
SRC=$(docker exec "$ORACLE_CONTAINER" bash -c 'ls $ORACLE_HOME/oracore/zoneinfo/timezlrg_*.dat 2>/dev/null | head -1')
81+
echo "Server TZ file: $SRC"
82+
DST_DIR="$ORACLE_HOME/oracore/zoneinfo"
83+
sudo mkdir -p "$DST_DIR"
84+
docker cp "$ORACLE_CONTAINER":"$SRC" /tmp/_server_tzfile.dat
85+
sudo mv /tmp/_server_tzfile.dat "$DST_DIR/$(basename "$SRC")"
86+
ls -l "$DST_DIR"
87+
echo "ORA_TZFILE=$DST_DIR/$(basename "$SRC")" >> $GITHUB_ENV
7788
- name: Bundle install
7889
run: |
7990
bundle install --jobs 4 --retry 3

.github/workflows/test_gemfiles.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,17 @@ jobs:
8888
- name: Create database user
8989
run: |
9090
./ci/setup_accounts.sh
91+
- name: Force client TZ data to match server (ORA_TZFILE workaround)
92+
run: |
93+
ORACLE_CONTAINER=$(docker ps --filter "ancestor=gvenzl/oracle-free" -q)
94+
SRC=$(docker exec "$ORACLE_CONTAINER" bash -c 'ls $ORACLE_HOME/oracore/zoneinfo/timezlrg_*.dat 2>/dev/null | head -1')
95+
echo "Server TZ file: $SRC"
96+
DST_DIR="$ORACLE_HOME/oracore/zoneinfo"
97+
sudo mkdir -p "$DST_DIR"
98+
docker cp "$ORACLE_CONTAINER":"$SRC" /tmp/_server_tzfile.dat
99+
sudo mv /tmp/_server_tzfile.dat "$DST_DIR/$(basename "$SRC")"
100+
ls -l "$DST_DIR"
101+
echo "ORA_TZFILE=$DST_DIR/$(basename "$SRC")" >> $GITHUB_ENV
91102
- name: Bundle install
92103
run: |
93104
bundle install --jobs 4 --retry 3

.github/workflows/truffleruby.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,17 @@ jobs:
6363
- name: Create database user
6464
run: |
6565
./ci/setup_accounts.sh
66+
- name: Force client TZ data to match server (ORA_TZFILE workaround)
67+
run: |
68+
ORACLE_CONTAINER=$(docker ps --filter "ancestor=gvenzl/oracle-free" -q)
69+
SRC=$(docker exec "$ORACLE_CONTAINER" bash -c 'ls $ORACLE_HOME/oracore/zoneinfo/timezlrg_*.dat 2>/dev/null | head -1')
70+
echo "Server TZ file: $SRC"
71+
DST_DIR="$ORACLE_HOME/oracore/zoneinfo"
72+
sudo mkdir -p "$DST_DIR"
73+
docker cp "$ORACLE_CONTAINER":"$SRC" /tmp/_server_tzfile.dat
74+
sudo mv /tmp/_server_tzfile.dat "$DST_DIR/$(basename "$SRC")"
75+
ls -l "$DST_DIR"
76+
echo "ORA_TZFILE=$DST_DIR/$(basename "$SRC")" >> $GITHUB_ENV
6677
- name: Bundle install
6778
run: |
6879
bundle install --jobs 4 --retry 3

0 commit comments

Comments
 (0)