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
cd09bc6
First GH actions setup
tpasternak-engflow Oct 19, 2026
f2f18fd
Update bazil path
tpasternak-engflow Oct 19, 2026
af50a3d
Update sysbox-fs (avoid dubious ownoership error)
tpasternak-engflow Oct 19, 2026
f5522a4
Fix dubious ownership in sysbox-mgr
tpasternak-engflow Oct 19, 2026
31fbda2
Fix dubious ownership in sysbox-runc
tpasternak-engflow Oct 19, 2026
677520a
Try build on 26.04
tpasternak-engflow Oct 19, 2026
7b54640
Show docker version
tpasternak-engflow Oct 19, 2026
81110ae
Adapt to new protobuf generation way
tpasternak-engflow Oct 19, 2026
6ac20ac
Build deb on CI
tpasternak-engflow Oct 19, 2026
4e42833
Build: Fix to jammy
tpasternak-engflow Oct 19, 2026
cd2da33
Switch deb build to resolute
tpasternak-engflow Oct 19, 2026
f6cfc8c
Switch to resolute
tpasternak-engflow Oct 19, 2026
5d621d2
update golang version to support the new grpc generator
tpasternak-engflow Oct 19, 2026
1d3768c
converter patch
tpasternak-engflow Oct 19, 2026
bbc2c22
Trick to work around always broken makefile
tpasternak-engflow Oct 19, 2026
b3b616e
Run tests, too
tpasternak-engflow Oct 20, 2026
f95c4b2
Do not call Errorf with non-constant strings
tpasternak-engflow Oct 20, 2026
fe373b1
Install libseccomp for tests
tpasternak-engflow Oct 20, 2026
75c0e80
Show versions
tpasternak-engflow Oct 20, 2026
37a140a
Disable test-runc, as it requires Debian 11 images
tpasternak-engflow Oct 20, 2026
639e3fe
Disable apparmor fusermount3 for CI tests
tpasternak-engflow Oct 20, 2026
c8ac042
Split test and build into independent jobs (as tests fail)
tpasternak-engflow Oct 20, 2026
09c0344
Less generic artifacts path
tpasternak-engflow Oct 20, 2026
44281b1
Annotate places that require maintainer and copyright info update
tpasternak-engflow Oct 20, 2026
48e1aab
Print deb info after run
tpasternak-engflow Oct 20, 2026
314ea4f
Don't upload artfiacts
tpasternak-engflow Oct 20, 2026
6c6306d
Version override and print
tpasternak-engflow Oct 21, 2026
5c7ff59
Release workflow
tpasternak-engflow Oct 21, 2026
6f97274
Fix deb extraction
tpasternak-engflow Oct 21, 2026
dad4235
Apply patch not to fail on git rev parse
tpasternak-engflow Oct 21, 2026
d4d8a1f
try false
tpasternak-engflow Oct 21, 2026
55b6cdf
fixed commit no to verify
tpasternak-engflow Oct 21, 2026
784bee7
apply patch in a buggy makefile setup
tpasternak-engflow Oct 21, 2026
bb4c32e
Don't mount gitconfig
tpasternak-engflow Oct 21, 2026
4cebb1b
Set gitconfig and switch build to generic
tpasternak-engflow Oct 22, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
87 changes: 87 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
name: Build Sysbox Packages

on:
push:
branches: [ "master", "main" ]
pull_request:
branches: [ "master", "main" ]
workflow_dispatch:

jobs:
test:
name: Test Sysbox
runs-on: ubuntu-26.04
steps:
- name: Show versions
run: |
echo "Docker"
docker --version
echo "uname"
uname -a

- name: Checkout repository and submodules
uses: actions/checkout@f548e57e544e1ff5a4c46bf1e1b8685f8e4a348a
with:
submodules: recursive
fetch-depth: 0

- name: Test Sysbox
run: |
(cd sysbox-mgr && git apply ../sysbox-mgr-dont-call-errorf.patch)
(cd sysbox-mgr && git apply ../sysbox-mgr.patch)
(cd sysbox-runc && git apply ../sysbox-runc.patch)
sudo apt update && sudo apt install -y apparmor-utils
sudo aa-complain fusermount3 # makes sense only in isolated environment, do not copy to bundles
make test

build:
name: Build Sysbox (DEB)
runs-on: ubuntu-26.04
steps:
- name: Show versions
run: |
echo "Docker"
docker --version
echo "uname"
uname -a

- name: Checkout repository and submodules
uses: actions/checkout@f548e57e544e1ff5a4c46bf1e1b8685f8e4a348a
with:
submodules: recursive
fetch-depth: 0

- name: Build Sysbox
run: |
(cd sysbox-pkgr && git apply ../sysbox-pkgr.patch)
(cd sysbox-pkgr && git apply ../changelog-converter.patch)
(cd sysbox-pkgr && git apply ../trick-to-workarount-always-fail-setup.patch)
(cd sysbox-pkgr && git apply ../pkgr-copyright-and-license.patch)
(cd sysbox-pkgr && git apply ../pkgr-apply-custom-changes.patch)
git config --global user.name "Unset"
(cd sysbox-pkgr && make sources/sysbox)
(cd sysbox-pkgr/sources/sysbox/sysbox-fs && git apply ../../../../sysbox-fs.patch)
(cd sysbox-pkgr && make sysbox-deb generic)

- name: Locate generated .deb packages
run: |
find . -type f -name "*.deb" -ls

- name: Info for deb artifacts
run: |
dpkg --info sysbox-pkgr/deb/build/*/*/sysbox-ce_*.linux_*.deb

- name: Verify deb artifact versions
run: |
# Locate the package
DEB_FILE=$(ls sysbox-pkgr/deb/build/*/*/sysbox-ce_*.linux_*.deb | head -n 1)

# 1. Unpack deb into a temporary directory
EXTRACT_DIR="./extracted_deb"
mkdir -p "$EXTRACT_DIR"
dpkg-deb --extract "$DEB_FILE" "$EXTRACT_DIR"

# 2. Run the apps with --version
"$EXTRACT_DIR/usr/bin/sysbox-fs" --version
"$EXTRACT_DIR/usr/bin/sysbox-runc" --version
"$EXTRACT_DIR/usr/bin/sysbox-mgr" --version
75 changes: 75 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
name: Release Sysbox

on:
push:
tags:
- 'v*-test'

permissions:
contents: write

jobs:
build:
name: Build Sysbox (DEB)
runs-on: ubuntu-26.04
steps:
- name: Show versions
run: |
echo "Docker"
docker --version
echo "uname"
uname -a

- name: Checkout repository and submodules
uses: actions/checkout@f548e57e544e1ff5a4c46bf1e1b8685f8e4a348a
with:
submodules: recursive
fetch-depth: 0

- name: Verify release branch
run: |
echo "Verifying that tag '${{ github.ref_name }}' belongs to a release-* branch..."
git fetch --no-tags --depth=1 origin '+refs/heads/*:refs/remotes/origin/*'

if ! git branch -r --contains HEAD | grep -E '^\s*origin/release-'; then
echo "::error::Tag '${{ github.ref_name }}' was not created on a branch prefixed with 'release-'."
echo "Branches containing this commit:"
git branch -r --contains HEAD
exit 1
fi

echo "Tag '${{ github.ref_name }}' verified on a valid release branch."

- name: Build Sysbox
run: |
(cd sysbox-pkgr && git apply ../sysbox-pkgr.patch)
(cd sysbox-pkgr && git apply ../changelog-converter.patch)
(cd sysbox-pkgr && git apply ../trick-to-workarount-always-fail-setup.patch)
(cd sysbox-pkgr && git apply ../pkgr-copyright-and-license.patch)
(cd sysbox-pkgr && make sysbox-deb ubuntu-resolute)

- name: Locate generated .deb packages
run: |
find . -type f -name "*.deb" -ls

- name: Info for deb artifacts
run: |
dpkg --info sysbox-pkgr/deb/build/*/*/sysbox-ce_*.linux_*.deb

- name: Generate deb checksum
run: |
mkdir -p release-assets
for pkg in sysbox-pkgr/deb/build/*/*/sysbox-ce_*.linux_*.deb; do
(cd "$(dirname "$pkg")" && sha256sum "$(basename "$pkg")") >> release-assets/SHA256SUMS
done
echo "Generated Checksums:"
cat release-assets/SHA256SUMS

- name: Create GitHub Release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh release create "${{ github.ref_name }}" \
release-assets/SHA256SUMS \
--title "${{ github.ref_name }}" \
--prerelease
10 changes: 5 additions & 5 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,16 @@
url = ../sysbox-runc.git
[submodule "sysbox-ipc"]
path = sysbox-ipc
url = ../sysbox-ipc.git
url = git@github.com:nestybox/sysbox-ipc
[submodule "sysbox-mgr"]
path = sysbox-mgr
url = ../sysbox-mgr.git
url = git@github.com:nestybox/sysbox-mgr
[submodule "sysbox-libs"]
path = sysbox-libs
url = ../sysbox-libs.git
url = git@github.com:nestybox/sysbox-libs
[submodule "sysbox-pkgr"]
path = sysbox-pkgr
url = ../sysbox-pkgr.git
url = git@github.com:nestybox/sysbox-pkgr
[submodule "sysbox-dockerfiles"]
path = sysbox-dockerfiles
url = ../dockerfiles.git
url = git@github.com:nestybox/dockerfiles
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -373,7 +373,7 @@ DOCKER_STOP := docker stop -t0 sysbox-test
##@ Testing targets

test: ## Run all sysbox test suites
test: test-fs test-mgr test-runc test-sysbox-libs test-sysbox test-sysbox-systemd
test: test-fs test-mgr test-sysbox-libs test-sysbox test-sysbox-systemd

test-sysbox: ## Run sysbox integration tests
test-sysbox: test-prereq test-img
Expand Down
1 change: 1 addition & 0 deletions VERSION_OVERRIDE
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
0.7.1-custom
27 changes: 27 additions & 0 deletions changelog-converter.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
diff --git a/deb/changelog_convert.sh b/deb/changelog_convert.sh
index 036bde0..b6e1f6d 100755
--- a/deb/changelog_convert.sh
+++ b/deb/changelog_convert.sh
@@ -95,19 +95,9 @@ function print_tag_trailer() {
local tag=$1
local unreleased=$2

- local tag_author=""
- local tag_email=""
- local tag_date=""
-
- if [[ "$unreleased" = true ]]; then
- tag_author=$(git config user.name)
- tag_email=$(git config user.email)
- tag_date=$(date --rfc-2822)
- else
- tag_author=$(git -C sysbox log -1 --format=%aN v$1)
- tag_email=$(git -C sysbox log -1 --format=%ae v$1)
- tag_date=$(git -C sysbox log -1 --format=%aD v$tag)
- fi
+ local tag_author="author"
+ local tag_email="author@localhost"
+ local tag_date=$(date --rfc-2822)

echo -e "\n -- ${tag_author} <${tag_email}> ${tag_date}\n"
}
14 changes: 14 additions & 0 deletions pkgr-apply-custom-changes.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
diff --git a/Makefile b/Makefile
index 2df228f..583dea1 100644
--- a/Makefile
+++ b/Makefile
@@ -80,6 +80,9 @@ sysbox-ce-repo:
sources/sysbox:
@printf "\n*** Cloning sysbox-ce superproject repository to $(CE_SOURCES) ***\n\n"
@git clone --recursive https://github.com/nestybox/sysbox.git sources/sysbox
+ (cd sources/sysbox/sysbox-mgr && git apply ../../../../sysbox-mgr-dont-call-errorf.patch)
+ cp ../VERSION_OVERRIDE sources/sysbox/VERSION
+

##@ Testing targets

42 changes: 42 additions & 0 deletions pkgr-copyright-and-license.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
diff --git a/deb/sysbox-ce/control b/deb/sysbox-ce/control
index 8cc5766..3088556 100644
--- a/deb/sysbox-ce/control
+++ b/deb/sysbox-ce/control
@@ -1,12 +1,11 @@
Source: sysbox-ce
Section: admin
Priority: optional
-Maintainer: Nestybox <contact@nestybox.com>
+Maintainer: unset <unset@localhost>
Build-Depends: debhelper (>= 10~),
bash,
Standards-Version: 4.1.4
-Homepage: nestybox.com
-Vcs-Git: git://github.com/nestybox/sysbox.git
+Homepage: unset

Package: sysbox-ce
Architecture: linux-any
@@ -19,7 +18,4 @@ Depends: ${shlibs:Depends},
lsb-release,
rsync,
iptables
-Description: Sysbox Community Edition (CE) is a next-generation container runtime,
- developed by Nestybox, that enables deployment of containers that are capable of
- running not just micro-services, but also system software such as Docker, Kubernetes,
- Systemd, etc., inside the container, easily and securely.
\ No newline at end of file
+Description:
\ No newline at end of file
diff --git a/deb/sysbox-ce/copyright b/deb/sysbox-ce/copyright
index b4d8d5d..f5696ed 100644
--- a/deb/sysbox-ce/copyright
+++ b/deb/sysbox-ce/copyright
@@ -10,3 +10,7 @@ Disclaimer:
Files: *
Copyright: 2019-2022 Nestybox Inc. All rights reserved.
License: Apache License, Version 2.0.
+
+Files:
+Copyright: 2026 <unset-yet>. All rights reserved.
+License: Apache License, Version 2.0.
2 changes: 1 addition & 1 deletion sysbox-fs
Submodule sysbox-fs updated 2 files
+1 −1 .gitmodules
+8 −3 Makefile
13 changes: 13 additions & 0 deletions sysbox-fs.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
diff --git a/Makefile b/Makefile
index b2c2de8..32f8f40 100644
--- a/Makefile
+++ b/Makefile
@@ -30,7 +30,7 @@ LIBSPIDMON_SRC := $(shell find $(LIBPIDMON_DIR) 2>&1 | grep -E '.*\.(go)')
NSENTER_DIR := ../sysbox-runc/libcontainer/nsenter
NSENTER_SRC := $(shell find $(NSENTER_DIR) 2>&1 | grep -E '.*\.(c|h|go)')

-COMMIT_NO := $(shell git rev-parse HEAD 2> /dev/null || true)
+COMMIT_NO := $(shell git rev-parse HEAD)
COMMIT ?= $(if $(shell git status --porcelain --untracked-files=no),$(COMMIT_NO)-dirty,$(COMMIT_NO))
BUILT_AT := $(shell date)
BUILT_BY := $(shell git config user.name)
87 changes: 87 additions & 0 deletions sysbox-mgr-dont-call-errorf.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
diff --git a/utils_test.go b/utils_test.go
index 5776272..05b3bb7 100644
--- a/utils_test.go
+++ b/utils_test.go
@@ -232,7 +232,7 @@ user2:165536:65536
sysbox:231072:268435456
`
if err := testConfigSubidRangeHelper(subidFilePre, subidFilePost, 268435456, 100000, 600100000); err != nil {
- t.Errorf(err.Error())
+ t.Error(err.Error())
}

// at beginning of range
@@ -241,7 +241,7 @@ sysbox:231072:268435456
user2:165536:65536`

if err := testConfigSubidRangeHelper(subidFilePre, subidFilePost, 65536, 100000, 600100000); err != nil {
- t.Errorf(err.Error())
+ t.Error(err.Error())
}

// in the middle of range
@@ -252,13 +252,13 @@ sysbox:165536:65536
user2:231072:65536`

if err := testConfigSubidRangeHelper(subidFilePre, subidFilePost, 65536, 100000, 600100000); err != nil {
- t.Errorf(err.Error())
+ t.Error(err.Error())
}

// not enought ids
subidFilePre = `user1:100000:65536`
if err := testConfigSubidRangeHelper(subidFilePre, subidFilePost, 600034465, 100000, 600100000); err == nil {
- t.Errorf("configSubidRange(): expected alloc error, got no error")
+ t.Error("configSubidRange(): expected alloc error, got no error")
}

// do not disturb existing sysbox entry
@@ -269,7 +269,7 @@ user3:296608:65536`
subidFilePost = subidFilePre

if err := testConfigSubidRangeHelper(subidFilePre, subidFilePost, 65536, 100000, 600100000); err != nil {
- t.Errorf(err.Error())
+ t.Error(err.Error())
}

// replace redundant sysbox entries with one entry
@@ -283,7 +283,7 @@ user3:165536:65536
sysbox:231072,65536`

if err := testConfigSubidRangeHelper(subidFilePre, subidFilePost, 65536, 100000, 600100000); err != nil {
- t.Errorf(err.Error())
+ t.Error(err.Error())
}
}

@@ -338,7 +338,7 @@ some data

want := []uint64{100000, 600100000, 100000, 2147483648}
if err := testGetSubidLimitsHelper(fileData, want); err != nil {
- t.Errorf(err.Error())
+ t.Error(err.Error())
}

// login.defs file without uid(gid) limits
@@ -348,7 +348,7 @@ some data

want = []uint64{100000, 4294967295, 100000, 4294967295}
if err := testGetSubidLimitsHelper(fileData, want); err != nil {
- t.Errorf(err.Error())
+ t.Error(err.Error())
}
}

diff --git a/volMgr/volMgr_test.go b/volMgr/volMgr_test.go
index dad573e..6bbb182 100644
--- a/volMgr/volMgr_test.go
+++ b/volMgr/volMgr_test.go
@@ -191,7 +191,7 @@ func TestCreateVol(t *testing.T) {

// create the volume and verify all is good
if _, err := testCreateVolWork(id, hostDir, rootfs, mountpoint, uid, gid, false); err != nil {
- t.Errorf(err.Error())
+ t.Error(err.Error())
}
}

Loading
Loading