Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
8372011
Bump runc to v1.2.9 for CVE-2025-31133,52565,52881
TomSweeneyRedHat Nov 19, 2025
6ecd873
Bump CI environment to match release-1.39
TomSweeneyRedHat Nov 21, 2025
9e8d0cd
Proxy module access
TomSweeneyRedHat Nov 21, 2025
2ac8c64
switch to moby/sys/capability
TomSweeneyRedHat Nov 21, 2025
a8a0459
Bump to Go 1.22
TomSweeneyRedHat Nov 24, 2025
3543cbe
Bump x/tools to v0.26.0
TomSweeneyRedHat Nov 25, 2025
0887b75
finish switching to moby/sys/capability
nalind Dec 1, 2025
ad3187e
tests/tools: bump golangci-lint and golang.org/x/tools
nalind Dec 1, 2025
d8a409e
Silence new linter warnings
nalind Dec 1, 2025
61b8eb9
Don't set ambient capabilities
kolyshkin Sep 26, 2024
1dd4dd8
Partially work around containers/common
nalind Dec 4, 2025
5569150
test start_git_server(): chown the sample repo we'll serve
nalind Dec 5, 2025
8e1439d
CI: switch to debian for testing there
nalind Dec 5, 2025
d7a53d2
CI: run integration tests on Fedora with both crun and runc
nalind Apr 17, 2025
cfe6264
run: handle relabeling bind mounts ourselves
nalind Apr 16, 2025
d84bc70
Ignore errors if label.Relabel returns ENOSUP
rhatdan Nov 29, 2023
4f6e12d
Update github.com/containers/image/v5 to get updated docker-daemon:
nalind Dec 5, 2025
a020a38
Add support for --compat-auth-file in login/logout
mtrmac Nov 7, 2023
f9b3cbb
container.conf: support attributed string slices
vrothberg Oct 25, 2023
c94b377
Stop setting "parent" in docker format
nalind Jun 3, 2024
ac14485
commit: set "parent" for docker format only when requested
nalind Jun 6, 2024
63231e1
Builder.SetWorkDir(): trim off a path separator suffix, if there is one
nalind Dec 5, 2025
ee378bf
Backport test fix from pull/5016
nalind Dec 7, 2025
333db20
Update tests to compensate for changed error messages
nalind Dec 7, 2025
98925b7
Update a push test
nalind Dec 7, 2025
d432f1b
Update the selinux spc test
nalind Dec 8, 2025
88e9d89
.cirrus: run -race only on non-PR branch
flouthoc Feb 4, 2025
ba1eaac
Makefile: run unit and conformance tests without -cover
nalind Dec 7, 2025
4b8de2f
Add a dummy "runtime" that just dumps its config file
nalind Apr 22, 2025
ee9abec
runUsingRuntime: use named constants for runtime states
nalind Apr 22, 2025
3d2ea2c
Temporarily hard-skip bud-multiple-platform-values test
edsantiago Feb 15, 2023
c29ca73
[release-1.29] Bump to v1.29.6
TomSweeneyRedHat Nov 28, 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.
117 changes: 89 additions & 28 deletions .cirrus.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ env:
#### Global variables used for all tasks
####
# Name of the ultimate destination branch for this CI run, PR or post-merge.
DEST_BRANCH: "main"
DEST_BRANCH: "release-1.29"
GOPATH: "/var/tmp/go"
GOSRC: "${GOPATH}/src/github.com/containers/buildah"
# Overrides default location (/tmp/cirrus) for repo clone
Expand All @@ -21,20 +21,22 @@ env:
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"
FEDORA_NAME: "fedora-37"
PRIOR_FEDORA_NAME: "fedora-36"
UBUNTU_NAME: "ubuntu-2204"
FEDORA_NAME: "fedora-41"
PRIOR_FEDORA_NAME: "fedora-40"
DEBIAN_NAME: "debian-13"

IMAGE_SUFFIX: "c6300530360713216"
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}"
DEBIAN_CACHE_IMAGE_NAME: "debian-${IMAGE_SUFFIX}"

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

Expand All @@ -55,7 +57,7 @@ gce_instance: &standardvm
image_project: "${IMAGE_PROJECT}"
zone: "us-central1-c" # Required by Cirrus for the time being
cpu: 2
memory: "4Gb"
memory: "4G"
disk: 200 # Gigabytes, do not set less than 200 per obscure GCE docs re: I/O performance
image_name: "${FEDORA_CACHE_IMAGE_NAME}"

Expand All @@ -68,14 +70,14 @@ meta_task:
container:
image: "quay.io/libpod/imgts:latest"
cpu: 1
memory: 1
memory: "1G"

env:
# Space-separated list of images used by this repository state
IMGNAMES: |-
${FEDORA_CACHE_IMAGE_NAME}
${PRIOR_FEDORA_CACHE_IMAGE_NAME}
${UBUNTU_CACHE_IMAGE_NAME}
${DEBIAN_CACHE_IMAGE_NAME}
build-push-${IMAGE_SUFFIX}
BUILDID: "${CIRRUS_BUILD_ID}"
REPOREF: "${CIRRUS_CHANGE_IN_REPO}"
Expand All @@ -92,7 +94,7 @@ smoke_task:
name: "Smoke Test"

gce_instance:
memory: "12Gb"
memory: "12G"

# Don't bother running on branches (including cron), or for tags.
only_if: $CIRRUS_PR != ''
Expand Down Expand Up @@ -120,7 +122,7 @@ vendor_task:

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

Expand All @@ -134,6 +136,9 @@ vendor_task:
# Confirm cross-compile ALL architectures on a Mac OS-X VM.
cross_build_task:
name: "Cross Compile"
gce_instance:
cpu: 8
memory: "24G"
alias: cross_build
only_if: >-
$CIRRUS_CHANGE_TITLE !=~ '.*CI:DOCS.*' &&
Expand All @@ -154,9 +159,10 @@ cross_build_task:
binary_artifacts:
path: ./bin/*


unit_task:
name: 'Unit tests w/ $STORAGE_DRIVER'
gce_instance:
cpu: 4
alias: unit
only_if: &not_build_docs >-
$CIRRUS_CHANGE_TITLE !=~ '.*CI:DOCS.*' &&
Expand All @@ -167,7 +173,7 @@ unit_task:
- vendor
- cross_build

timeout_in: 1h
timeout_in: 90m

matrix:
- env:
Expand All @@ -176,27 +182,25 @@ unit_task:
STORAGE_DRIVER: 'overlay'

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

binary_artifacts:
path: ./bin/*


conformance_task:
name: 'Build Conformance w/ $STORAGE_DRIVER'
name: 'Debian Conformance w/ $STORAGE_DRIVER'
alias: conformance
only_if: *not_build_docs
depends_on: *smoke_vendor_cross

gce_instance:
image_name: "${UBUNTU_CACHE_IMAGE_NAME}"
cpu: 4
image_name: "${DEBIAN_CACHE_IMAGE_NAME}"

timeout_in: 30m

matrix:
- env:
STORAGE_DRIVER: 'vfs'
TMPDIR: '/var/tmp'
- env:
STORAGE_DRIVER: 'overlay'

Expand All @@ -205,7 +209,7 @@ conformance_task:


integration_task:
name: "Integration $DISTRO_NV w/ $STORAGE_DRIVER"
name: "Integration $DISTRO_NV$RUNTIME_N w/ $STORAGE_DRIVER"
alias: integration
only_if: *not_build_docs
depends_on: *smoke_vendor_cross
Expand All @@ -216,30 +220,63 @@ integration_task:
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: "${UBUNTU_NAME}"
IMAGE_NAME: "${UBUNTU_CACHE_IMAGE_NAME}"
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: "${UBUNTU_NAME}"
IMAGE_NAME: "${UBUNTU_CACHE_IMAGE_NAME}"
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}'
Expand All @@ -260,27 +297,45 @@ integration_task:
golang_version_script: '$GOSRC/$SCRIPT_BASE/logcollector.sh golang'

integration_rootless_task:
name: "Integration rootless $DISTRO_NV w/ $STORAGE_DRIVER"
name: "Integration rootless $DISTRO_NV$RUNTIME_N w/ $STORAGE_DRIVER"
alias: integration_rootless
only_if: *not_build_docs
depends_on: *smoke_vendor_cross

matrix:
# Running rootless tests on overlay
# OVERLAY
- 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: "${FEDORA_NAME}"
IMAGE_NAME: "${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'
STORAGE_DRIVER: 'vfs'
PRIV_NAME: rootless
BUILDAH_RUNTIME: crun
RUNTIME_N: " using crun"
- env:
DISTRO_NV: "${UBUNTU_NAME}"
IMAGE_NAME: "${UBUNTU_CACHE_IMAGE_NAME}"
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: "${DEBIAN_NAME}"
IMAGE_NAME: "${DEBIAN_CACHE_IMAGE_NAME}"
STORAGE_DRIVER: 'overlay'
PRIV_NAME: rootless

Expand All @@ -304,6 +359,10 @@ in_podman_task:
only_if: *not_build_docs
depends_on: *smoke_vendor_cross

gce_instance:
cpu: 8
memory: "8G"

env:
# This is key, cause the scripts to re-execute themselves inside a container.
IN_PODMAN: 'true'
Expand Down Expand Up @@ -372,6 +431,8 @@ test_image_build_task:
# set of tasks all passed, and allows confirming that based on the status
# of this task.
success_task:
# N/B: The prow merge-bot (tide) is sensitized to this exact name, DO NOT CHANGE IT.
# Ref: https://github.com/openshift/release/pull/48909
name: "Total Success"
alias: success

Expand Down
1 change: 0 additions & 1 deletion .golangci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,5 @@ run:
concurrency: 4
linters:
enable:
- revive
- unconvert
- unparam
36 changes: 36 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,42 @@

# Changelog

## v1.29.6 (2025-12-11)

Temporarily hard-skip bud-multiple-platform-values test
runUsingRuntime: use named constants for runtime states
Add a dummy "runtime" that just dumps its config file
Makefile: run unit and conformance tests without -cover
.cirrus: run -race only on non-PR branch
Update the selinux spc test
Update a push test
Update tests to compensate for changed error messages
Backport test fix from pull/5016
Builder.SetWorkDir(): trim off a path separator suffix, if there is one
commit: set "parent" for docker format only when requested
Stop setting "parent" in docker format
container.conf: support attributed string slices
Add support for --compat-auth-file in login/logout
Update github.com/containers/image/v5 to get updated docker-daemon:
Ignore errors if label.Relabel returns ENOSUP
run: handle relabeling bind mounts ourselves
CI: run integration tests on Fedora with both crun and runc
CI: switch to debian for testing there
test start_git_server(): chown the sample repo we'll serve
Partially work around containers/common
Don't set ambient capabilities
Silence new linter warnings
tests/tools: bump golangci-lint and golang.org/x/tools
finish switching to moby/sys/capability
Bump x/tools to v0.26.0
Bump to Go 1.22
switch to moby/sys/capability
Proxy module access
Bump CI environment to match release-1.39
Bump runc to v1.2.9 for CVE-2025-31133,52565,52881
[release-1.29] Add conditional release-checking system test
[release-1.29] tests/conformance/testdata/Dockerfile.add:...

## v1.29.5 (2025-02-06)

Backport testing of CVE-2024-9407 fix
Expand Down
15 changes: 9 additions & 6 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ endif
# Note: Uses the -N -l go compiler options to disable compiler optimizations
# and inlining. Using these build options allows you to subsequently
# use source debugging tools like delve.
all: bin/buildah bin/imgtype bin/copy bin/tutorial docs
all: bin/buildah bin/imgtype bin/copy bin/tutorial bin/dumpspec docs

# Update nix/nixpkgs.json its latest stable commit
.PHONY: nixpkgs
Expand Down Expand Up @@ -89,6 +89,9 @@ bin/buildah.%:
mkdir -p ./bin
GOOS=$(word 2,$(subst ., ,$@)) GOARCH=$(word 3,$(subst ., ,$@)) $(GO_BUILD) $(BUILDAH_LDFLAGS) -o $@ -tags "containers_image_openpgp" ./cmd/buildah

bin/dumpspec: $(SOURCES)
$(GO_BUILD) $(BUILDAH_LDFLAGS) -o $@ $(BUILDFLAGS) ./tests/dumpspec

bin/imgtype: $(SOURCES) tests/imgtype/imgtype.go
$(GO_BUILD) $(BUILDAH_LDFLAGS) -o $@ $(BUILDFLAGS) ./tests/imgtype/imgtype.go

Expand Down Expand Up @@ -168,7 +171,7 @@ install.runc:

.PHONY: test-conformance
test-conformance:
$(GO_TEST) -v -tags "$(STORAGETAGS) $(SECURITYTAGS)" -cover -timeout 20m ./tests/conformance
$(GO_TEST) -v -tags "$(STORAGETAGS) $(SECURITYTAGS)" -timeout 20m ./tests/conformance

.PHONY: test-integration
test-integration: install.tools
Expand All @@ -180,17 +183,17 @@ tests/testreport/testreport: tests/testreport/testreport.go

.PHONY: test-unit
test-unit: tests/testreport/testreport
$(GO_TEST) -v -tags "$(STORAGETAGS) $(SECURITYTAGS)" -cover $(RACEFLAGS) $(shell $(GO) list ./... | grep -v vendor | grep -v tests | grep -v cmd) -timeout 45m
$(GO_TEST) -v -tags "$(STORAGETAGS) $(SECURITYTAGS)" $(RACEFLAGS) $(shell $(GO) list ./... | grep -v vendor | grep -v tests | grep -v cmd) -timeout 45m
tmp=$(shell mktemp -d) ; \
mkdir -p $$tmp/root $$tmp/runroot; \
$(GO_TEST) -v -tags "$(STORAGETAGS) $(SECURITYTAGS)" -cover $(RACEFLAGS) ./cmd/buildah -args --root $$tmp/root --runroot $$tmp/runroot --storage-driver vfs --signature-policy $(shell pwd)/tests/policy.json --registries-conf $(shell pwd)/tests/registries.conf
$(GO_TEST) -v -tags "$(STORAGETAGS) $(SECURITYTAGS)" $(RACEFLAGS) ./cmd/buildah -args --root $$tmp/root --runroot $$tmp/runroot --storage-driver vfs --signature-policy $(shell pwd)/tests/policy.json --registries-conf $(shell pwd)/tests/registries.conf

vendor-in-container:
podman run --privileged --rm --env HOME=/root -v `pwd`:/src -w /src docker.io/library/golang:1.17 make vendor
podman run --privileged --rm --env HOME=/root -v `pwd`:/src -w /src docker.io/library/golang:1.22 make vendor

.PHONY: vendor
vendor:
GO111MODULE=on $(GO) mod tidy -compat=1.17
GO111MODULE=on $(GO) mod tidy -compat=1.22
GO111MODULE=on $(GO) mod vendor
GO111MODULE=on $(GO) mod verify

Expand Down
2 changes: 1 addition & 1 deletion add.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ import (
"github.com/containers/storage/pkg/fileutils"
"github.com/containers/storage/pkg/idtools"
"github.com/hashicorp/go-multierror"
"github.com/opencontainers/runc/libcontainer/userns"
"github.com/moby/sys/userns"
"github.com/opencontainers/runtime-spec/specs-go"
"github.com/sirupsen/logrus"
)
Expand Down
Loading