[CI:DOCS] Improvements to make validatepr

Small usability improvements for our containerized validate target.

- Responds to SIGINT
- Exits if build fails, only validate if builds succeed
- Warns about potential of insufficient memory
- Document `make validatepr`

Signed-off-by: Ashley Cui <acui@redhat.com>
This commit is contained in:
Ashley Cui
2024-05-09 00:16:45 -04:00
parent 4a11f1eeb4
commit 279e2d0cb2
3 changed files with 41 additions and 18 deletions

View File

@ -291,13 +291,7 @@ commit automatically with `git commit -s`.
### Go Format and lint
All code changes must pass ``make validate`` and ``make lint``.
```
podman build -t gate -f contrib/gate/Dockerfile .
```
***N/B:*** **don't miss the dot (.) at the end, it's really important**
All code changes must pass ``make validatepr``.
### Integration Tests

View File

@ -324,6 +324,7 @@ validatepr:
$(PODMANCMD) run --rm \
-v $(CURDIR):/go/src/github.com/containers/podman \
--security-opt label=disable \
-it \
-w /go/src/github.com/containers/podman \
quay.io/libpod/validatepr:latest \
make .validatepr

View File

@ -6,18 +6,46 @@ set -x
# This script is intended to help developers contribute to the podman project. It
# checks various pre-CI checks like building, linting, man-pages, etc. It is meant
# to be run in a specific container environment.
#
# build all require incantations of podman
echo "Building windows ..."
GOOS=windows CGO_ENABLED=0 go build -tags "$REMOTETAGS" -o bin/test.windows ./cmd/podman
echo "Building darwin..."
GOOS=darwin CGO_ENABLED=0 go build -tags "$REMOTETAGS" -o bin/test.darwin ./cmd/podman
build() {
err=""
# build podman
echo "Building podman binaries ..."
make binaries
echo "Building windows"
if ! GOOS=windows CGO_ENABLED=0 go build -tags "$REMOTETAGS" -o bin/podman-remote-windows ./cmd/podman; then
err+="\n - Windows "
fi
echo "Building darwin"
if ! GOOS=darwin CGO_ENABLED=0 go build -tags "$REMOTETAGS" -o bin/podman-remote-darwin ./cmd/podman; then
err+="\n - Darwin "
fi
echo "Building podman binaries"
if ! make binaries; then
err+="\n - Additional Binaries "
fi
if [ ! -z "$err" ]
then
echo -e "\033[31mFailed to build: ${err}\033[0m">&2
exit 1
fi
}
validate(){
echo "Running validation tooling"
# golangci-lint gobbles memory.
# By default, podman machines only have 2GB memory,
# often causing the linter be killed when run on Darwin/Windows
mem=$(awk '/MemTotal/ {print $2}' /proc/meminfo)
if (( $((mem)) < 3900000 )); then
echo -e "\033[33mWarning: Your machine may not have sufficient memory (< 4 GB)to run the linter. \
If the process is killed, please allocate more memory.\033[0m">&2
fi
echo "Running validation tooling ..."
make validate
}
build
validate