diff --git a/.cirrus.yml b/.cirrus.yml index eefed89ac4..2f7be8f50a 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -330,6 +330,8 @@ freebsd_alt_build_task: image_family: freebsd-13-4 setup_script: - pkg install -y gpgme bash go-md2man gmake gsed gnugrep go pkgconf zstd + lint_script: + - gmake golangci-lint build_amd64_script: - gmake podman-release # This task cannot make use of the shared repo.tar.zst artifact and must diff --git a/hack/golangci-lint.sh b/hack/golangci-lint.sh index a7b11e5115..457d56e7a1 100755 --- a/hack/golangci-lint.sh +++ b/hack/golangci-lint.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # Run golangci-lint with different sets of build tags. set -e @@ -8,23 +8,29 @@ set -e # a very old version, where modern features (like `declare -A`) are # absent. -echo "Linting for GOOS=$GOOS" -# Special case: for Darwin and Windows only "remote" linting is possible and required. -if [[ "$GOOS" == "windows" || "$GOOS" == "darwin" ]]; then - ( - set -x - ./bin/golangci-lint run --build-tags="remote,containers_image_openpgp" "$@" - ) - exit 0 -fi +declare -a EXTRA_TAGS -# Normal case (Linux): run linter for various sets of build tags. -TAGS="apparmor,seccomp,selinux" -for EXTRA_TAGS in "" ",systemd" ",remote"; do +echo "Linting for GOOS=$GOOS" +case "$GOOS" in + windows|darwin) + # For Darwin and Windows, only "remote" linting is possible and required. + TAGS="remote,containers_image_openpgp" + ;; + freebsd) + TAGS="containers_image_openpgp" + EXTRA_TAGS=(",remote") + ;; + *) + # Assume Linux: run linter for various sets of build tags. + TAGS="apparmor,seccomp,selinux" + EXTRA_TAGS=(",systemd" ",remote") +esac + +for EXTRA in "" "${EXTRA_TAGS[@]}"; do + # Use set -x in a subshell to make it easy for a developer to copy-paste + # the command-line to focus or debug a single, specific linting category. ( - # Make it really easy for a developer to copy-paste the command-line - # to focus or debug a single, specific linting category. set -x - ./bin/golangci-lint run --build-tags="${TAGS}${EXTRA_TAGS}" "$@" + ./bin/golangci-lint run --build-tags="${TAGS}${EXTRA}" "$@" ) done diff --git a/pkg/machine/e2e/config_freebsd_test.go b/pkg/machine/e2e/config_freebsd_test.go new file mode 100644 index 0000000000..46107a10dd --- /dev/null +++ b/pkg/machine/e2e/config_freebsd_test.go @@ -0,0 +1,7 @@ +package e2e_test + +const podmanBinary = "../../../bin/podman-remote" + +func getOtherProvider() string { + return "" +}