Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
45b0369
Bump runc to v1.2.9 - CVE-2025-52881
dashea Nov 20, 2025
ff1e3ab
Makefile: drop non-Linux cross-compile targets
nalind Dec 9, 2025
d6bdc6e
Update golang.org/x/tools to v0.26.0
nalind Dec 9, 2025
970cb06
tests/tools: update ginkgo and golangci-lint
nalind Dec 9, 2025
08746fd
Update other dependencies
nalind Dec 11, 2025
7b58dd4
Update go-selinux uses to handle API changes
dashea Nov 20, 2025
e82cf4b
Switch to moby/sys/userns for RunningInUserNS
dashea Nov 20, 2025
d53a7ca
Bump CI environment
dashea Nov 20, 2025
4e6abc5
CI: switch to debian for testing there
nalind Dec 9, 2025
42ad38c
Handle errors.Cause() returning not-completely-unwrapped errors
nalind Dec 11, 2025
b811a79
Update to compensate for containers/common API changes
nalind Dec 11, 2025
c762d12
use c/image/pkg/blobcache
vrothberg Feb 22, 2022
7428289
tests/serve/serve.go: use a kernel-assigned port
nalind Aug 12, 2021
b00a2c8
Update linter configuration and address some warnings
nalind Dec 11, 2025
323e72f
Don't set ambient capabilities
cevich Nov 25, 2025
40dc9c4
Stop setting "parent" in docker format
nalind Jun 3, 2024
ff26722
commit: set "parent" for docker format only when requested
nalind Jun 6, 2024
8ecba5d
Builder.SetWorkDir(): trim off a path separator suffix, if there is one
nalind Dec 5, 2025
f7fe20a
Update man pages
nalind Dec 11, 2025
da4a73c
Make "buildah build" an alias for "buildah bud"
nalind Dec 11, 2025
05688c4
Update expected error messages
nalind Dec 11, 2025
1b76517
Remove -cover flag from test-unit target
cevich Dec 1, 2025
589ffb0
vendor c/common
vrothberg Jan 10, 2022
7d9b4d3
chroot tests: use the same default seccomp profile
nalind Dec 12, 2025
a9fe881
util.SortMounts(): make the returned order more stable
nalind Nov 30, 2022
19a87af
Backport permissions fixup for test git server from #5550
nalind Dec 12, 2025
0fada24
run: handle relabeling bind mounts ourselves
nalind Dec 12, 2025
61689d3
Add a dummy "runtime" that just dumps its config file
cevich Nov 25, 2025
9d66768
runUsingRuntime: use named constants for runtime states
nalind Dec 12, 2025
14795b1
Update the selinux spc test
nalind Dec 8, 2025
d1571b6
bud --pull=false --arch test: accept either RPM or Go arch names
nalind Dec 12, 2025
74d6858
Add /usr/lib/cni to define.DefaultCNIPluginPath
nalind Dec 12, 2025
aacef2b
from add-host test: accept either tabs or spaces in /etc/hosts
nalind Dec 12, 2025
116af5e
run: fix nil deref using the option's logger (from #3431)
nalind Dec 12, 2025
74bf04c
Bump version to 1.21.6
dashea Nov 20, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
276 changes: 265 additions & 11 deletions .cirrus.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ env:
DEST_BRANCH: "release-1.21"
GOPATH: "/var/tmp/go"
GOSRC: "${GOPATH}/src/github.com/containers/buildah"
GOCACHE: "/var/tmp/go-build"
# Overrides default location (/tmp/cirrus) for repo clone
CIRRUS_WORKING_DIR: "${GOSRC}"
# Shell used to execute all script commands
Expand All @@ -19,23 +20,25 @@ env:
CIRRUS_CLONE_DEPTH: 50
# Unless set by in_podman.sh, default to operating outside of a podman container
IN_PODMAN: 'false'
# root or rootless
PRIV_NAME: root
# default "mention the $BUILDAH_RUNTIME in the task alias, with initial whitespace" value
RUNTIME_N: ""

####
#### Cache-image names to test with
####
# GCE project where images live
IMAGE_PROJECT: "libpod-218412"
# See https://github.com/containers/podman/blob/master/contrib/cirrus/README.md#test_build_cache_images_task-task
FEDORA_NAME: "fedora-34"
PRIOR_FEDORA_NAME: "fedora-33"
UBUNTU_NAME: "ubuntu-2104"
PRIOR_UBUNTU_NAME: "ubuntu-2010"
FEDORA_NAME: "fedora-41"
PRIOR_FEDORA_NAME: "fedora-40"
DEBIAN_NAME: "debian-13"

IMAGE_SUFFIX: "c6032583541653504"
IMAGE_SUFFIX: "c20250107t132430z-f41f40d13"
FEDORA_CACHE_IMAGE_NAME: "fedora-${IMAGE_SUFFIX}"
PRIOR_FEDORA_CACHE_IMAGE_NAME: "prior-fedora-${IMAGE_SUFFIX}"
UBUNTU_CACHE_IMAGE_NAME: "ubuntu-${IMAGE_SUFFIX}-a"
PRIOR_UBUNTU_CACHE_IMAGE_NAME: "prior-ubuntu-${IMAGE_SUFFIX}"
DEBIAN_CACHE_IMAGE_NAME: "debian-${IMAGE_SUFFIX}"

IN_PODMAN_IMAGE: "quay.io/libpod/fedora_podman:${IMAGE_SUFFIX}"

Expand Down Expand Up @@ -76,8 +79,7 @@ meta_task:
IMGNAMES: |-
${FEDORA_CACHE_IMAGE_NAME}
${PRIOR_FEDORA_CACHE_IMAGE_NAME}
${UBUNTU_CACHE_IMAGE_NAME}
${PRIOR_UBUNTU_CACHE_IMAGE_NAME}
${DEBIAN_CACHE_IMAGE_NAME}
BUILDID: "${CIRRUS_BUILD_ID}"
REPOREF: "${CIRRUS_CHANGE_IN_REPO}"
GCPJSON: ENCRYPTED[d3614d6f5cc0e66be89d4252b3365fd84f14eee0259d4eb47e25fc0bc2842c7937f5ee8c882b7e547b4c5ec4b6733b14]
Expand Down Expand Up @@ -121,7 +123,7 @@ vendor_task:

# Runs within Cirrus's "community cluster"
container:
image: docker.io/library/golang:1.13
image: docker.io/library/golang:1.22
cpu: 1
memory: 1

Expand All @@ -131,15 +133,53 @@ vendor_task:
- 'make vendor'
- './hack/tree_status.sh'

unit_task:
name: 'Unit tests w/ $STORAGE_DRIVER'
alias: unit
skip: &not_build_docs >-
$CIRRUS_CHANGE_TITLE =~ '.*CI:DOCS.*' ||
$CIRRUS_CHANGE_TITLE =~ '.*CI:BUILD.*'
depends_on: &smoke_vendor
- smoke
- vendor

timeout_in: 90m

matrix:
- env:
STORAGE_DRIVER: 'vfs'
- env:
STORAGE_DRIVER: 'overlay'

setup_script: '${SCRIPT_BASE}/setup.sh |& ${_TIMESTAMP}'
unit_test_script: '${SCRIPT_BASE}/test.sh unit |& ${_TIMESTAMP}'

cross_build_task:
name: "Cross Compile"
gce_instance:
cpu: 8
memory: "24G"
alias: cross_build
skip: *not_build_docs
env:
HOME: /root
script:
- go version
- make cross CGO_ENABLED=0
binary_artifacts:
path: ./bin/*

conformance_task:
name: 'Build Conformance w/ $STORAGE_DRIVER'
alias: conformance
depends_on:
- vendor
skip: *not_build_docs

gce_instance:
image_name: "${UBUNTU_CACHE_IMAGE_NAME}"
cpu: 4
memory: "8Gb"
image_name: "${DEBIAN_CACHE_IMAGE_NAME}"

timeout_in: 25m

Expand All @@ -152,6 +192,215 @@ conformance_task:
setup_script: '${SCRIPT_BASE}/setup.sh |& ${_TIMESTAMP}'
conformance_test_script: '${SCRIPT_BASE}/test.sh conformance |& ${_TIMESTAMP}'

integration_task:
name: "Integration $DISTRO_NV$RUNTIME_N w/ $STORAGE_DRIVER"
alias: integration
depends_on:
- vendor
skip: *not_build_docs

matrix:
# VFS
- env:
DISTRO_NV: "${FEDORA_NAME}"
IMAGE_NAME: "${FEDORA_CACHE_IMAGE_NAME}"
STORAGE_DRIVER: 'vfs'
BUILDAH_RUNTIME: crun
RUNTIME_N: " using crun"
- env:
DISTRO_NV: "${FEDORA_NAME}"
IMAGE_NAME: "${FEDORA_CACHE_IMAGE_NAME}"
STORAGE_DRIVER: 'vfs'
BUILDAH_RUNTIME: runc
RUNTIME_N: " using runc"
- env:
DISTRO_NV: "${PRIOR_FEDORA_NAME}"
IMAGE_NAME: "${PRIOR_FEDORA_CACHE_IMAGE_NAME}"
STORAGE_DRIVER: 'vfs'
BUILDAH_RUNTIME: crun
RUNTIME_N: " using crun"
- env:
DISTRO_NV: "${PRIOR_FEDORA_NAME}"
IMAGE_NAME: "${PRIOR_FEDORA_CACHE_IMAGE_NAME}"
STORAGE_DRIVER: 'vfs'
BUILDAH_RUNTIME: runc
RUNTIME_N: " using runc"
- env:
DISTRO_NV: "${DEBIAN_NAME}"
IMAGE_NAME: "${DEBIAN_CACHE_IMAGE_NAME}"
STORAGE_DRIVER: 'vfs'
# OVERLAY
- env:
DISTRO_NV: "${FEDORA_NAME}"
IMAGE_NAME: "${FEDORA_CACHE_IMAGE_NAME}"
STORAGE_DRIVER: 'overlay'
BUILDAH_RUNTIME: crun
RUNTIME_N: " using crun"
- env:
DISTRO_NV: "${FEDORA_NAME}"
IMAGE_NAME: "${FEDORA_CACHE_IMAGE_NAME}"
STORAGE_DRIVER: 'overlay'
BUILDAH_RUNTIME: runc
RUNTIME_N: " using runc"
- env:
DISTRO_NV: "${PRIOR_FEDORA_NAME}"
IMAGE_NAME: "${PRIOR_FEDORA_CACHE_IMAGE_NAME}"
STORAGE_DRIVER: 'overlay'
BUILDAH_RUNTIME: crun
RUNTIME_N: " using crun"
- env:
DISTRO_NV: "${PRIOR_FEDORA_NAME}"
IMAGE_NAME: "${PRIOR_FEDORA_CACHE_IMAGE_NAME}"
STORAGE_DRIVER: 'overlay'
BUILDAH_RUNTIME: runc
RUNTIME_N: " using runc"
- env:
DISTRO_NV: "${DEBIAN_NAME}"
IMAGE_NAME: "${DEBIAN_CACHE_IMAGE_NAME}"
STORAGE_DRIVER: 'overlay'

gce_instance:
image_name: "$IMAGE_NAME"
cpu: 4

# Separate scripts for separate outputs, makes debugging easier.
setup_script: '${SCRIPT_BASE}/setup.sh |& ${_TIMESTAMP}'
build_script: '${SCRIPT_BASE}/build.sh |& ${_TIMESTAMP}'
integration_test_script: '${SCRIPT_BASE}/test.sh integration |& ${_TIMESTAMP}'

binary_artifacts:
path: ./bin/*

always: &standardlogs
audit_log_script: '$GOSRC/$SCRIPT_BASE/logcollector.sh audit'
df_script: '$GOSRC/$SCRIPT_BASE/logcollector.sh df'
journal_script: '$GOSRC/$SCRIPT_BASE/logcollector.sh journal'
podman_system_info_script: '$GOSRC/$SCRIPT_BASE/logcollector.sh podman'
buildah_version_script: '$GOSRC/$SCRIPT_BASE/logcollector.sh buildah_version'
buildah_info_script: '$GOSRC/$SCRIPT_BASE/logcollector.sh buildah_info'
package_versions_script: '$GOSRC/$SCRIPT_BASE/logcollector.sh packages'
golang_version_script: '$GOSRC/$SCRIPT_BASE/logcollector.sh golang'

integration_rootless_task:
name: "Integration rootless $DISTRO_NV$RUNTIME_N w/ $STORAGE_DRIVER"
alias: integration_rootless
depends_on:
- vendor
skip: *not_build_docs

matrix:
# Running rootless tests on overlay
# OVERLAY
- env:
DISTRO_NV: "${FEDORA_NAME}"
IMAGE_NAME: "${FEDORA_CACHE_IMAGE_NAME}"
STORAGE_DRIVER: 'overlay'
PRIV_NAME: rootless
BUILDAH_RUNTIME: runc
RUNTIME_N: " using runc"
- env:
DISTRO_NV: "${FEDORA_NAME}"
IMAGE_NAME: "${FEDORA_CACHE_IMAGE_NAME}"
STORAGE_DRIVER: 'overlay'
PRIV_NAME: rootless
BUILDAH_RUNTIME: crun
RUNTIME_N: " using crun"
- env:
DISTRO_NV: "${PRIOR_FEDORA_NAME}"
IMAGE_NAME: "${PRIOR_FEDORA_CACHE_IMAGE_NAME}"
STORAGE_DRIVER: 'overlay'
PRIV_NAME: rootless
BUILDAH_RUNTIME: runc
RUNTIME_N: " using runc"
- env:
DISTRO_NV: "${PRIOR_FEDORA_NAME}"
IMAGE_NAME: "${PRIOR_FEDORA_CACHE_IMAGE_NAME}"
STORAGE_DRIVER: 'overlay'
PRIV_NAME: rootless
BUILDAH_RUNTIME: crun
RUNTIME_N: " using crun"
- env:
DISTRO_NV: "${DEBIAN_NAME}"
IMAGE_NAME: "${DEBIAN_CACHE_IMAGE_NAME}"
STORAGE_DRIVER: 'overlay'
PRIV_NAME: rootless
# VFS
- env:
DISTRO_NV: "${PRIOR_FEDORA_NAME}"
IMAGE_NAME: "${PRIOR_FEDORA_CACHE_IMAGE_NAME}"
STORAGE_DRIVER: 'vfs'
PRIV_NAME: rootless
BUILDAH_RUNTIME: runc
RUNTIME_N: " using runc"
- env:
DISTRO_NV: "${FEDORA_NAME}"
IMAGE_NAME: "${FEDORA_CACHE_IMAGE_NAME}"
STORAGE_DRIVER: 'vfs'
PRIV_NAME: rootless
BUILDAH_RUNTIME: crun
RUNTIME_N: " using crun"
- env:
DISTRO_NV: "${PRIOR_FEDORA_NAME}"
IMAGE_NAME: "${PRIOR_FEDORA_CACHE_IMAGE_NAME}"
STORAGE_DRIVER: 'vfs'
PRIV_NAME: rootless
BUILDAH_RUNTIME: runc
RUNTIME_N: " using runc"
- env:
DISTRO_NV: "${PRIOR_FEDORA_NAME}"
IMAGE_NAME: "${PRIOR_FEDORA_CACHE_IMAGE_NAME}"
STORAGE_DRIVER: 'vfs'
PRIV_NAME: rootless
BUILDAH_RUNTIME: crun
RUNTIME_N: " using crun"
- env:
DISTRO_NV: "${DEBIAN_NAME}"
IMAGE_NAME: "${DEBIAN_CACHE_IMAGE_NAME}"
STORAGE_DRIVER: 'vfs'
PRIV_NAME: rootless

gce_instance:
image_name: "$IMAGE_NAME"
cpu: 4

# Separate scripts for separate outputs, makes debugging easier.
setup_script: '${SCRIPT_BASE}/setup.sh |& ${_TIMESTAMP}'
build_script: '${SCRIPT_BASE}/build.sh |& ${_TIMESTAMP}'
integration_test_script: '${SCRIPT_BASE}/test.sh integration |& ${_TIMESTAMP}'

binary_artifacts:
path: ./bin/*

always:
<<: *standardlogs

in_podman_task:
name: "Containerized Integration"
alias: in_podman
depends_on:
- vendor
skip: *not_build_docs

gce_instance:
cpu: 4

env:
# This is key, cause the scripts to re-execute themselves inside a container.
IN_PODMAN: 'true'
BUILDAH_ISOLATION: 'chroot'
STORAGE_DRIVER: 'vfs'

# Separate scripts for separate outputs, makes debugging easier.
setup_script: '${SCRIPT_BASE}/setup.sh |& ${_TIMESTAMP}'
build_script: '${SCRIPT_BASE}/build.sh |& ${_TIMESTAMP}'
integration_test_script: '${SCRIPT_BASE}/test.sh integration |& ${_TIMESTAMP}'

binary_artifacts:
path: ./bin/*

always:
<<: *standardlogs


# Status aggregator for all tests. This task simply ensures a defined
# set of tasks all passed, and allows confirming that based on the status
Expand All @@ -164,7 +413,12 @@ success_task:
- meta
- smoke
- vendor
- unit
- cross_build
- conformance
- integration
- integration_rootless
- in_podman

container:
image: "quay.io/libpod/alpine:latest"
Expand Down
1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,3 @@ Dockerfile*
!/tests/bud/*/Dockerfile*
!/tests/conformance/**/Dockerfile*
*.swp
result
32 changes: 17 additions & 15 deletions .golangci.yml
Original file line number Diff line number Diff line change
@@ -1,24 +1,26 @@
---
version: "2"

run:
build-tags:
- apparmor
- seccomp
- selinux
# Don't exceed number of threads available when running under CI
concurrency: 4

linters:
enable-all: true
enable:
- unparam
- unused
disable:
# All these break for one reason or another
- dupl
- funlen
- gochecknoglobals
- gochecknoinits
- goconst
- gocritic
- gocyclo
- gosec
- lll
- maligned
- prealloc
- scopelint
- govet
- gosimple
exclusions:
presets:
- comments
- std-error-handling
settings:
staticcheck:
checks:
- all
- -QF1008 # https://staticcheck.dev/docs/checks/#QF1008 Omit embedded fields from selector expression.
Loading