Skip to content

Commit f2a47af

Browse files
committed
chore: fix nix build on macos and address space on gh runner
1 parent d0655d2 commit f2a47af

File tree

2 files changed

+31
-3
lines changed

2 files changed

+31
-3
lines changed

.github/workflows/testinfra-nix.yml

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,12 @@ jobs:
1919

2020
- uses: DeterminateSystems/nix-installer-action@main
2121

22+
- name: Clean Nix store before build
23+
run: |
24+
nix-collect-garbage -d
25+
nix-store --optimize
26+
df -h / # Display available space
27+
2228
- name: Set PostgreSQL versions
2329
id: set-versions
2430
run: |
@@ -80,13 +86,27 @@ jobs:
8086
packer init amazon-arm64-nix.pkr.hcl
8187
GIT_SHA=${{github.sha}}
8288
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
83-
89+
90+
- name: Clean up after AMI stage 1
91+
if: always() # Run even if previous steps fail
92+
run: |
93+
nix-collect-garbage -d # Delete old generations of all profiles
94+
rm -rf /tmp/* # Clean temporary files
95+
df -h / # Display available space
96+
8497
- name: Build AMI stage 2
8598
run: |
8699
packer init stage2-nix-psql.pkr.hcl
87100
GIT_SHA=${{github.sha}}
88101
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
89102
103+
- name: Clean up after AMI stage 2
104+
if: always() # Run even if previous steps fail
105+
run: |
106+
nix-collect-garbage -d # Delete old generations of all profiles
107+
rm -rf /tmp/* # Clean temporary files
108+
df -h / # Display available space
109+
90110
- name: Run tests
91111
timeout-minutes: 10
92112
env:

nix/ext/wrappers/default.nix

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,11 +38,19 @@ buildPgrxExtension_0_12_9 rec {
3838

3939
NIX_LDFLAGS = "-L${postgresql}/lib -lpq";
4040

41-
# Set necessary environment variables for pgrx
41+
# Set necessary environment variables for pgrx in darwin only
4242
env = lib.optionalAttrs stdenv.isDarwin {
4343
POSTGRES_LIB = "${postgresql}/lib";
4444
RUSTFLAGS = "-C link-arg=-undefined -C link-arg=dynamic_lookup";
45-
PGPORT = "5435";
45+
# Calculate unique port for each PostgreSQL version:
46+
# - Take first 2 chars of version (e.g., "15" from "15.8", "17" from "17.0")
47+
# - Convert to number and subtract 15 to get offset
48+
# - Add to base port 5435
49+
# Examples:
50+
# - PostgreSQL 15.8 → 5435 + (15-15) = 5435
51+
# - PostgreSQL 17.0 → 5435 + (17-15) = 5437
52+
# - PostgreSQL 17.4 → 5435 + (17-15) = 5437
53+
PGPORT = toString (5435 + (builtins.fromJSON (builtins.substring 0 2 postgresql.version)) - 15);
4654
};
4755

4856
OPENSSL_NO_VENDOR = 1;

0 commit comments

Comments
 (0)