diff --git a/.github/workflows/testinfra-nix.yml b/.github/workflows/testinfra-nix.yml index c486dfc34..2b07e716f 100644 --- a/.github/workflows/testinfra-nix.yml +++ b/.github/workflows/testinfra-nix.yml @@ -19,6 +19,12 @@ jobs: - uses: DeterminateSystems/nix-installer-action@main + - name: Clean Nix store before build + run: | + sudo nix-collect-garbage -d || true + sudo nix-store --optimize || true + df -h / # Display available space + - name: Set PostgreSQL versions id: set-versions run: | @@ -80,13 +86,27 @@ jobs: packer init amazon-arm64-nix.pkr.hcl GIT_SHA=${{github.sha}} packer build -var "git-head-version=${GIT_SHA}" -var "packer-execution-id=${GITHUB_RUN_ID}" -var-file="development-arm.vars.pkr.hcl" -var-file="common-nix.vars.pkr.hcl" -var "ansible_arguments=" -var "postgres-version=${{ steps.random.outputs.random_string }}" -var "region=ap-southeast-1" -var 'ami_regions=["ap-southeast-1"]' -var "force-deregister=true" -var "ansible_arguments=-e postgresql_major=${POSTGRES_MAJOR_VERSION}" amazon-arm64-nix.pkr.hcl - + + - name: Clean up after AMI stage 1 + if: always() # Run even if previous steps fail + run: | + sudo nix-collect-garbage -d # Delete old generations of all profiles + sudo rm -rf /tmp/* # Clean temporary files + df -h / # Display available space + - name: Build AMI stage 2 run: | packer init stage2-nix-psql.pkr.hcl GIT_SHA=${{github.sha}} packer build -var "git-head-version=${GIT_SHA}" -var "packer-execution-id=${GITHUB_RUN_ID}" -var "postgres_major_version=${POSTGRES_MAJOR_VERSION}" -var-file="development-arm.vars.pkr.hcl" -var-file="common-nix.vars.pkr.hcl" -var "postgres-version=${{ steps.random.outputs.random_string }}" -var "region=ap-southeast-1" -var 'ami_regions=["ap-southeast-1"]' -var "force-deregister=true" -var "git_sha=${GITHUB_SHA}" stage2-nix-psql.pkr.hcl + - name: Clean up after AMI stage 2 + if: always() # Run even if previous steps fail + run: | + sudo nix-collect-garbage -d # Delete old generations of all profiles + sudo rm -rf /tmp/* # Clean temporary files + df -h / # Display available space + - name: Run tests timeout-minutes: 10 env: diff --git a/Dockerfile-15 b/Dockerfile-15 index b7f48977e..42ffc858c 100644 --- a/Dockerfile-15 +++ b/Dockerfile-15 @@ -30,7 +30,7 @@ ARG pg_repack_release=1.4.8 ARG vault_release=0.2.8 ARG groonga_release=12.0.8 ARG pgroonga_release=2.4.0 -ARG wrappers_release=0.4.5 +ARG wrappers_release=0.4.6 ARG hypopg_release=1.3.1 ARG pgvector_release=0.4.0 ARG pg_tle_release=1.3.2 diff --git a/Dockerfile-17 b/Dockerfile-17 index 83d2f265b..8bfdf39af 100644 --- a/Dockerfile-17 +++ b/Dockerfile-17 @@ -31,7 +31,7 @@ ARG pg_repack_release=1.4.8 ARG vault_release=0.2.8 ARG groonga_release=12.0.8 ARG pgroonga_release=2.4.0 -ARG wrappers_release=0.4.5 +ARG wrappers_release=0.4.6 ARG hypopg_release=1.3.1 ARG pgvector_release=0.4.0 ARG pg_tle_release=1.3.2 diff --git a/Dockerfile-orioledb-17 b/Dockerfile-orioledb-17 index fe9b902cb..f7c0d4f63 100644 --- a/Dockerfile-orioledb-17 +++ b/Dockerfile-orioledb-17 @@ -31,7 +31,7 @@ ARG pg_repack_release=1.4.8 ARG vault_release=0.2.8 ARG groonga_release=12.0.8 ARG pgroonga_release=2.4.0 -ARG wrappers_release=0.4.5 +ARG wrappers_release=0.4.6 ARG hypopg_release=1.3.1 ARG pgvector_release=0.4.0 ARG pg_tle_release=1.3.2 diff --git a/nix/ext/wrappers/default.nix b/nix/ext/wrappers/default.nix index 74810a342..e87dfb372 100644 --- a/nix/ext/wrappers/default.nix +++ b/nix/ext/wrappers/default.nix @@ -17,16 +17,16 @@ let in buildPgrxExtension_0_12_9 rec { pname = "supabase-wrappers"; - version = "0.4.5"; + version = "0.4.6"; # update the following array when the wrappers version is updated # required to ensure that extensions update scripts from previous versions are generated - previousVersions = ["0.4.4" "0.4.3" "0.4.2" "0.4.1" "0.4.0" "0.3.1" "0.3.0" "0.2.0" "0.1.19" "0.1.18" "0.1.17" "0.1.16" "0.1.15" "0.1.14" "0.1.12" "0.1.11" "0.1.10" "0.1.9" "0.1.8" "0.1.7" "0.1.6" "0.1.5" "0.1.4" "0.1.1" "0.1.0"]; + previousVersions = ["0.4.5" "0.4.4" "0.4.3" "0.4.2" "0.4.1" "0.4.0" "0.3.1" "0.3.0" "0.2.0" "0.1.19" "0.1.18" "0.1.17" "0.1.16" "0.1.15" "0.1.14" "0.1.12" "0.1.11" "0.1.10" "0.1.9" "0.1.8" "0.1.7" "0.1.6" "0.1.5" "0.1.4" "0.1.1" "0.1.0"]; inherit postgresql; src = fetchFromGitHub { owner = "supabase"; repo = "wrappers"; rev = "v${version}"; - hash = "sha256-IgDfVFROMCHYLZ/Iqj12MsQjPPCdRoH+3oi3Ki/iaRI="; + hash = "sha256-hthb3qEXT1Kf4yPoq0udEbQzlyLtI5tug6sK4YAPFjU="; }; nativeBuildInputs = [ pkg-config cargo git ]; @@ -38,11 +38,21 @@ buildPgrxExtension_0_12_9 rec { NIX_LDFLAGS = "-L${postgresql}/lib -lpq"; - # Set necessary environment variables for pgrx + # Set necessary environment variables for pgrx in darwin only env = lib.optionalAttrs stdenv.isDarwin { POSTGRES_LIB = "${postgresql}/lib"; RUSTFLAGS = "-C link-arg=-undefined -C link-arg=dynamic_lookup"; - PGPORT = "5435"; + # Calculate unique port for each PostgreSQL version: + # - Check if version contains underscore (indicating OrioleDB) + # - Add 1 to port if it's OrioleDB + # - Add 2 for each major version above 15 + # Examples: + # - PostgreSQL 15.8 → 5435 + 0 + (15-15)*2 = 5435 + # - PostgreSQL 17_0 (OrioleDB) → 5435 + 1 + (17-15)*2 = 5440 + # - PostgreSQL 17.4 → 5435 + 0 + (17-15)*2 = 5439 + PGPORT = toString (5435 + + (if builtins.match ".*_.*" postgresql.version != null then 1 else 0) + # +1 for OrioleDB + ((builtins.fromJSON (builtins.substring 0 2 postgresql.version)) - 15) * 2); # +2 for each major version }; OPENSSL_NO_VENDOR = 1;