Migrate to :: to allow custom make steps, add generic stubs
This commit is contained in:
parent
955afa71ee
commit
748a4bde2f
22
podman.mk
22
podman.mk
@ -32,14 +32,16 @@ endif
|
|||||||
help: ## Show Help
|
help: ## Show Help
|
||||||
grep -E '^[a-zA-Z_-]+:.*?## .*$$' .ci/podman.mk | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'
|
grep -E '^[a-zA-Z_-]+:.*?## .*$$' .ci/podman.mk | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'
|
||||||
|
|
||||||
|
prepare:: ## custom step on the build agent before building
|
||||||
|
|
||||||
|
fmt:: ## auto format source
|
||||||
|
|
||||||
|
lint:: ## Lint source
|
||||||
|
|
||||||
build: ## Build the app
|
build: ## Build the app
|
||||||
buildah build --rm --layers -t $(IMAGE):$(TAG)-$(_ARCH) --build-arg TAG=$(TAG) --build-arg ARCH=$(_ARCH) --platform linux/$(_ARCH) .
|
buildah build --rm --layers -t $(IMAGE):$(TAG)-$(_ARCH) --build-arg TAG=$(TAG) --build-arg ARCH=$(_ARCH) --platform linux/$(_ARCH) .
|
||||||
|
|
||||||
test: rm-test-image ## Execute Dockerfile.test
|
test:: ## test built artificats
|
||||||
test -f Dockerfile.test && \
|
|
||||||
{ buildah build --rm --layers -t $(REGISTRY)/$(IMAGE):$(TAG)-$(_ARCH)-test --from=$(REGISTRY)/$(IMAGE):$(TAG) -f Dockerfile.test --platform linux/$(_ARCH) . && \
|
|
||||||
podman run --rm --env-host -t $(REGISTRY)/$(IMAGE):$(TAG)-$(_ARCH)-test; } || \
|
|
||||||
echo "No Dockerfile.test found, skipping test"
|
|
||||||
|
|
||||||
scan: ## Scan image using trivy
|
scan: ## Scan image using trivy
|
||||||
echo "Scanning $(IMAGE):$(TAG)-$(_ARCH) using Trivy $(TRIVY_REMOTE)"
|
echo "Scanning $(IMAGE):$(TAG)-$(_ARCH) using Trivy $(TRIVY_REMOTE)"
|
||||||
@ -63,21 +65,17 @@ push: ecr-login ## push images to registry
|
|||||||
ecr-login: ## log into AWS ECR public
|
ecr-login: ## log into AWS ECR public
|
||||||
aws ecr-public get-login-password --region $(REGION) | podman login --username AWS --password-stdin $(REGISTRY)
|
aws ecr-public get-login-password --region $(REGION) | podman login --username AWS --password-stdin $(REGISTRY)
|
||||||
|
|
||||||
clean: rm-test-image rm-image ## delete local built container and test images
|
|
||||||
|
|
||||||
rm-remote-untagged: ## delete all remote untagged and in-dev images, keep 10 tagged
|
rm-remote-untagged: ## delete all remote untagged and in-dev images, keep 10 tagged
|
||||||
echo "Removing all untagged and in-dev images from $(IMAGE) in $(REGION)"
|
echo "Removing all untagged and in-dev images from $(IMAGE) in $(REGION)"
|
||||||
.ci/ecr_public_lifecycle.py --repo $(IMAGE) --dev
|
.ci/ecr_public_lifecycle.py --repo $(IMAGE) --dev
|
||||||
|
|
||||||
|
clean:: ## clean up source folder
|
||||||
|
|
||||||
rm-image:
|
rm-image:
|
||||||
test -z "$$(podman image ls -q $(IMAGE):$(TAG)-$(_ARCH))" || podman image rm -f $(IMAGE):$(TAG)-$(_ARCH) > /dev/null
|
test -z "$$(podman image ls -q $(IMAGE):$(TAG)-$(_ARCH))" || podman image rm -f $(IMAGE):$(TAG)-$(_ARCH) > /dev/null
|
||||||
test -z "$$(podman image ls -q $(IMAGE):$(TAG)-$(_ARCH))" || echo "Error: Removing image failed"
|
test -z "$$(podman image ls -q $(IMAGE):$(TAG)-$(_ARCH))" || echo "Error: Removing image failed"
|
||||||
|
|
||||||
# Ensure we run the tests by removing any previous runs
|
## some useful tasks during development
|
||||||
rm-test-image:
|
|
||||||
test -z "$$(podman image ls -q $(IMAGE):$(TAG)-$(_ARCH)-test)" || podman image rm -f $(IMAGE):$(TAG)-$(_ARCH)-test > /dev/null
|
|
||||||
test -z "$$(podman image ls -q $(IMAGE):$(TAG)-$(_ARCH)-test)" || echo "Error: Removing test image failed"
|
|
||||||
|
|
||||||
ci-pull-upstream: ## pull latest shared .ci subtree
|
ci-pull-upstream: ## pull latest shared .ci subtree
|
||||||
git stash && git subtree pull --prefix .ci ssh://git@git.zero-downtime.net/ZeroDownTime/ci-tools-lib.git master --squash && git stash pop
|
git stash && git subtree pull --prefix .ci ssh://git@git.zero-downtime.net/ZeroDownTime/ci-tools-lib.git master --squash && git stash pop
|
||||||
|
|
||||||
|
@ -14,7 +14,8 @@ def call(Map config=[:]) {
|
|||||||
withCredentials([gitUsernamePassword(credentialsId: 'gitea-jenkins-user')]) {
|
withCredentials([gitUsernamePassword(credentialsId: 'gitea-jenkins-user')]) {
|
||||||
sh 'git fetch -q --tags ${GIT_URL}'
|
sh 'git fetch -q --tags ${GIT_URL}'
|
||||||
}
|
}
|
||||||
sh 'make prepare || true'
|
// Optional project specific preparations
|
||||||
|
sh 'make prepare'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -60,7 +61,7 @@ def call(Map config=[:]) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Push to container registry, skip if PR
|
// Push to container registry if not PR
|
||||||
stage('Push') {
|
stage('Push') {
|
||||||
when { not { changeRequest() } }
|
when { not { changeRequest() } }
|
||||||
steps {
|
steps {
|
||||||
@ -68,8 +69,11 @@ def call(Map config=[:]) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Basic registry retention removing untagged images
|
// generic clean
|
||||||
stage('cleanup') {
|
stage('cleanup') {
|
||||||
|
sh 'make clean'
|
||||||
|
|
||||||
|
// Basic registry retention removing untagged images if not PR only
|
||||||
when { not { changeRequest() } }
|
when { not { changeRequest() } }
|
||||||
steps {
|
steps {
|
||||||
sh 'make rm-remote-untagged'
|
sh 'make rm-remote-untagged'
|
||||||
|
Loading…
Reference in New Issue
Block a user