diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 5e664edb70..8f605ac280 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -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 diff --git a/Makefile b/Makefile index cb2a237162..3cdec153b3 100644 --- a/Makefile +++ b/Makefile @@ -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 diff --git a/contrib/validatepr/validatepr.sh b/contrib/validatepr/validatepr.sh index 15cd09edb2..ad754b409c 100755 --- a/contrib/validatepr/validatepr.sh +++ b/contrib/validatepr/validatepr.sh @@ -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="" + + 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" -# build podman -echo "Building podman binaries ..." -make binaries + # 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 + make validate +} -echo "Running validation tooling ..." -make validate +build +validate