Skip to content

Add TCP keepalive options for database connections (#4748) #8072

Add TCP keepalive options for database connections (#4748)

Add TCP keepalive options for database connections (#4748) #8072

name: Lux Integration Tests
on:
push:
branches: ['main']
paths:
- '.github/workflows/integration_tests.yml'
- '.tool-versions'
- 'integration-tests/**'
- 'packages/electric-telemetry/**'
- 'packages/sync-service/**'
pull_request:
paths:
- '.github/workflows/integration_tests.yml'
- '.tool-versions'
- 'integration-tests/**'
- 'packages/electric-telemetry/**'
- 'packages/sync-service/**'
permissions:
contents: read
jobs:
build:
name: Run Lux integration tests
runs-on: blacksmith-4vcpu-ubuntu-2404
defaults:
run:
working-directory: integration-tests
env:
MIX_ENV: dev
MIX_TARGET: application
steps:
- uses: actions/checkout@v4
- uses: erlef/setup-beam@v1
id: setup_beam
with:
version-type: strict
version-file: '.tool-versions'
- name: Cache dependencies
uses: actions/cache@v4
with:
path: packages/sync-service/deps
key: "${{ runner.os }}-${{ hashFiles('.tool-versions') }}-sync-service-deps-${{ env.MIX_TARGET }}-${{ env.MIX_ENV }}-${{ hashFiles('packages/sync-service/mix.lock') }}"
restore-keys: |
${{ runner.os }}-${{ hashFiles('.tool-versions') }}-sync-service-deps-${{ env.MIX_TARGET }}-${{ env.MIX_ENV }}-${{ hashFiles('packages/sync-service/mix.lock') }}
${{ runner.os }}-${{ hashFiles('.tool-versions') }}-sync-service-deps-${{ env.MIX_TARGET }}-${{ env.MIX_ENV }}-
${{ runner.os }}-${{ hashFiles('.tool-versions') }}-sync-service-deps-
- name: Cache compiled code
uses: actions/cache@v4
with:
path: |
packages/sync-service/_build/*/lib
!packages/sync-service/_build/*/lib/electric
key: "${{ runner.os }}-${{ hashFiles('.tool-versions') }}-sync-service-build-${{ env.MIX_TARGET }}-${{ env.MIX_ENV }}-${{ hashFiles('packages/sync-service/mix.lock') }}"
restore-keys: |
${{ runner.os }}-${{ hashFiles('.tool-versions') }}-sync-service-build-${{ env.MIX_TARGET }}-${{ env.MIX_ENV }}-${{ hashFiles('packages/sync-service/mix.lock') }}
${{ runner.os }}-${{ hashFiles('.tool-versions') }}-sync-service-build-${{ env.MIX_TARGET }}-${{ env.MIX_ENV }}-
${{ runner.os }}-${{ hashFiles('.tool-versions') }}-sync-service-build-
- name: Install dependencies
run: mix do deps.get + deps.compile
working-directory: packages/sync-service
- name: Compile
run: mix compile
working-directory: packages/sync-service
- name: Cache lux
uses: actions/cache@v4
with:
path: integration-tests/lux
key: '${{ runner.os }}-lux-629e45c-${{ steps.setup_beam.outputs.otp-version }}'
restore-keys: |
${{ runner.os }}-lux-629e45c-${{ steps.setup_beam.outputs.otp-version }}
${{ runner.os }}-lux-629e45c
- name: Setup lux
run: make
- name: Run integration tests
id: tests
run: ./run.sh
- name: Upload lux logs
uses: actions/upload-artifact@v4
if: ${{ failure() && steps.tests.outcome == 'failure' }}
with:
name: lux_logs
path: integration-tests/**/lux_logs/run_*