fix: make PostgreSQL data plane reachable on a shared Docker network (+ compat test) #123
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: Compatibility Tests | |
| on: | |
| pull_request: | |
| paths: | |
| - 'src/**' | |
| - 'pom.xml' | |
| - 'docker/Dockerfile.native-package' | |
| - 'docker/entrypoint.sh' | |
| - 'compatibility-tests/**' | |
| - '.github/workflows/compatibility.yml' | |
| permissions: | |
| contents: read | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| build-native: | |
| name: Build native floci-az image | |
| runs-on: ubuntu-24.04-arm | |
| timeout-minutes: 30 | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: graalvm/setup-graalvm@bef4b0e916c7dd079bf60fb95d49139f67e32c5f # v1 | |
| with: | |
| java-version: '25' | |
| distribution: 'mandrel' | |
| cache: maven | |
| github-token: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Build native executable (quick build) | |
| run: ./mvnw clean package -Dnative -DskipTests -B -Dquarkus.native.additional-build-args-append="-Ob" | |
| - name: Stage native binary for packaging | |
| run: | | |
| mkdir -p native/arm64 | |
| cp target/*-runner native/arm64/ | |
| cp target/*.so native/arm64/ 2>/dev/null || true | |
| - uses: docker/setup-buildx-action@v4.1.0 | |
| - name: Build native Docker image | |
| uses: docker/build-push-action@v7 | |
| with: | |
| context: . | |
| file: docker/Dockerfile.native-package | |
| tags: floci-az:test-native | |
| outputs: type=docker,dest=/tmp/floci-az-native-image.tar | |
| cache-from: type=gha,scope=floci-az-native | |
| cache-to: type=gha,scope=floci-az-native,mode=max | |
| - name: Compress native image | |
| run: gzip /tmp/floci-az-native-image.tar | |
| - name: Upload native floci-az image | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: floci-az-native-image | |
| path: /tmp/floci-az-native-image.tar.gz | |
| retention-days: 1 | |
| native-compat-test: | |
| name: native / ${{ matrix.test }} | |
| needs: build-native | |
| runs-on: ubuntu-24.04-arm | |
| timeout-minutes: 20 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - test: sdk-test-python | |
| - test: sdk-test-java | |
| extra_env: >- | |
| -e SERVICEBUS_HOST=floci-az-servicebus-default | |
| -e SERVICEBUS_AMQPS_PORT=5671 | |
| -e SERVICEBUS_NAMESPACE=default | |
| - test: sdk-test-node | |
| - test: compat-terraform | |
| - test: compat-opentofu | |
| - test: compat-azcli | |
| steps: | |
| - name: Download native floci-az image | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: floci-az-native-image | |
| path: /tmp | |
| - name: Load native floci-az image | |
| run: gunzip -c /tmp/floci-az-native-image.tar.gz | docker load | |
| - name: Create Docker network | |
| run: docker network create compat-net | |
| - name: Start floci-az | |
| run: | | |
| docker run -d --name floci-az --network compat-net \ | |
| -v /var/run/docker.sock:/var/run/docker.sock \ | |
| -p 4577:4577 \ | |
| -e FLOCI_AZ_SERVICES_DOCKER_NETWORK=compat-net \ | |
| -e FLOCI_AZ_TLS_ENABLED=true \ | |
| -e FLOCI_AZ_HOSTNAME=floci-az \ | |
| floci-az:test-native | |
| - name: Wait for floci-az to be ready | |
| run: timeout 60 bash -c 'until curl -sf http://localhost:4577/health >/dev/null 2>&1; do sleep 1; done' | |
| - name: Checkout repository | |
| uses: actions/checkout@v6 | |
| with: | |
| sparse-checkout: compatibility-tests | |
| - uses: docker/setup-buildx-action@v4.1.0 | |
| - name: Build test image | |
| uses: docker/build-push-action@v7 | |
| with: | |
| context: compatibility-tests/${{ matrix.test }} | |
| load: true | |
| tags: compat-${{ matrix.test }} | |
| cache-from: type=gha,scope=${{ runner.os }}-${{ runner.arch }}-${{ matrix.test }} | |
| cache-to: type=gha,scope=${{ runner.os }}-${{ runner.arch }}-${{ matrix.test }},mode=max | |
| - name: Run tests | |
| id: tests | |
| run: | | |
| mkdir -p test-results | |
| docker run --rm --network compat-net \ | |
| -e FLOCI_AZ_ENDPOINT=http://floci-az:4577 \ | |
| ${{ matrix.extra_env }} \ | |
| -v "$(pwd)/test-results:/results" \ | |
| compat-${{ matrix.test }} | |
| - name: Generate test summary | |
| if: always() && steps.tests.outcome != 'skipped' | |
| uses: test-summary/action@v2 | |
| with: | |
| paths: test-results/*.xml | |
| - name: Dump floci-az logs | |
| if: failure() | |
| run: docker logs floci-az |