@@ -3,9 +3,13 @@ name: Testinfra Integration Tests Nix
33on :
44 workflow_dispatch :
55 workflow_call :
6+ secrets :
7+ DEV_AWS_ROLE :
8+ description : ' AWS role for dev environment'
9+ required : true
610
711permissions :
8- contents : read
12+ contents : write
913 id-token : write
1014
1115jobs :
1721 - name : Checkout Repo
1822 uses : supabase/postgres/.github/actions/shared-checkout@HEAD
1923
20- - uses : DeterminateSystems/nix-installer-action@main
24+ - name : Install nix
25+ uses : cachix/install-nix-action@v27
26+ with :
27+ install_url : https://releases.nixos.org/nix/nix-2.29.1/install
28+ extra_nix_config : |
29+ substituters = https://cache.nixos.org https://nix-postgres-artifacts.s3.amazonaws.com
30+ trusted-public-keys = nix-postgres-artifacts:dGZlQOvKcNEjvT7QEAJbcV6b6uk7VF/hWMjhYleiaLI=% cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
2131
2232 - name : Set PostgreSQL versions
2333 id : set-versions
@@ -32,22 +42,44 @@ jobs:
3242 matrix :
3343 postgres_version : ${{ fromJson(needs.prepare.outputs.postgres_versions) }}
3444 include :
35- - runner : arm-runner
45+ - runner : large-linux-arm
3646 arch : arm64
3747 ubuntu_release : noble
3848 ubuntu_version : 24.04
3949 mcpu : neoverse-n1
4050 runs-on : ${{ matrix.runner }}
4151 timeout-minutes : 150
42- permissions :
43- contents : write
44- packages : write
45- id-token : write
4652
4753 steps :
4854 - name : Checkout Repo
4955 uses : supabase/postgres/.github/actions/shared-checkout@HEAD
5056
57+ - name : Debug AWS role secret
58+ run : |
59+ echo "Checking DEV_AWS_ROLE secret availability..."
60+ if [ -z "${{ secrets.DEV_AWS_ROLE }}" ]; then
61+ echo "❌ DEV_AWS_ROLE is empty or not available"
62+ else
63+ echo "✅ DEV_AWS_ROLE is available"
64+ fi
65+
66+ - name : Configure AWS credentials
67+ uses : aws-actions/configure-aws-credentials@v4
68+ with :
69+ role-to-assume : ${{ secrets.DEV_AWS_ROLE }}
70+ aws-region : " us-east-1"
71+ output-credentials : true
72+ role-duration-seconds : 7200
73+
74+ - name : Install nix
75+ uses : cachix/install-nix-action@v27
76+ with :
77+ install_url : https://releases.nixos.org/nix/nix-2.29.1/install
78+ extra_nix_config : |
79+ substituters = https://cache.nixos.org https://nix-postgres-artifacts.s3.amazonaws.com
80+ trusted-public-keys = nix-postgres-artifacts:dGZlQOvKcNEjvT7QEAJbcV6b6uk7VF/hWMjhYleiaLI=% cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
81+
82+
5183 - id : args
5284 uses : mikefarah/yq@master
5385 with :
@@ -68,23 +100,23 @@ jobs:
68100
69101 - name : Generate common-nix.vars.pkr.hcl
70102 run : |
71- PG_VERSION=$(sudo nix run nixpkgs#yq -- '.postgres_release["postgres'${{ matrix.postgres_version }}'"]' ansible/vars.yml)
103+ PG_VERSION=$(nix run nixpkgs#yq -- '.postgres_release["postgres'${{ matrix.postgres_version }}'"]' ansible/vars.yml)
72104 PG_VERSION=$(echo "$PG_VERSION" | tr -d '"') # Remove any surrounding quotes
73105 echo 'postgres-version = "'$PG_VERSION'"' > common-nix.vars.pkr.hcl
74106 # Ensure there's a newline at the end of the file
75107 echo "" >> common-nix.vars.pkr.hcl
76108
77109 - name : Build AMI stage 1
78110 run : |
79- packer init amazon-arm64-nix.pkr.hcl
80111 GIT_SHA=${{github.sha}}
81- 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
112+ nix run github:supabase/postgres/${GIT_SHA}#packer -- init amazon-arm64-nix.pkr.hcl
113+ nix run github:supabase/postgres/${GIT_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
82114
83115 - name : Build AMI stage 2
84116 run : |
85- packer init stage2-nix-psql.pkr.hcl
86117 GIT_SHA=${{github.sha}}
87- 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
118+ nix run github:supabase/postgres/${GIT_SHA}#packer -- init stage2-nix-psql.pkr.hcl
119+ nix run github:supabase/postgres/${GIT_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
88120
89121 - name : Run tests
90122 timeout-minutes : 10
0 commit comments