Merge pull request #2691 from yahonda/partial-updates-drop-rescue #4089
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: test | |
| on: | |
| push: | |
| pull_request: | |
| schedule: | |
| - cron: "0 0 * * *" | |
| workflow_dispatch: | |
| jobs: | |
| build: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| ruby: [ | |
| '4.0', | |
| '3.4', | |
| '3.3', | |
| 'jruby-10.1.0.0', | |
| ] | |
| include: | |
| - ruby: 'jruby-10.1.0.0' | |
| jruby_opts: '--dev' | |
| env: | |
| JRUBY_OPTS: ${{ matrix.jruby_opts }} | |
| NLS_LANG: AMERICAN_AMERICA.AL32UTF8 | |
| TNS_ADMIN: ./ci/network/admin | |
| DATABASE_NAME: FREEPDB1 | |
| TZ: Europe/Riga | |
| DATABASE_SYS_PASSWORD: Oracle18 | |
| DATABASE_HOST: localhost | |
| DATABASE_PORT: 1521 | |
| 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 }} | |
| rubygems: latest | |
| - 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/instantclient-basic-linuxx64.zip | |
| wget -q https://download.oracle.com/otn_software/linux/instantclient/instantclient-sdk-linuxx64.zip | |
| wget -q https://download.oracle.com/otn_software/linux/instantclient/instantclient-sqlplus-linuxx64.zip | |
| - name: Install Oracle instant client | |
| run: | | |
| sudo unzip -q instantclient-basic-linuxx64.zip -d /opt/oracle/ | |
| sudo unzip -qo instantclient-sdk-linuxx64.zip -d /opt/oracle/ | |
| sudo unzip -qo instantclient-sqlplus-linuxx64.zip -d /opt/oracle/ | |
| ORACLE_HOME=$(find /opt/oracle -name "instantclient_*" -type d | head -1) | |
| echo "ORACLE_HOME=$ORACLE_HOME" >> $GITHUB_ENV | |
| echo "LD_LIBRARY_PATH=$ORACLE_HOME" >> $GITHUB_ENV | |
| echo "$ORACLE_HOME" >> $GITHUB_PATH | |
| - name: Install JDBC Driver | |
| run: | | |
| cp "$ORACLE_HOME/ojdbc17.jar" ./lib/ojdbc17.jar | |
| - name: Enable Oracle native network encryption in the server container | |
| run: | | |
| ORACLE_CONTAINER=$(docker ps --filter "ancestor=gvenzl/oracle-free" -q) | |
| docker exec -u oracle "$ORACLE_CONTAINER" bash -c " | |
| SQLNET=\$ORACLE_HOME/network/admin/sqlnet.ora | |
| grep -q ENCRYPTION_SERVER \$SQLNET 2>/dev/null || echo 'SQLNET.ENCRYPTION_SERVER = REQUESTED' >> \$SQLNET | |
| grep -q ENCRYPTION_TYPES_SERVER \$SQLNET 2>/dev/null || echo 'SQLNET.ENCRYPTION_TYPES_SERVER = (AES256)' >> \$SQLNET | |
| " | |
| - name: Create database user | |
| run: | | |
| ./ci/setup_accounts.sh | |
| - name: Bundle install | |
| run: | | |
| bundle install --jobs 4 --retry 3 | |
| - name: Show Gemfile.lock | |
| run: | | |
| cat Gemfile.lock | |
| - name: Run RSpec | |
| run: | | |
| bundle exec rspec | |
| - name: Run bug report templates | |
| run: | | |
| cd guides/bug_report_templates | |
| ruby active_record_gem.rb | |
| ruby active_record_gem_spec.rb |