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