fix(eks): pin default k3s image to v1.33.10-k3s1 to avoid storage backend regression #672
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' | |
| - 'compatibility-tests/**' | |
| - '.github/workflows/compatibility.yml' | |
| permissions: | |
| contents: read | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| build: | |
| name: Build floci image | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 20 | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: actions/setup-java@v5 | |
| with: | |
| java-version: '25' | |
| distribution: 'temurin' | |
| cache: maven | |
| - name: Build JVM artifact | |
| run: mvn clean package -DskipTests -q | |
| - uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0 | |
| - name: Build Docker image | |
| uses: docker/build-push-action@bcafcacb16a39f128d818304e6c9c0c18556b85f # v7.1.0 | |
| 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@v7 | |
| 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 # improving execution time | |
| - sdk-test-go | |
| - sdk-test-awscli | |
| - compat-cdk | |
| - compat-terraform | |
| - compat-opentofu | |
| steps: | |
| - name: Download floci image | |
| uses: actions/download-artifact@v8 | |
| 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_BASE_URL=http://floci:4566 \ | |
| -e FLOCI_SERVICES_DOCKER_NETWORK=compat-net \ | |
| -e FLOCI_HOSTNAME=floci \ | |
| -e FLOCI_SERVICES_LAMBDA_HOT_RELOAD_ENABLED=true \ | |
| 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 repository | |
| uses: actions/checkout@v6 | |
| with: | |
| sparse-checkout: compatibility-tests | |
| - uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0 | |
| - name: Build test image | |
| uses: docker/build-push-action@bcafcacb16a39f128d818304e6c9c0c18556b85f # v7.1.0 | |
| with: | |
| context: compatibility-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 | |
| id: tests | |
| run: | | |
| mkdir -p test-results | |
| FLOCI_IP=$(docker inspect -f '{{(index .NetworkSettings.Networks "compat-net").IPAddress}}' floci) | |
| DOCKER_GID=$(stat -c '%g' /var/run/docker.sock) | |
| EXTRA_ARGS="" | |
| # compat-cdk needs Docker access for CDK's DockerImageFunction (docker build + push to emulated ECR) | |
| if [ "${{ matrix.test }}" = "compat-cdk" ]; then | |
| EXTRA_ARGS="-v /var/run/docker.sock:/var/run/docker.sock --group-add $DOCKER_GID" | |
| fi | |
| # sdk-test-java: mount a host-side directory so the Docker daemon can | |
| # bind-mount hot-reload code paths that are written by the test container. | |
| if [ "${{ matrix.test }}" = "sdk-test-java" ]; then | |
| mkdir -p /tmp/floci-hot-reload | |
| EXTRA_ARGS="$EXTRA_ARGS -v /tmp/floci-hot-reload:/tmp/floci-hot-reload -e HOT_RELOAD_BASE_DIR=/tmp/floci-hot-reload" | |
| fi | |
| docker run --rm --network compat-net \ | |
| -e FLOCI_ENDPOINT=http://floci:4566 \ | |
| -v "$(pwd)/test-results:/results" \ | |
| --add-host "sdk-vhost-bucket.floci:${FLOCI_IP}" \ | |
| $EXTRA_ARGS \ | |
| compat-${{ matrix.test }} | |
| - name: Generate test summary | |
| if: always() && steps.tests.outcome != 'skipped' | |
| uses: test-summary/action@31493c76ec9e7aa675f1585d3ed6f1da69269a86 # v2 | |
| with: | |
| paths: test-results/*.xml | |
| - name: Dump floci logs | |
| if: failure() | |
| run: docker logs floci |