# Testinfra Integration Tests ## Prerequisites - Docker - Packer - yq - Python deps: ```sh pip3 install boto3 boto3-stubs[essential] docker ec2instanceconnectcli pytest pytest-testinfra[paramiko,docker] requests ``` ## Running locally ```sh set -euo pipefail # cwd: repo root # docker must be running # build extensions & pg binaries docker buildx build \ $(yq 'to_entries | map(select(.value|type == "!!str")) | map(" --build-arg " + .key + "=" + .value) | join("")' 'ansible/vars.yml') \ --target=extensions \ --tag=supabase/postgres:extensions \ --platform=linux/arm64 \ --load \ . mkdir -p /tmp/extensions ansible/files/extensions docker save supabase/postgres:extensions | tar xv -C /tmp/extensions for layer in /tmp/extensions/*/layer.tar; do tar xvf "$layer" -C ansible/files/extensions --strip-components 1 done docker buildx build \ --build-arg ubuntu_release=focal \ --build-arg ubuntu_release_no=20.04 \ --build-arg postgresql_major=15 \ --build-arg postgresql_release=15.1 \ --build-arg CPPFLAGS=-mcpu=neoverse-n1 \ --build-arg CFLAGS=-g3 --file=docker/Dockerfile \ --target=pg-deb \ --tag=supabase/postgres:deb \ --platform=linux/arm64 \ --load \ . mkdir -p /tmp/build ansible/files/postgres docker save supabase/postgres:deb | tar xv -C /tmp/build for layer in /tmp/build/*/layer.tar; do tar xvf "$layer" -C ansible/files/postgres --strip-components 1 done # build AMI AWS_PROFILE=supabase-dev packer build \ -var-file=development-arm.vars.pkr.hcl \ -var-file=common.vars.pkr.hcl \ -var "ansible_arguments=" \ -var "postgres-version=ci-ami-test" \ -var "region=ap-southeast-1" \ -var 'ami_regions=["ap-southeast-1"]' \ -var "force-deregister=true" \ amazon-arm64.pkr.hcl # run tests AWS_PROFILE=supabase-dev pytest -vv -s testinfra/test_*.py ```