git_revision := `git rev-parse --short HEAD`
app_version := `awk -F'"' '/^\[package\]/{p=1} p && /^version *=/{print $2; exit}' Cargo.toml`
build_date := `date -u +%Y-%m-%dT%H:%M:%SZ`
image_quay := 'quay.io/tama5'
image_github := 'ghcr.io/tamada'
container_image := image_quay
# Compile the Ghidra lifting script without running Ghidra (~2s)
compile-check:
./assets/lifters/ghidra/compile-check.sh
# Test the Ghidra lifting script's JSON escaping and path reading without running Ghidra
test-ghidra-script:
./assets/lifters/ghidra/compile-check.sh --run HighPCodeLifterTest \
assets/lifters/ghidra/scripts/HighPCodeLifter.java \
testdata/scripts/HighPCodeLifterTest.java
container-local:
docker build \
--target light-image \
--build-arg GIT_REVISION={{git_revision}} \
--build-arg BUILD_DATE={{build_date}} \
--build-arg VERSION={{app_version}} \
-t {{container_image}}/oinkie:latest \
-t {{container_image}}/oinkie:light \
-t {{container_image}}/oinkie:{{ app_version }} \
-t {{container_image}}/oinkie:{{ app_version }}-light \
-f Containerfile \
.
docker build \
--target ghidra-image \
--build-arg GIT_REVISION={{git_revision}} \
--build-arg BUILD_DATE={{build_date}} \
--build-arg VERSION={{ app_version }} \
-t {{container_image}}/oinkie:ghidra \
-t {{container_image}}/oinkie:{{ app_version }}-ghidra \
-f Containerfile \
.
docker build \
--target mcp-image \
--build-arg GIT_REVISION={{git_revision}} \
--build-arg BUILD_DATE={{build_date}} \
--build-arg VERSION={{ app_version }} \
-t {{container_image}}/oinkie:mcp \
-t {{container_image}}/oinkie:{{ app_version }}-mcp \
-f Containerfile \
.
container:
docker buildx build --push \
--target light-image \
--platform linux/amd64,linux/arm64 \
--build-arg GIT_REVISION={{git_revision}} \
--build-arg BUILD_DATE={{build_date}} \
--build-arg VERSION={{app_version}} \
-t {{container_image}}/oinkie:latest \
-t {{container_image}}/oinkie:light \
-t {{container_image}}/oinkie:{{ app_version }} \
-t {{container_image}}/oinkie:{{ app_version }}-light \
-f Containerfile \
.
docker buildx build --push \
--target ghidra-image \
--platform linux/amd64,linux/arm64 \
--build-arg GIT_REVISION={{git_revision}} \
--build-arg BUILD_DATE={{build_date}} \
--build-arg VERSION={{ app_version }} \
-t {{container_image}}/oinkie:ghidra \
-t {{container_image}}/oinkie:{{ app_version }}-ghidra \
-f Containerfile \
.
# Only the default command differs from light-image, so the layers are
# already built and pushed by the time this runs.
docker buildx build --push \
--target mcp-image \
--platform linux/amd64,linux/arm64 \
--build-arg GIT_REVISION={{git_revision}} \
--build-arg BUILD_DATE={{build_date}} \
--build-arg VERSION={{ app_version }} \
-t {{container_image}}/oinkie:mcp \
-t {{container_image}}/oinkie:{{ app_version }}-mcp \
-f Containerfile \
.