fix: resolve compatibility test failures across multiple services #16
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' | |
| - '.mvn/**' | |
| - 'mvnw' | |
| - 'mvnw.cmd' | |
| - 'Dockerfile' | |
| - 'Dockerfile.jvm-package' | |
| - 'Dockerfile.native' | |
| - 'Dockerfile.native-package' | |
| - 'docker-compose.yml' | |
| - 'docker-compose-test.yml' | |
| - '.github/workflows/compatibility.yml' | |
| permissions: | |
| contents: read | |
| jobs: | |
| build: | |
| name: Build floci image | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-java@v4 | |
| with: | |
| java-version: '25' | |
| distribution: 'temurin' | |
| cache: maven | |
| - name: Build JVM artifact | |
| run: mvn clean package -DskipTests -q | |
| - uses: docker/setup-buildx-action@v3 | |
| - name: Build Docker image | |
| uses: docker/build-push-action@v6 | |
| with: | |
| context: . | |
| file: Dockerfile.jvm-package | |
| tags: floci:test | |
| outputs: type=docker,dest=/tmp/floci-image.tar | |
| cache-from: type=gha,scope=floci | |
| cache-to: type=gha,scope=floci,mode=max | |
| - name: Compress image | |
| run: gzip /tmp/floci-image.tar | |
| - name: Upload floci image | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: floci-image | |
| path: /tmp/floci-image.tar.gz | |
| retention-days: 1 | |
| compat-test: | |
| name: ${{ matrix.test }} | |
| needs: build | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 20 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| test: | |
| - sdk-test-node | |
| - sdk-test-python | |
| - sdk-test-java | |
| - sdk-test-go | |
| - sdk-test-rust | |
| - sdk-test-awscli | |
| - compat-cdk | |
| - compat-terraform | |
| - compat-opentofu | |
| steps: | |
| - name: Download floci image | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: floci-image | |
| path: /tmp | |
| - name: Load floci image | |
| run: gunzip -c /tmp/floci-image.tar.gz | docker load | |
| - name: Create Docker network | |
| run: docker network create compat-net | |
| - name: Start floci | |
| run: | | |
| DOCKER_GID=$(stat -c '%g' /var/run/docker.sock) | |
| docker run -d --name floci --network compat-net \ | |
| -p 4566:4566 \ | |
| -v /var/run/docker.sock:/var/run/docker.sock \ | |
| --group-add "$DOCKER_GID" \ | |
| -e FLOCI_SERVICES_DOCKER_NETWORK=compat-net \ | |
| -e FLOCI_HOSTNAME=floci \ | |
| floci:test | |
| - name: Wait for floci to be ready | |
| run: timeout 60 bash -c 'until curl -sf http://localhost:4566/ >/dev/null 2>&1; do sleep 1; done' | |
| - name: Checkout compatibility tests | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: hectorvent/floci-compatibility-tests | |
| path: compat-tests | |
| - uses: docker/setup-buildx-action@v3 | |
| - name: Build test image | |
| uses: docker/build-push-action@v6 | |
| with: | |
| context: compat-tests/${{ matrix.test }} | |
| load: true | |
| tags: compat-${{ matrix.test }} | |
| cache-from: type=gha,scope=${{ matrix.test }} | |
| cache-to: type=gha,scope=${{ matrix.test }},mode=max | |
| - name: Run tests | |
| run: | | |
| FLOCI_IP=$(docker inspect -f '{{(index .NetworkSettings.Networks "compat-net").IPAddress}}' floci) | |
| docker run --rm --network compat-net \ | |
| -e FLOCI_ENDPOINT=http://floci:4566 \ | |
| --add-host "sdk-vhost-bucket.floci:${FLOCI_IP}" \ | |
| compat-${{ matrix.test }} | |
| - name: Dump floci logs | |
| if: failure() | |
| run: docker logs floci |