Skip to content

Commit c60b436

Browse files
committed
feat: source specific version of packer and build with specific go
use in all workflows
1 parent f75ac46 commit c60b436

File tree

9 files changed

+84
-17
lines changed

9 files changed

+84
-17
lines changed

.github/workflows/ami-release-nix-single.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -57,18 +57,18 @@ jobs:
5757
env:
5858
POSTGRES_MAJOR_VERSION: ${{ env.POSTGRES_MAJOR_VERSION }}
5959
run: |
60-
packer init amazon-arm64-nix.pkr.hcl
60+
nix run .#packer -- init amazon-arm64-nix.pkr.hcl
6161
GIT_SHA=${{ steps.get_sha.outputs.sha }}
62-
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=-e postgresql_major=${POSTGRES_MAJOR_VERSION}" amazon-arm64-nix.pkr.hcl
62+
nix run .#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=-e postgresql_major=${POSTGRES_MAJOR_VERSION}" amazon-arm64-nix.pkr.hcl
6363
6464
- name: Build AMI stage 2
6565
env:
6666
POSTGRES_MAJOR_VERSION: ${{ env.POSTGRES_MAJOR_VERSION }}
6767
run: |
68-
packer init stage2-nix-psql.pkr.hcl
68+
nix run .#packer -- init stage2-nix-psql.pkr.hcl
6969
GIT_SHA=${{ steps.get_sha.outputs.sha }}
7070
POSTGRES_MAJOR_VERSION=${{ env.POSTGRES_MAJOR_VERSION }}
71-
packer build -var "git_sha=${GIT_SHA}" -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" stage2-nix-psql.pkr.hcl
71+
nix run .#packer -- build -var "git_sha=${GIT_SHA}" -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" stage2-nix-psql.pkr.hcl
7272
7373
- name: Grab release version
7474
id: process_release_version

.github/workflows/ami-release-nix.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -78,19 +78,19 @@ jobs:
7878
env:
7979
POSTGRES_MAJOR_VERSION: ${{ env.POSTGRES_MAJOR_VERSION }}
8080
run: |
81-
packer init amazon-arm64-nix.pkr.hcl
81+
nix run .#packer -- init amazon-arm64-nix.pkr.hcl
8282
GIT_SHA=${{github.sha}}
8383
# why is postgresql_major defined here instead of where the _three_ other postgresql_* variables are defined?
84-
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=-e postgresql_major=${POSTGRES_MAJOR_VERSION}" amazon-arm64-nix.pkr.hcl
84+
nix run .#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=-e postgresql_major=${POSTGRES_MAJOR_VERSION}" amazon-arm64-nix.pkr.hcl
8585
8686
- name: Build AMI stage 2
8787
env:
8888
POSTGRES_MAJOR_VERSION: ${{ env.POSTGRES_MAJOR_VERSION }}
8989
run: |
90-
packer init stage2-nix-psql.pkr.hcl
90+
nix run .#packer -- init stage2-nix-psql.pkr.hcl
9191
GIT_SHA=${{github.sha}}
9292
POSTGRES_MAJOR_VERSION=${{ env.POSTGRES_MAJOR_VERSION }}
93-
packer build -var "git_sha=${GIT_SHA}" -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" stage2-nix-psql.pkr.hcl
93+
nix run .#packer -- build -var "git_sha=${GIT_SHA}" -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" stage2-nix-psql.pkr.hcl
9494
9595
- name: Grab release version
9696
id: process_release_version

.github/workflows/qemu-image-build.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ jobs:
9191
make init
9292
GIT_SHA=${{github.sha}}
9393
export PACKER_LOG=1
94-
packer build -var "git_sha=${GIT_SHA}" -var-file="common-nix.vars.pkr.hcl" qemu-arm64-nix.pkr.hcl
94+
nix run .#packer -- build -var "git_sha=${GIT_SHA}" -var-file="common-nix.vars.pkr.hcl" qemu-arm64-nix.pkr.hcl
9595
9696
- name: Grab release version
9797
id: process_release_version

.github/workflows/testinfra-ami-build.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -76,15 +76,15 @@ jobs:
7676
7777
- name: Build AMI stage 1
7878
run: |
79-
packer init amazon-arm64-nix.pkr.hcl
79+
nix run .#packer -- init amazon-arm64-nix.pkr.hcl
8080
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
81+
nix run .#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
8282
8383
- name: Build AMI stage 2
8484
run: |
85-
packer init stage2-nix-psql.pkr.hcl
85+
nix run .#packer -- init stage2-nix-psql.pkr.hcl
8686
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
87+
nix run .#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
8888
8989
- name: Run tests
9090
timeout-minutes: 10

flake.lock

Lines changed: 17 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

flake.nix

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
treefmt-nix.inputs.nixpkgs.follows = "nixpkgs";
1414
git-hooks.url = "github:cachix/git-hooks.nix";
1515
git-hooks.inputs.nixpkgs.follows = "nixpkgs";
16+
nixpkgs-go124.url = "github:Nixos/nixpkgs/d2ac4dfa61fba987a84a0a81555da57ae0b9a2b0";
1617
};
1718

1819
outputs =

nix/devShells.nix

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,7 @@
4545
shellcheck
4646
ansible
4747
ansible-lint
48-
(packer.overrideAttrs (_oldAttrs: {
49-
version = "1.7.8";
50-
}))
48+
self'.packages.packer
5149

5250
self'.packages.start-server
5351
self'.packages.start-client

nix/packages/default.nix

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
{ self, ... }:
1+
{ self, inputs, ... }:
22
{
33
imports = [ ./postgres.nix ];
44
perSystem =
@@ -37,6 +37,7 @@
3737
supabase-groonga = pkgs.callPackage ./groonga { };
3838
local-infra-bootstrap = pkgs.callPackage ./local-infra-bootstrap.nix { };
3939
migrate-tool = pkgs.callPackage ./migrate-tool.nix { psql_15 = self'.packages."psql_15/bin"; };
40+
packer = pkgs.callPackage ./packer.nix { inherit inputs; };
4041
pg-restore = pkgs.callPackage ./pg-restore.nix { psql_15 = self'.packages."psql_15/bin"; };
4142
pg_prove = pkgs.perlPackages.TAPParserSourceHandlerpgTAP;
4243
pg_regress = makePgRegress activeVersion;

nix/packages/packer.nix

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
{
2+
pkgs,
3+
inputs,
4+
lib,
5+
fetchFromGitHub,
6+
installShellFiles,
7+
...
8+
}:
9+
let
10+
go124 = inputs.nixpkgs-go124.legacyPackages.${pkgs.system}.go_1_24;
11+
buildGoModule = pkgs.buildGoModule.override { go = go124; };
12+
in
13+
buildGoModule rec {
14+
pname = "packer";
15+
version = "1.14.1";
16+
17+
src = fetchFromGitHub {
18+
owner = "hashicorp";
19+
repo = "packer";
20+
rev = "v${version}";
21+
hash = "sha256-3g9hsmrfLzGhjcGvUza/L9PMGUFw+KLbg2pIK0CxlQI=";
22+
};
23+
24+
vendorHash = "sha256-F6hn+pXPyPe70UTK8EF24lk7ArYz7ygUyVVsatW6+hI=";
25+
26+
subPackages = [ "." ];
27+
28+
ldflags = [
29+
"-s"
30+
"-w"
31+
];
32+
33+
nativeBuildInputs = [ installShellFiles ];
34+
35+
buildInputs = lib.optionals pkgs.stdenv.isDarwin [
36+
pkgs.darwin.apple_sdk.frameworks.IOKit
37+
pkgs.darwin.apple_sdk.frameworks.Security
38+
];
39+
40+
postInstall = ''
41+
installShellCompletion --zsh contrib/zsh-completion/_packer
42+
'';
43+
44+
meta = {
45+
description = "Tool for creating identical machine images for multiple platforms from a single source configuration";
46+
homepage = "https://www.packer.io";
47+
license = lib.licenses.bsl11;
48+
changelog = "https://github.com/hashicorp/packer/blob/v${version}/CHANGELOG.md";
49+
};
50+
}

0 commit comments

Comments
 (0)