Skip to content

Add two new configuration options for periodic retained WAL size check in scaled down mode #164

Add two new configuration options for periodic retained WAL size check in scaled down mode

Add two new configuration options for periodic retained WAL size check in scaled down mode #164

Workflow file for this run

name: TS tests
on:
push:
branches: ['main']
paths-ignore:
- 'website/**'
- '**/README.md'
- 'integration-tests/**'
pull_request:
paths-ignore:
- 'website/**'
- '**/README.md'
- 'integration-tests/**'
permissions:
contents: read
packages: write
jobs:
list_ts_packages:
name: List TS packages
runs-on: ubuntu-latest
outputs:
directories: ${{ steps.list_ts_packages.outputs.directories }}
steps:
- uses: actions/checkout@v4
- run: echo "directories=`find packages/ -mindepth 1 -maxdepth 1 -type d -exec test -e '{}'/tsconfig.json \; -print | jq -R -s -c 'split("\n")[:-1]'`" >> $GITHUB_OUTPUT
id: list_ts_packages
list_examples:
name: List examples
runs-on: ubuntu-latest
outputs:
example_names: ${{ steps.list_examples.outputs.example_names }}
steps:
- uses: actions/checkout@v4
- run: echo "example_names=$(find examples/ -mindepth 1 -maxdepth 2 -type f -name package.json | xargs dirname | jq -R -s -c 'split("\n")[:-1]')" >> $GITHUB_OUTPUT
id: list_examples
check_packages:
name: Build and typecheck ${{ matrix.package_dir }}
needs: [list_ts_packages]
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
package_dir: ${{ fromJson(needs.list_ts_packages.outputs.directories) }}
defaults:
run:
working-directory: ${{ matrix.package_dir }}
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4
with:
node-version-file: '.tool-versions'
cache: 'pnpm'
- run: pnpm install --frozen-lockfile
- run: pnpm -r --filter "$(jq '.name' -r package.json)^..." build
- run: pnpm run typecheck
ensure_sync_service_image:
uses: ./.github/workflows/ensure_sync_service_image.yml
build_and_test_packages:
name: 'Test ${{ matrix.package_dir }} w/ sync-service'
needs: [list_ts_packages, ensure_sync_service_image]
runs-on: ubuntu-latest
timeout-minutes: 10
strategy:
fail-fast: false
matrix:
package_dir: ${{ fromJson(needs.list_ts_packages.outputs.directories) }}
defaults:
run:
working-directory: ${{ matrix.package_dir }}
env:
ELECTRIC_IMAGE: ${{ needs.ensure_sync_service_image.outputs.image }}
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4
with:
node-version-file: '.tool-versions'
cache: pnpm
- name: Install Node dependencies
run: pnpm install --frozen-lockfile
- name: Build Node dependencies, if any
run: pnpm -r --filter "$(jq '.name' -r package.json)^..." build
- name: Run Postgres, Electric and nginx for the subsequent test suite
working-directory: packages/sync-service/dev
run: |
docker compose -f docker-compose.yml -f docker-compose-electric.yml up --wait postgres electric nginx
- name: Run tests with coverage
run: pnpm run coverage --run
- name: Upload coverage reports to CodeCov
uses: codecov/codecov-action@ad3126e916f78f00edff4ed0317cf185271ccc2d
with:
token: ${{ secrets.CODECOV_TOKEN }}
flags: typescript,unit-tests,${{ matrix.package_dir }}
- name: Upload test results to CodeCov
uses: codecov/test-results-action@f2dba722c67b86c6caa034178c6e4d35335f6706
if: ${{ !cancelled() }}
env:
DUMMY_COMMIT_SHA: ${{ github.event.pull_request.head.sha || github.sha }}-dummy
with:
token: ${{ secrets.CODECOV_TOKEN }}
fail_ci_if_error: true
flags: typescript,unit-tests,${{ matrix.package_dir }}
files: ./junit/test-report.junit.xml
check_and_build_examples:
name: Check and build ${{ matrix.example_folder }}
needs: [list_examples, build_and_test_packages]
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
example_folder: ${{ fromJson(needs.list_examples.outputs.example_names) }}
defaults:
run:
working-directory: ${{ matrix.example_folder }}
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4
with:
node-version-file: '.tool-versions'
cache: pnpm
- run: pnpm install --frozen-lockfile
- run: pnpm -r --filter "$(jq '.name' -r package.json)^..." build
- run: pnpm --if-present run prepare
- run: pnpm --if-present run typecheck
- run: pnpm --if-present run build
- run: pnpm --if-present run test --run