From ca83232cd64dc3bac80f1d084878784625c612f7 Mon Sep 17 00:00:00 2001 From: Yasuo Honda Date: Sun, 12 Apr 2026 20:13:33 +0900 Subject: [PATCH] Move development Ruby builds to daily cron workflows Remove ruby-head, ruby-debug, truffleruby, and truffleruby-head from test.yml and test_11g.yml so they do not run on every push/PR. Add dedicated daily cron workflows instead: - ruby_head.yml: ruby-head, ruby-debug - jruby_head.yml: jruby-head - truffleruby.yml: truffleruby, truffleruby-head Co-Authored-By: Claude Opus 4.6 (1M context) --- .github/workflows/jruby_head.yml | 69 ++++++++++++++++++++++++++++++ .github/workflows/ruby_head.yml | 69 ++++++++++++++++++++++++++++++ .github/workflows/test.yml | 10 +---- .github/workflows/test_11g.yml | 10 +---- .github/workflows/truffleruby.yml | 70 +++++++++++++++++++++++++++++++ 5 files changed, 210 insertions(+), 18 deletions(-) create mode 100644 .github/workflows/jruby_head.yml create mode 100644 .github/workflows/ruby_head.yml create mode 100644 .github/workflows/truffleruby.yml diff --git a/.github/workflows/jruby_head.yml b/.github/workflows/jruby_head.yml new file mode 100644 index 00000000..423d87a7 --- /dev/null +++ b/.github/workflows/jruby_head.yml @@ -0,0 +1,69 @@ +name: jruby_head + +on: + schedule: + - cron: "0 1 * * *" # daily at 1:00 UTC + +jobs: + build: + + runs-on: ubuntu-latest + continue-on-error: true + strategy: + matrix: + ruby: [ + jruby-head + ] + env: + ORACLE_HOME: /opt/oracle/instantclient_23_26 + LD_LIBRARY_PATH: /opt/oracle/instantclient_23_26 + NLS_LANG: AMERICAN_AMERICA.AL32UTF8 + TNS_ADMIN: ./ci/network/admin + DATABASE_NAME: FREEPDB1 + TZ: Europe/Riga + DATABASE_SYS_PASSWORD: Oracle18 + + services: + oracle: + image: gvenzl/oracle-free:latest + ports: + - 1521:1521 + env: + TZ: Europe/Riga + ORACLE_PASSWORD: Oracle18 + options: >- + --health-cmd healthcheck.sh + --health-interval 10s + --health-timeout 5s + --health-retries 10 + + steps: + - uses: actions/checkout@v6 + - name: Set up Ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: ${{ matrix.ruby }} + - name: Create symbolic link for libaio library compatibility + run: | + sudo ln -s /usr/lib/x86_64-linux-gnu/libaio.so.1t64 /usr/lib/x86_64-linux-gnu/libaio.so.1 + - name: Download Oracle instant client + run: | + wget -q https://download.oracle.com/otn_software/linux/instantclient/2326100/instantclient-basic-linux.x64-23.26.1.0.0.zip + wget -q https://download.oracle.com/otn_software/linux/instantclient/2326100/instantclient-sqlplus-linux.x64-23.26.1.0.0.zip + - name: Install Oracle instant client + run: | + sudo unzip -q instantclient-basic-linux.x64-23.26.1.0.0.zip -d /opt/oracle/ + sudo unzip -qo instantclient-sqlplus-linux.x64-23.26.1.0.0.zip -d /opt/oracle/ + echo "/opt/oracle/instantclient_23_26" >> $GITHUB_PATH + - name: Install JDBC Driver + run: | + wget -q https://download.oracle.com/otn-pub/otn_software/jdbc/233/ojdbc11.jar -O ./lib/ojdbc11.jar + - name: Create database user + run: | + ./ci/setup_accounts.sh + - name: Bundle install + run: | + bundle install --jobs 4 --retry 3 + - name: Run RSpec + run: | + RUBYOPT=-w bundle exec rspec diff --git a/.github/workflows/ruby_head.yml b/.github/workflows/ruby_head.yml new file mode 100644 index 00000000..4e0d8ae7 --- /dev/null +++ b/.github/workflows/ruby_head.yml @@ -0,0 +1,69 @@ +name: ruby_head + +on: + schedule: + - cron: "0 0 * * *" # daily at midnight UTC + +jobs: + build: + + runs-on: ubuntu-latest + continue-on-error: true + strategy: + matrix: + ruby: [ + ruby-head, + ruby-debug + ] + env: + ORACLE_HOME: /opt/oracle/instantclient_23_26 + LD_LIBRARY_PATH: /opt/oracle/instantclient_23_26 + NLS_LANG: AMERICAN_AMERICA.AL32UTF8 + TNS_ADMIN: ./ci/network/admin + DATABASE_NAME: FREEPDB1 + TZ: Europe/Riga + DATABASE_SYS_PASSWORD: Oracle18 + + services: + oracle: + image: gvenzl/oracle-free:latest + ports: + - 1521:1521 + env: + TZ: Europe/Riga + ORACLE_PASSWORD: Oracle18 + options: >- + --health-cmd healthcheck.sh + --health-interval 10s + --health-timeout 5s + --health-retries 10 + + steps: + - uses: actions/checkout@v6 + - name: Set up Ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: ${{ matrix.ruby }} + - name: Create symbolic link for libaio library compatibility + run: | + sudo ln -s /usr/lib/x86_64-linux-gnu/libaio.so.1t64 /usr/lib/x86_64-linux-gnu/libaio.so.1 + - name: Download Oracle instant client + run: | + wget -q https://download.oracle.com/otn_software/linux/instantclient/2326100/instantclient-basic-linux.x64-23.26.1.0.0.zip + wget -q https://download.oracle.com/otn_software/linux/instantclient/2326100/instantclient-sdk-linux.x64-23.26.1.0.0.zip + wget -q https://download.oracle.com/otn_software/linux/instantclient/2326100/instantclient-sqlplus-linux.x64-23.26.1.0.0.zip + - name: Install Oracle instant client + run: | + sudo unzip -q instantclient-basic-linux.x64-23.26.1.0.0.zip -d /opt/oracle/ + sudo unzip -qo instantclient-sdk-linux.x64-23.26.1.0.0.zip -d /opt/oracle/ + sudo unzip -qo instantclient-sqlplus-linux.x64-23.26.1.0.0.zip -d /opt/oracle/ + echo "/opt/oracle/instantclient_23_26" >> $GITHUB_PATH + - name: Create database user + run: | + ./ci/setup_accounts.sh + - name: Bundle install + run: | + bundle install --jobs 4 --retry 3 + - name: Run RSpec + run: | + RUBYOPT=-w bundle exec rspec diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 98e1e553..c8859e32 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -15,11 +15,7 @@ jobs: '4.0', '3.4', '3.3', - '3.2', - ruby-head, - ruby-debug, - truffleruby, - truffleruby-head + '3.2' ] env: ORACLE_HOME: /opt/oracle/instantclient_23_26 @@ -70,10 +66,6 @@ jobs: - name: Create database user run: | ./ci/setup_accounts.sh - - name: Disable ActiveRecord for TruffleRuby - run: | - echo "NO_ACTIVERECORD=true" >> $GITHUB_ENV - if: "contains(matrix.ruby, 'truffleruby')" - name: Bundle install run: | bundle install --jobs 4 --retry 3 diff --git a/.github/workflows/test_11g.yml b/.github/workflows/test_11g.yml index 21002e86..f89dd233 100644 --- a/.github/workflows/test_11g.yml +++ b/.github/workflows/test_11g.yml @@ -15,11 +15,7 @@ jobs: '4.0', '3.4', '3.3', - '3.2', - ruby-head, - ruby-debug, - truffleruby, - truffleruby-head + '3.2' ] env: ORACLE_HOME: /opt/oracle/instantclient_21_15 @@ -84,10 +80,6 @@ jobs: - name: Create database user run: | ./ci/setup_accounts.sh - - name: Disable ActiveRecord for TruffleRuby - run: | - echo "NO_ACTIVERECORD=true" >> $GITHUB_ENV - if: "contains(matrix.ruby, 'truffleruby')" - name: Bundle install run: | bundle install --jobs 4 --retry 3 diff --git a/.github/workflows/truffleruby.yml b/.github/workflows/truffleruby.yml new file mode 100644 index 00000000..5f091383 --- /dev/null +++ b/.github/workflows/truffleruby.yml @@ -0,0 +1,70 @@ +name: truffleruby + +on: + schedule: + - cron: "0 2 * * *" # daily at 2:00 UTC + +jobs: + build: + + runs-on: ubuntu-latest + continue-on-error: true + strategy: + matrix: + ruby: [ + truffleruby, + truffleruby-head + ] + env: + ORACLE_HOME: /opt/oracle/instantclient_23_26 + LD_LIBRARY_PATH: /opt/oracle/instantclient_23_26 + NLS_LANG: AMERICAN_AMERICA.AL32UTF8 + TNS_ADMIN: ./ci/network/admin + DATABASE_NAME: FREEPDB1 + TZ: Europe/Riga + DATABASE_SYS_PASSWORD: Oracle18 + NO_ACTIVERECORD: true + + services: + oracle: + image: gvenzl/oracle-free:latest + ports: + - 1521:1521 + env: + TZ: Europe/Riga + ORACLE_PASSWORD: Oracle18 + options: >- + --health-cmd healthcheck.sh + --health-interval 10s + --health-timeout 5s + --health-retries 10 + + steps: + - uses: actions/checkout@v6 + - name: Set up Ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: ${{ matrix.ruby }} + - name: Create symbolic link for libaio library compatibility + run: | + sudo ln -s /usr/lib/x86_64-linux-gnu/libaio.so.1t64 /usr/lib/x86_64-linux-gnu/libaio.so.1 + - name: Download Oracle instant client + run: | + wget -q https://download.oracle.com/otn_software/linux/instantclient/2326100/instantclient-basic-linux.x64-23.26.1.0.0.zip + wget -q https://download.oracle.com/otn_software/linux/instantclient/2326100/instantclient-sdk-linux.x64-23.26.1.0.0.zip + wget -q https://download.oracle.com/otn_software/linux/instantclient/2326100/instantclient-sqlplus-linux.x64-23.26.1.0.0.zip + - name: Install Oracle instant client + run: | + sudo unzip -q instantclient-basic-linux.x64-23.26.1.0.0.zip -d /opt/oracle/ + sudo unzip -qo instantclient-sdk-linux.x64-23.26.1.0.0.zip -d /opt/oracle/ + sudo unzip -qo instantclient-sqlplus-linux.x64-23.26.1.0.0.zip -d /opt/oracle/ + echo "/opt/oracle/instantclient_23_26" >> $GITHUB_PATH + - name: Create database user + run: | + ./ci/setup_accounts.sh + - name: Bundle install + run: | + bundle install --jobs 4 --retry 3 + - name: Run RSpec + run: | + RUBYOPT=-w bundle exec rspec