Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 3 additions & 6 deletions .github/workflows/build_postgres_image.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ on:
jobs:
build_image:
name: 'Build postgres:${{ matrix.postgres_version }}-alpine-logical'
runs-on: ubuntu-latest
runs-on: blacksmith-2vcpu-ubuntu-2404

permissions:
packages: write
Expand All @@ -34,8 +34,7 @@ jobs:
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Set up buildx for advanced Docker caching
uses: docker/setup-buildx-action@v3
- uses: useblacksmith/setup-docker-builder@v1

- name: Prepare the Dockerfile
run: |
Expand All @@ -45,10 +44,8 @@ jobs:
' > Dockerfile

- name: Build and push
uses: docker/build-push-action@v6
uses: useblacksmith/build-push-action@v2
with:
context: .
push: true
tags: '${{ env.IMAGE }}:${{ matrix.postgres_version }}-alpine-logical'
cache-from: type=gha
cache-to: type=gha,mode=max
2 changes: 1 addition & 1 deletion .github/workflows/electric_telemetry_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ permissions:
jobs:
build_and_test:
name: Build and test electric-telemetry
runs-on: ubuntu-latest
runs-on: blacksmith-4vcpu-ubuntu-2404
defaults:
run:
working-directory: packages/electric-telemetry
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/elixir_check_formatting.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ jobs:
matrix:
package: [sync-service, elixir-client, electric-telemetry]
name: Check Elixir formatting and compilation issues
runs-on: ubuntu-latest
runs-on: blacksmith-4vcpu-ubuntu-2404
defaults:
run:
working-directory: packages/${{ matrix.package }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/elixir_client_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ permissions:
jobs:
build_and_test:
name: Build and test elixir-client
runs-on: ubuntu-latest
runs-on: blacksmith-4vcpu-ubuntu-2404
defaults:
run:
working-directory: packages/elixir-client
Expand Down
9 changes: 3 additions & 6 deletions .github/workflows/ensure_sync_service_image.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ on:

jobs:
build_image:
runs-on: ubuntu-latest
runs-on: blacksmith-4vcpu-ubuntu-2404

# Make sure that all workflows calling this with the same tag will queue here.
# Only the first workflow to reach this point will trigger a new image build, the other
Expand Down Expand Up @@ -61,20 +61,17 @@ jobs:
echo "exists=false" >> $GITHUB_OUTPUT
fi

- name: Set up buildx for advanced Docker caching
uses: docker/setup-buildx-action@v3
- uses: useblacksmith/setup-docker-builder@v1

- name: Build and push if missing
if: steps.exists.outputs.exists != 'true'
uses: docker/build-push-action@v6
uses: useblacksmith/build-push-action@v2
with:
context: packages/sync-service
build-contexts: |
electric-telemetry=packages/electric-telemetry
push: true
tags: ${{ env.IMAGE }}:${{ env.TAG }}
cache-from: type=gha
cache-to: type=gha,mode=max

- name: Output image ref
id: out
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/integration_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ permissions:
jobs:
build:
name: Run Lux integration tests
runs-on: ubuntu-latest
runs-on: blacksmith-4vcpu-ubuntu-2404
defaults:
run:
working-directory: integration-tests
Expand Down
16 changes: 7 additions & 9 deletions .github/workflows/sync_service_dockerhub_image.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ on:
jobs:
derive_build_vars:
name: Derive build variables from the source code
runs-on: ubuntu-latest
runs-on: blacksmith-2vcpu-ubuntu-2404
outputs:
short_commit_sha: ${{ steps.vars.outputs.short_commit_sha }}
electric_version: ${{ steps.vars.outputs.electric_version }}
Expand Down Expand Up @@ -44,16 +44,16 @@ jobs:
include:
- platform: linux/amd64
platform_id: amd64
runner: ubuntu-latest
runner: blacksmith-4vcpu-ubuntu-2404
- platform: linux/arm64/v8
platform_id: arm64
runner: ubuntu-24.04-arm
runner: blacksmith-4vcpu-ubuntu-2404-arm
runs-on: ${{ matrix.runner }}
needs: [derive_build_vars]
steps:
- uses: actions/checkout@v4

- uses: docker/setup-buildx-action@v3
- uses: useblacksmith/setup-docker-builder@v1

- uses: docker/login-action@v3
with:
Expand All @@ -63,7 +63,7 @@ jobs:

- name: Build and push by digest
id: build
uses: docker/build-push-action@v6
uses: useblacksmith/build-push-action@v2
with:
context: packages/sync-service
build-contexts: |
Expand All @@ -78,8 +78,6 @@ jobs:
tags: |
electricsql/electric
electricsql/electric-canary
cache-from: type=gha
cache-to: type=gha,mode=max

# Save the digest so the merge job can find both platform images
- name: Export digest
Expand All @@ -94,14 +92,14 @@ jobs:

publish_tagged_image:
needs: [derive_build_vars, build_and_push_image]
runs-on: ubuntu-latest
runs-on: blacksmith-2vcpu-ubuntu-2404
steps:
- uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}

- uses: docker/setup-buildx-action@v3
- uses: useblacksmith/setup-docker-builder@v1

- uses: actions/download-artifact@v4
with:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/sync_service_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ permissions:
jobs:
build_and_test:
name: 'Build and test sync-service, pg${{ matrix.postgres_version }}'
runs-on: ubuntu-latest
runs-on: blacksmith-4vcpu-ubuntu-2404
defaults:
run:
working-directory: packages/sync-service
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/ts_check_formatting.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ permissions:
jobs:
ts_check_formatting:
name: Check formatting of TS packages, examples and website
runs-on: ubuntu-latest
runs-on: blacksmith-2vcpu-ubuntu-2404
steps:
- name: Checkout
uses: actions/checkout@v4
Expand Down
37 changes: 16 additions & 21 deletions .github/workflows/ts_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,34 +18,29 @@ permissions:
packages: write

jobs:
list_ts_packages:
name: List TS packages
runs-on: ubuntu-latest
list_ts_packages_and_examples:
name: List TS packages and examples
runs-on: blacksmith-2vcpu-ubuntu-2404
outputs:
directories: ${{ steps.list_ts_packages.outputs.directories }}
package_directories: ${{ steps.list_ts_packages.outputs.directories }}
example_names: ${{ steps.list_examples.outputs.example_names }}
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:
typecheck_packages:
name: Build and typecheck ${{ matrix.package_dir }}
needs: [list_ts_packages]
runs-on: ubuntu-latest
needs: [list_ts_packages_and_examples]
runs-on: blacksmith-4vcpu-ubuntu-2404
strategy:
fail-fast: false
matrix:
package_dir: ${{ fromJson(needs.list_ts_packages.outputs.directories) }}
package_dir: ${{ fromJson(needs.list_ts_packages_and_examples.outputs.package_directories) }}
defaults:
run:
working-directory: ${{ matrix.package_dir }}
Expand All @@ -65,13 +60,13 @@ jobs:

build_and_test_packages:
name: 'Test ${{ matrix.package_dir }} w/ sync-service'
needs: [list_ts_packages, ensure_sync_service_image]
runs-on: ubuntu-latest
needs: [list_ts_packages_and_examples, ensure_sync_service_image]
runs-on: blacksmith-4vcpu-ubuntu-2404
timeout-minutes: 10
strategy:
fail-fast: false
matrix:
package_dir: ${{ fromJson(needs.list_ts_packages.outputs.directories) }}
package_dir: ${{ fromJson(needs.list_ts_packages_and_examples.outputs.package_directories) }}
defaults:
run:
working-directory: ${{ matrix.package_dir }}
Expand Down Expand Up @@ -120,12 +115,12 @@ jobs:

check_and_build_examples:
name: Check and build ${{ matrix.example_folder }}
needs: [list_examples, build_and_test_packages]
runs-on: ubuntu-latest
needs: [list_ts_packages_and_examples, build_and_test_packages]
runs-on: blacksmith-2vcpu-ubuntu-2404
strategy:
fail-fast: false
matrix:
example_folder: ${{ fromJson(needs.list_examples.outputs.example_names) }}
example_folder: ${{ fromJson(needs.list_ts_packages_and_examples.outputs.example_names) }}
defaults:
run:
working-directory: ${{ matrix.example_folder }}
Expand Down