Make dev container bind mount work from git worktrees #4478
Workflow file for this run
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: | |
| CI: true | |
| 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: Force client TZ data to match server (ORA_TZFILE workaround) | |
| run: | | |
| ORACLE_CONTAINER=$(docker ps --filter "ancestor=gvenzl/oracle-free" -q) | |
| SRC=$(docker exec "$ORACLE_CONTAINER" bash -c 'ls $ORACLE_HOME/oracore/zoneinfo/timezlrg_*.dat 2>/dev/null | head -1') | |
| echo "Server TZ file: $SRC" | |
| DST_DIR="$ORACLE_HOME/oracore/zoneinfo" | |
| sudo mkdir -p "$DST_DIR" | |
| docker cp "$ORACLE_CONTAINER":"$SRC" /tmp/_server_tzfile.dat | |
| sudo mv /tmp/_server_tzfile.dat "$DST_DIR/$(basename "$SRC")" | |
| ls -l "$DST_DIR" | |
| echo "ORA_TZFILE=$DST_DIR/$(basename "$SRC")" >> $GITHUB_ENV | |
| - 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 |