github.com/containers/libpod@v1.9.4-0.20220419124438-4284fd425507/contrib/cirrus/packer/Makefile (about) 1 PACKER_VER ?= 1.4.3 2 GOARCH=$(shell go env GOARCH) 3 ARCH=$(uname -m) 4 PACKER_DIST_FILENAME := packer_${PACKER_VER}_linux_${GOARCH}.zip 5 6 # Only needed for libpod_base_images target 7 TIMESTAMP := $(shell date +%s) 8 GOSRC ?= $(shell realpath "./../../../") 9 PACKER_BASE ?= contrib/cirrus/packer 10 SCRIPT_BASE ?= contrib/cirrus 11 POST_MERGE_BUCKET_SUFFIX ?= 12 13 UBUNTU_BASE_IMAGE = $(shell source ../lib.sh && echo "$$UBUNTU_BASE_IMAGE") 14 PRIOR_UBUNTU_BASE_IMAGE = $(shell source ../lib.sh && echo "$$PRIOR_UBUNTU_BASE_IMAGE") 15 16 # For debugging nested-virt, use 17 #TTYDEV := $(shell tty) 18 TTYDEV := /dev/null 19 20 .PHONY: all 21 all: libpod_images 22 23 # Utility target for checking required parameters 24 .PHONY: guard-% 25 guard-%: 26 @if [[ -z "$($*)" ]]; then \ 27 echo "Missing or empty required make variable '$*'."; \ 28 exit 1; \ 29 fi; 30 31 %.json: %.yml 32 @python3 -c 'import json,yaml; json.dump( yaml.safe_load(open("$<").read()), open("$@","w"), indent=2);' 33 34 ${PACKER_DIST_FILENAME}: 35 @curl -L --silent --show-error \ 36 -O https://releases.hashicorp.com/packer/${PACKER_VER}/${PACKER_DIST_FILENAME} 37 38 packer: ${PACKER_DIST_FILENAME} 39 @curl -L --silent --show-error \ 40 https://releases.hashicorp.com/packer/${PACKER_VER}/packer_${PACKER_VER}_SHA256SUMS \ 41 | grep linux_${GOARCH} > /tmp/packer_sha256sums 42 @sha256sum --check /tmp/packer_sha256sums 43 @unzip -o ${PACKER_DIST_FILENAME} 44 @touch --reference=Makefile ${PACKER_DIST_FILENAME} 45 46 .PHONY: test 47 test: libpod_base_images.json libpod_images.json packer 48 ./packer inspect libpod_base_images.json > /dev/null 49 ./packer inspect libpod_images.json > /dev/null 50 @echo "All good" 51 52 .PHONY: libpod_images 53 libpod_images: guard-PACKER_BUILDS libpod_images.json packer 54 ./packer build \ 55 -force \ 56 $(shell test -z "${PACKER_BUILDS}" || echo "-only=${PACKER_BUILDS}") \ 57 -var GOSRC=$(GOSRC) \ 58 -var PACKER_BASE=$(PACKER_BASE) \ 59 -var SCRIPT_BASE=$(SCRIPT_BASE) \ 60 libpod_images.json 61 62 cidata.ssh: 63 ssh-keygen -f $@ -P "" -q 64 65 cidata.ssh.pub: cidata.ssh 66 touch $@ 67 68 meta-data: 69 echo "local-hostname: localhost.localdomain" > $@ 70 71 user-data: cidata.ssh.pub 72 bash make-user-data.sh 73 74 cidata.iso: user-data meta-data 75 genisoimage -output cidata.iso -volid cidata -input-charset utf-8 -joliet -rock user-data meta-data 76 77 # This is intended to be run by a human, with admin access to the libpod GCE project. 78 .PHONY: libpod_base_images 79 libpod_base_images: guard-GCP_PROJECT_ID guard-GOOGLE_APPLICATION_CREDENTIALS libpod_base_images.json cidata.iso cidata.ssh packer 80 PACKER_CACHE_DIR=/tmp ./packer build \ 81 $(shell test -z "${PACKER_BUILDS}" || echo "-only=${PACKER_BUILDS}") \ 82 -force \ 83 -var TIMESTAMP=$(TIMESTAMP) \ 84 -var TTYDEV=$(TTYDEV) \ 85 -var GCP_PROJECT_ID=$(GCP_PROJECT_ID) \ 86 -var GOOGLE_APPLICATION_CREDENTIALS=$(GOOGLE_APPLICATION_CREDENTIALS) \ 87 -var GOSRC=$(GOSRC) \ 88 -var PACKER_BASE=$(PACKER_BASE) \ 89 -var SCRIPT_BASE=$(SCRIPT_BASE) \ 90 -var UBUNTU_BASE_IMAGE=$(UBUNTU_BASE_IMAGE) \ 91 -var PRIOR_UBUNTU_BASE_IMAGE=$(PRIOR_UBUNTU_BASE_IMAGE) \ 92 libpod_base_images.json