Skip to content

Commit f4ace6e

Browse files
authored
feat: randomize ami name on testinfra for 15.6 (#1080)
* feat: randomize ami name on testinfra for 15.6 * chore: utilize random name all the way through * chore: need to pin osquery version newer release is broken in nixpkgs and won't install * chore: use env var for AMI_NAME * chore: full ami name --------- Co-authored-by: Sam Rose <samuel@supabase.io>
1 parent 1ffadf4 commit f4ace6e

File tree

3 files changed

+15
-9
lines changed

3 files changed

+15
-9
lines changed

.github/workflows/testinfra-nix.yml

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -37,24 +37,30 @@ jobs:
3737
with:
3838
endpoint: builders
3939

40+
- name: Generate random string
41+
id: random
42+
run: echo "random_string=$(openssl rand -hex 8)" >> $GITHUB_OUTPUT
43+
4044
- name: Build AMI stage 1
4145
run: |
4246
packer init amazon-arm64-nix.pkr.hcl
4347
GIT_SHA=${{github.sha}}
44-
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=ci-ami-test" -var "region=ap-southeast-1" -var 'ami_regions=["ap-southeast-1"]' -var "force-deregister=true" amazon-arm64-nix.pkr.hcl
45-
48+
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" amazon-arm64-nix.pkr.hcl
49+
4650
- name: Build AMI stage 2
4751
run: |
4852
packer init stage2-nix-psql.pkr.hcl
4953
GIT_SHA=${{github.sha}}
50-
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 "postgres-version=ci-ami-test" -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
54+
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 "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
5155
5256
- name: Run tests
5357
timeout-minutes: 10
58+
env:
59+
AMI_NAME: "supabase-postgres-${{ steps.random.outputs.random_string }}"
5460
run: |
5561
# TODO: use poetry for pkg mgmt
5662
pip3 install boto3 boto3-stubs[essential] docker ec2instanceconnectcli pytest pytest-testinfra[paramiko,docker] requests
57-
pytest -vv -s testinfra/test_ami_nix.py
63+
pytest -vv -s testinfra/test_ami_nix.py
5864
5965
- name: Cleanup resources on build cancellation
6066
if: ${{ cancelled() }}
@@ -71,7 +77,7 @@ jobs:
7177
run: |
7278
# Define AMI name patterns
7379
STAGE1_AMI_NAME="supabase-postgres-ci-ami-test-stage-1"
74-
STAGE2_AMI_NAME="supabase-postgres-ci-ami-test-nix"
80+
STAGE2_AMI_NAME="${{ steps.random.outputs.random_string }}"
7581
7682
# Function to deregister AMIs by name pattern
7783
deregister_ami_by_name() {

ansible/playbook.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,7 @@
192192
- name: Install osquery from nixpkgs binary cache
193193
become: yes
194194
shell: |
195-
sudo -u ubuntu bash -c ". /nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh && nix profile install nixpkgs#osquery"
195+
sudo -u ubuntu bash -c ". /nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh && nix profile install github:nixos/nixpkgs/f98ec4f73c762223d62bee706726138cb6ea27cc#osquery"
196196
when: stage2_nix
197197

198198
- name: Run osquery permission checks

testinfra/test_ami_nix.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313

1414
# if GITHUB_RUN_ID is not set, use a default value that includes the user and hostname
1515
RUN_ID = os.environ.get("GITHUB_RUN_ID", "unknown-ci-run-" + os.environ.get("USER", "unknown-user") + '@' + socket.gethostname())
16-
16+
AMI_NAME = os.environ.get('AMI_NAME')
1717
postgresql_schema_sql_content = """
1818
ALTER DATABASE postgres SET "app.settings.jwt_secret" TO 'my_jwt_secret_which_is_not_so_secret';
1919
ALTER DATABASE postgres SET "app.settings.jwt_exp" TO 3600;
@@ -167,7 +167,7 @@ def host():
167167
ec2 = boto3.resource("ec2", region_name="ap-southeast-1")
168168
images = list(
169169
ec2.images.filter(
170-
Filters=[{"Name": "name", "Values": ["supabase-postgres-ci-ami-test-nix"]}]
170+
Filters=[{"Name": "name", "Values": [AMI_NAME]}],
171171
)
172172
)
173173
assert len(images) == 1
@@ -387,4 +387,4 @@ def test_postgrest_ending_apikey_query_parameter_is_removed(host):
387387
"apikey": service_role_key,
388388
},
389389
)
390-
assert res.ok
390+
assert res.ok

0 commit comments

Comments
 (0)