Repository navigation
ci: Move qemu image builds to nix build just like build-ami - #2581
Conversation
|
@claude review plz |
071a574 to
933260d
Compare
Package version diff: none (aarch64-linux, x86_64-linux) |
aecde92 to
ea1e39e
Compare
PostgreSQL Extension Dependency Analysis: PR #2581
SummaryNo extensions had dependencies with MAJOR version updates. Full Analysis ResultsPostgreSQL 15 Extension DependenciesPostgreSQL 17 Extension DependenciesOrioleDB 17 Extension Dependencies |
PostgreSQL Package Dependency Analysis: PR #2581
SummaryNo packages had MAJOR version updates. Full Analysis ResultsPostgreSQL 15 Dependency ChangesExtracting PostgreSQL 15 dependencies...
Runtime Closure Size
Raw Dependency ClosurePostgreSQL 17 Dependency ChangesExtracting PostgreSQL 17 dependencies...
Runtime Closure Size
Raw Dependency Closure |
7b157c5 to
075b711
Compare
| exit 1 | ||
| fi | ||
|
|
||
| - name: Verify QEMU can use KVM |
There was a problem hiding this comment.
Run the suffix check here. In publish it fails after the build.
| - name: Verify QEMU can use KVM | |
| - name: Require non-numeric suffix for manual publish | |
| if: inputs.publish && github.event_name == 'workflow_dispatch' && env.TARGET_ARCH == 'arm64' | |
| run: | | |
| SUFFIX=$(nix run nixpkgs#yq -- -e ".postgres_release.postgres$POSTGRES_MAJOR_VERSION" ansible/postgres_release.yml | sed -E 's/[0-9\.]+(.*)$/\1/') | |
| if [[ -z $SUFFIX ]] ; then | |
| echo "Version must include non-numeric characters if published manually." | |
| exit 1 | |
| fi | |
| - name: Verify QEMU can use KVM |
There was a problem hiding this comment.
SGTM. I hope to get rid of manually running these workflows (release ami too) ASAP!
| - name: Run checks if publishing manually | ||
| if: github.event_name == 'workflow_dispatch' && env.TARGET_ARCH == 'arm64' | ||
| run: | | ||
| SUFFIX=$(nix run nixpkgs#yq -- -e ".postgres_release.postgres$POSTGRES_MAJOR_VERSION" ansible/postgres_release.yml | sed -E 's/[0-9\.]+(.*)$/\1/') | ||
| if [[ -z $SUFFIX ]] ; then | ||
| echo "Version must include non-numeric characters if published manually." | ||
| exit 1 | ||
| fi |
There was a problem hiding this comment.
Moved to the build workflow.
| - name: Run checks if publishing manually | |
| if: github.event_name == 'workflow_dispatch' && env.TARGET_ARCH == 'arm64' | |
| run: | | |
| SUFFIX=$(nix run nixpkgs#yq -- -e ".postgres_release.postgres$POSTGRES_MAJOR_VERSION" ansible/postgres_release.yml | sed -E 's/[0-9\.]+(.*)$/\1/') | |
| if [[ -z $SUFFIX ]] ; then | |
| echo "Version must include non-numeric characters if published manually." | |
| exit 1 | |
| fi |
| id: login-ecr-private-dev | ||
| uses: aws-actions/amazon-ecr-login@v2.1.7 | ||
|
|
||
| - name: Build image |
There was a problem hiding this comment.
publish builds this image again. Skip it here when publishing.
| - name: Build image | |
| - name: Build image | |
| if: ${{ !inputs.publish }} |
There was a problem hiding this comment.
Not going to do this because then we don't be building the Dockerfile for PRs and such, only during builds after merge. This means we could introduce some breakage in the setup and not know about it. As it is now we end up building the docker image twice which imo is pretty cheap/not a big deal. This will go away soon when we drop the ability to run this manually and publishing can happen from -build.
| ssh.socket: | ||
| enabled: true |
There was a problem hiding this comment.
supabase/postgres#2426 set ssh.running: true. This switches to ssh.socket, here and in the amd64 baseline. Add a line to the PR body on why.
There was a problem hiding this comment.
I'm not seeing this fail on develop atm, maybe this was a red herring will drop it to see if thats the case
There was a problem hiding this comment.
if its not necessary for this PR great, either way I'm going to get that in since having ssh enabled somehow is definitely something we want. If the service is disabled due to being socket activate then we definitely need to make sure the socket is enabled :)
075b711 to
9df8614
Compare
Split publish into its own workflow, mimicing AMI Release Nix. We don't need the publish steps most of the time so better to avoid all the unnecessary stuff in this file. When we do want to publish compress the output with zstd since its nice and fast, compresses from ~5G to ~1G and should be fine.
9df8614 to
b9b154b
Compare
What kind of change does this PR introduce?
Gardening
What is the current behavior?
Qemu image builds are not dependent on Nix CI even though it depends on the nix packages being available for fetching.
What is the new behavior?
Qemu image builds now work like the AMI builds.
QMI builds depend on packages in Nix CI, images are not published.
Like AMI Release Nix, Qemu images are published from develop/release branches with postgres_release.yml is modified.
Additional Context
MPG-91