Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
726 commits
Select commit Hold shift + click to select a range
71096c4
cache push only overrides remote if explicit
deitch Mar 5, 2024
70ae026
Merge pull request #4009 from deitch/cache-push-nopush-option
deitch Mar 5, 2024
58b7ae5
add pkg remote-tag option to tag descriptors remotely without pulling…
deitch Mar 6, 2024
67afa5d
Merge pull request #4010 from deitch/remote-tag-rename
deitch Mar 6, 2024
17ed893
kernel builder handle push properly
deitch Mar 6, 2024
3087e90
fix builder image tagging using new remote-tag option of linuxkit
deitch Mar 6, 2024
0d89422
Merge pull request #4011 from deitch/kernel-push-builder
deitch Mar 6, 2024
51696d2
remote-tag enable copying across repositories and registries
deitch Mar 6, 2024
b8b00e8
Merge pull request #4012 from deitch/remote-tag-with-copy
deitch Mar 6, 2024
4df07dd
add support for pkg release tags
deitch Mar 11, 2024
10bbf86
Merge pull request #4013 from deitch/pkg-release
deitch Mar 11, 2024
14f5433
fix pkg release action workflow
deitch Mar 11, 2024
55963aa
Merge pull request #4014 from deitch/fix-release-pkgs
deitch Mar 11, 2024
15730ea
ensure package release flow is picked up
deitch Mar 11, 2024
719ae00
Merge pull request #4015 from deitch/pkg-tag-workflow
deitch Mar 11, 2024
88ff3ac
fix pkg-release flow for building linuxkit
deitch Mar 11, 2024
7952421
Merge pull request #4016 from deitch/next-fix-releases
deitch Mar 11, 2024
c3b151e
missing pipe in package_release workflow
deitch Mar 11, 2024
1b1007a
Merge pull request #4017 from deitch/pkg-release-cmds
deitch Mar 11, 2024
4496612
util: allow pulling from local registry
christoph-zededa Mar 15, 2024
3ff5dac
Merge pull request #4018 from christoph-zededa/fix_pulling_from_local…
deitch Mar 17, 2024
6a7cea9
README.md: fix format parameter
christoph-zededa Mar 19, 2024
b7bb183
Merge pull request #4020 from christoph-zededa/fix_doc_build_iso-efi
deitch Mar 20, 2024
f2240fb
FIX disk parameter usage
Fabsolute Nov 25, 2023
de79880
Merge pull request #3960 from Fabsolute/fix-disk-parameter-for-virtua…
deitch Apr 12, 2024
6af6291
add tag to args passed for package builds
deitch Apr 16, 2024
9e18c92
Merge pull request #4023 from deitch/commit-tag-arg
deitch Apr 16, 2024
4d21200
fix kernel tools build.yml files to reflect correct dockerfiles
deitch Apr 16, 2024
47d02ec
Merge pull request #4024 from deitch/fix-kernel-tools-build
deitch Apr 17, 2024
1fe8cba
include image reference as source in every tar file header
deitch Apr 18, 2024
a610332
Merge pull request #4025 from deitch/tag-sources-in-tar
deitch Apr 18, 2024
632b406
add support for input-tar
deitch Apr 18, 2024
dd1ae90
Merge pull request #4026 from deitch/increment-tar-output
deitch Apr 19, 2024
dc12b9b
prevent using same file for input tar and output tar
deitch Apr 21, 2024
cea4c0d
Merge pull request #4027 from deitch/not-same-file
deitch Apr 21, 2024
4ce1364
chore: fix function name in comment
largemouth Apr 22, 2024
bc5d08d
Merge pull request #4028 from largemouth/master
deitch Apr 24, 2024
c836e54
use canonical ref when looking in cache
deitch Apr 24, 2024
04792e0
bump actions to v4 to avoid deprecation
deitch Apr 25, 2024
e6b0ae0
Merge pull request #4030 from deitch/canonicalize-pull
deitch Apr 25, 2024
8afecd5
Merge pull request #4031 from deitch/update-actions
deitch Apr 25, 2024
803747f
Make cgroups v2 the default:
jacobweinstock Apr 27, 2024
2fe19f7
Update dependencies
jacobweinstock Apr 27, 2024
38e62bb
Merge pull request #4033 from jacobweinstock/cgroupsv2-as-default
deitch Apr 28, 2024
2578ae2
explicitly use GITHUB_TOKEN for actions script
deitch Apr 28, 2024
d3257af
Merge pull request #4034 from deitch/token-for-actions
deitch Apr 28, 2024
c32c74b
github script v7
deitch Apr 28, 2024
e171750
Merge pull request #4035 from deitch/action-script-v7
deitch Apr 28, 2024
5299f94
use proper path for github-script properties
deitch Apr 28, 2024
b49e32a
Merge pull request #4036 from deitch/fix-action-script-v7
deitch Apr 28, 2024
379617c
move moby components that do not have runtime dependencies to own dir…
deitch May 7, 2024
6d37353
Merge pull request #4039 from deitch/split-moby
deitch May 7, 2024
f5dcefc
add cache export format OCI
deitch May 16, 2024
9e06024
Merge pull request #4040 from deitch/export-formats
deitch May 16, 2024
4c3d189
bump actions/setup-go to v5 and go-version to 1.22.3
deitch Jun 11, 2024
f48e442
Merge pull request #4044 from deitch/go-1.22
deitch Jun 11, 2024
7c46ac8
bump buildkit to latest v0.13.2 with deps
deitch Jun 11, 2024
977afa7
remove no longer necessary rand.Seed
deitch Jun 11, 2024
4f89f4f
Merge pull request #4043 from deitch/buildkit-bump
deitch Jun 11, 2024
5e42d05
Improve support for third-party registry images
jalaziz Jun 19, 2024
21e9f0f
add tests
jalaziz Jun 22, 2024
be7dfdd
Merge pull request #4046 from jalaziz/4045
deitch Jun 24, 2024
cda7577
ensured dumpFollow of logread includes 'follow' behaviour
danrzs Jul 3, 2024
3f80ca6
Merge pull request #4049 from danrzs/master
deitch Jul 3, 2024
8f6ea3c
switch Packet references to Equinix Metal
deitch Jul 5, 2024
ad4c97c
switch linuxkit from deprecated packngo to equinixmetal go-sdk
deitch Jul 5, 2024
c90f2ee
Merge pull request #4052 from deitch/packet-to-metal
deitch Jul 7, 2024
04dc904
cmd: allow more than one config yaml for build
christoph-zededa Jul 10, 2024
8d76ae2
Merge pull request #4054 from christoph-zededa/fix_build_command_args
deitch Jul 10, 2024
8bb9174
properly save linuxkit version
deitch Jul 11, 2024
bfac135
Merge pull request #4055 from deitch/include-semver-in-version
deitch Jul 11, 2024
7acc826
separate release builds of macOS CGO from others
deitch Jul 11, 2024
933445f
Merge pull request #4056 from deitch/handle-cross-compilation-macos
deitch Jul 11, 2024
e6ac960
make targets separated by OS
deitch Jul 11, 2024
e6ffc8a
Merge pull request #4057 from deitch/build-targets-all-not-macos
deitch Jul 11, 2024
6bbda93
update package versions and go version for pkg/init
deitch Jul 16, 2024
7b114bf
Merge pull request #4058 from deitch/init-security-alerts
deitch Jul 16, 2024
1fe9d0e
bump pkg/init containerd, runc and image-spec to fix CVEs
deitch Jul 16, 2024
5d940f4
Merge pull request #4059 from deitch/more-init-alerts
deitch Jul 16, 2024
4ad5595
bump docker deps in linuxkit binary
deitch Jul 16, 2024
53f848a
pkg/rngd bump x/sys version
deitch Jul 16, 2024
7ac157e
pkg/host-timesync-daemon bump x/sys version
deitch Jul 16, 2024
315a1db
pkg/extend bump x/sys version
deitch Jul 16, 2024
f13aee1
update rngd/extend/init usage in yml
deitch Jul 16, 2024
cd65ec3
Merge pull request #4060 from deitch/linuxkit-deps
deitch Jul 16, 2024
690a4ee
Merge pull request #4061 from deitch/multi-pkg-deps
deitch Jul 16, 2024
5d9f3e0
include example for debugging containerd
deitch Jul 17, 2024
c3c6dc7
Merge pull request #4062 from deitch/debug-containerd
deitch Jul 17, 2024
55e13c9
containerd to 1.7.20
deitch Jul 18, 2024
d68494b
Merge pull request #4063 from deitch/bump-containerd-1.7.20
deitch Jul 18, 2024
d665a97
containerd config.toml v2
deitch Jul 18, 2024
fa08581
Merge pull request #4064 from deitch/containerd-config-2
deitch Jul 19, 2024
b953d17
add support for volumes
deitch Jul 16, 2024
a5085fc
pkg/init support for volumes
deitch Jul 18, 2024
38a0cb6
test cases for volumes
deitch Jul 21, 2024
34304b1
Merge pull request #4065 from deitch/volumes
deitch Jul 21, 2024
51727db
support for pkg build ssh
deitch Jul 28, 2024
270fd1c
Merge pull request #4066 from deitch/ssh-support
deitch Jul 28, 2024
2af30c5
support cmdline-driven debugging mode for runc
deitch Aug 22, 2024
370bf51
Merge pull request #4067 from deitch/runc-debug-options
deitch Aug 22, 2024
b36cad0
when building read-only volumes, still use overlayfs
deitch Aug 22, 2024
745da8f
Merge pull request #4069 from deitch/fix-ro-volumes
deitch Aug 22, 2024
15c808c
more verbose runc messages
deitch Aug 22, 2024
5f09346
Merge pull request #4070 from deitch/verbose-runc
deitch Aug 22, 2024
cb8f36a
moby: check architecture for docker image
christoph-zededa Aug 27, 2024
5848a28
use only stdout/stderr or file for runc output
deitch Aug 28, 2024
6979859
Merge pull request #4073 from deitch/init-debug-no-control
deitch Aug 28, 2024
ba25e59
remove linuxefi grub EFI handover to normal linux loading
deitch Aug 29, 2024
1d6d5fa
Merge pull request #4074 from deitch/efi-kernel
deitch Aug 29, 2024
fa3207c
Merge pull request #4072 from christoph-zededa/docker_cache_consider_…
deitch Aug 29, 2024
2159aac
bump docker deps to v27.2.0
deitch Sep 8, 2024
d7a6bc8
Merge pull request #4077 from deitch/docker-bump
deitch Sep 8, 2024
da3be29
vendor: switch to moby/sys/capability
kolyshkin Oct 1, 2024
8556f02
Merge pull request #4082 from kolyshkin/moby-cap
deitch Oct 1, 2024
67e9e22
restructure logging
deitch Oct 1, 2024
5e3f7dd
Merge pull request #4083 from deitch/restructure-logging
deitch Oct 1, 2024
81f0c3e
internal restructure to use explicit platform instead of implicit arc…
deitch Oct 1, 2024
e4d4106
Merge pull request #4084 from deitch/cache-platform-instead-of-arch
deitch Oct 1, 2024
76f4802
additional volume support in building
deitch Sep 30, 2024
ad95c6f
Merge pull request #4085 from deitch/volume-image
deitch Oct 1, 2024
4f765b5
support --tag in build.yml for packages
deitch Dec 23, 2024
dc8c6d5
Merge pull request #4089 from deitch/tag-in-build-yml
deitch Dec 23, 2024
59c3f62
Update linuxkit/alpine
deitch Jan 3, 2025
709a945
tools/alpine: Update to latest
deitch Jan 3, 2025
b7cc91e
include riscv64 in push-manifest script
deitch Jan 3, 2025
bd30821
tools: Update to the latest linuxkit/alpine
deitch Jan 3, 2025
fb54321
Update use of tools to latest
deitch Jan 3, 2025
41ddfa0
tests: Update packages to the latest linuxkit/alpine
deitch Jan 3, 2025
db23fd9
Update use of test packages to latest
deitch Jan 3, 2025
67d6dad
pkgs: Update packages to the latest linuxkit/alpine
deitch Jan 3, 2025
4165491
Update package tags
deitch Jan 3, 2025
4e384a8
fix tss compilation with patches
deitch Jan 6, 2025
0db6e01
bump alpine in some test cases
deitch Jan 7, 2025
d1b42ca
update example for tss
deitch Jan 7, 2025
cfdeb54
Merge pull request #4090 from deitch/alpine-321-with-riscv64
deitch Jan 7, 2025
94d4902
Update linuxkit/alpine
deitch Jan 8, 2025
1c11777
tools/alpine: Update to latest
deitch Jan 8, 2025
35ab648
update alpine install docs with riscv64 and no grub-dev
deitch Jan 8, 2025
89ed0f5
remove grub-dev in favour of grub package
deitch Jan 8, 2025
48f5de7
tools: Update to the latest linuxkit/alpine
deitch Jan 8, 2025
da5fefe
Update use of tools to latest
deitch Jan 8, 2025
6f46c20
tests: Update packages to the latest linuxkit/alpine
deitch Jan 8, 2025
6cbd483
Update use of test packages to latest
deitch Jan 8, 2025
810e3c1
pkgs: Update packages to the latest linuxkit/alpine
deitch Jan 8, 2025
0579188
Update package tags
deitch Jan 8, 2025
df4d0c0
update built-in images in linuxkit cmd
deitch Jan 9, 2025
b929f3b
Merge pull request #4091 from deitch/remove-grub-dev
deitch Jan 9, 2025
7270857
Update linuxkit/alpine
deitch Jan 10, 2025
c7c3ab8
tools/alpine: Update to latest
deitch Jan 10, 2025
a7baaaa
tools: Update to the latest linuxkit/alpine
deitch Jan 10, 2025
68caa0b
Update use of tools to latest
deitch Jan 10, 2025
e625d0c
tests: Update packages to the latest linuxkit/alpine
deitch Jan 10, 2025
0edde24
Update use of test packages to latest
deitch Jan 10, 2025
3e2df7e
pkgs: Update packages to the latest linuxkit/alpine
deitch Jan 10, 2025
0b67767
Update package tags
deitch Jan 10, 2025
95fcdc3
node_exporter to v1.8.2
deitch Jan 11, 2025
5e3e7cc
Merge pull request #4093 from deitch/unify-alpine-packages
deitch Jan 12, 2025
c4d88d6
Update linuxkit/alpine
deitch Jan 15, 2025
bdda3d0
tools/alpine: Update to latest
deitch Jan 15, 2025
084e2a0
tools: Update to the latest linuxkit/alpine
deitch Jan 15, 2025
d83a55f
Update use of tools to latest
deitch Jan 15, 2025
9b5742f
tests: Update packages to the latest linuxkit/alpine
deitch Jan 15, 2025
f111765
Update use of test packages to latest
deitch Jan 15, 2025
ed42bcd
pkgs: Update packages to the latest linuxkit/alpine
deitch Jan 15, 2025
5c2e62d
Update package tags
deitch Jan 15, 2025
4aa891d
Update use of tools to latest
deitch Jan 15, 2025
da2988c
Update use of test packages to latest
deitch Jan 15, 2025
53cb098
add riscv64 to mkimage-qcow2-efi
deitch Jan 15, 2025
caf39bb
Update use of tools to latest
deitch Jan 15, 2025
fd778c4
Update use of test packages to latest
deitch Jan 15, 2025
9398785
Merge pull request #4094 from deitch/alpine-llvm-update
deitch Jan 15, 2025
fd6839d
Fix raw efi build image size calculation (#4097)
ChrisIgel Jan 27, 2025
66ca009
Try resizing all found devices (#4099)
ChrisIgel Jan 27, 2025
7ac34a6
pkg/extend fix panic for empty partition tables (#4101)
ChrisIgel Jan 30, 2025
76b5197
Add alpine bcc tools (#4105)
deitch Feb 17, 2025
efb1396
always tee test linuxkit run to tty, so if it gets stuck, we see why …
deitch Feb 19, 2025
18e7eea
riscv64 kernel (#4106)
deitch Feb 21, 2025
2053d17
Enable riscv64 default (#4108)
deitch Feb 23, 2025
5dbd808
bump golangci-lint-action (#4109)
deitch Feb 23, 2025
1d96f04
Buildkit builder 0.20.0 (#4110)
deitch Feb 23, 2025
198db90
containerd 20 (#4100)
deitch Feb 24, 2025
14c29db
Containerd v2.0.3 (#4112)
deitch Mar 6, 2025
ec70c12
add efi_gop module to grub (#4113)
ChrisIgel Mar 11, 2025
7a129b6
bump golangci-lint to v2.0.2 and update all lint issues (#4116)
deitch Apr 9, 2025
89a95f9
when updating an index, remove sboms or other manifests that referenc…
deitch May 2, 2025
b42e1a8
feat: add riscv64 as supported arch (#4124)
stskeeps Jun 23, 2025
18a7619
pkg build: handle race condition where builder is started at same tim…
deitch Jun 25, 2025
5a13eda
Bump buildkit (#4128)
deitch Jun 25, 2025
d45d3e8
more builder race condition; do restart if could not remove, and only…
deitch Jun 25, 2025
3f54a80
git: synchronize `update-index` with a mutex (#4130)
christoph-zededa Jun 25, 2025
4df360d
Centralize safe cache writes (#4132)
deitch Jun 26, 2025
254aefc
check for dirty tree without update-index, which is not parallel-safe…
deitch Jun 26, 2025
50120bc
ensure that new index does not break on missing lock file (#4134)
deitch Jun 27, 2025
818bccf
docs: Add instructions for OCI export from Docker (#4135)
danrzs Jun 30, 2025
940c1b7
simplify cache locking (#4136)
deitch Jun 30, 2025
2b46873
add support for pkg build authentication (#4137)
deitch Jul 2, 2025
c0c5668
swap 'pkg push' for 'pkg build --push', keeping 'pkg push' as depreca…
deitch Jul 4, 2025
fa24672
add missing CRLF in log message (#4144)
deitch Jul 13, 2025
33ee279
for pkg build builder, copy config over rather than bind-mounting it …
deitch Jul 13, 2025
bc44cb8
fix registry auth (#4146)
deitch Jul 15, 2025
eae7887
check lock when reading cache provider index (#4147)
deitch Jul 21, 2025
ef68e7b
provide mirror support (#4148)
deitch Jul 27, 2025
1d3a823
option to pull down required images from to the cache, so that build…
deitch Jul 27, 2025
3d9bb9a
add support for specifying additional certificates (#4153)
deitch Jul 31, 2025
1caf2fe
add support for custom build args (#4155)
deitch Aug 11, 2025
999110c
add support for dynamically calculated build arg sets (#4156)
deitch Aug 13, 2025
cacc2bb
simplify sharding in package tests for CI; increase to 12 shards (#4158)
deitch Aug 13, 2025
5cd4873
update debian for binfmt (#4159)
deitch Aug 14, 2025
506d11f
bump alpine; add erofs-utils package (#4161)
deitch Aug 27, 2025
c3228fb
erofs output (#4162)
deitch Aug 28, 2025
8d19b25
add support for pkg build dry-run (#4163)
deitch Aug 28, 2025
41cafa3
bump runc to v1.3.0 and containerd to v2.1.4 (#4165)
deitch Aug 28, 2025
179f74a
pkglib/git: remove trailing spaces of GOPKGVERSION (#4164)
christoph-zededa Aug 29, 2025
9da6903
cache/provider: use lock correctly
christoph-zededa Sep 2, 2025
358803f
validate yaml for extraneous fields in pkg build
deitch Sep 5, 2025
a755fd9
validate linuxkit yaml for unknown fields
deitch Sep 5, 2025
2ed6850
when comparing builder config files, ensure only compare post-processed
deitch Sep 12, 2025
bb0cf49
pkglib/build: make dockerRunner public
christoph-zededa Sep 12, 2025
43200ea
pkglib: untangle WithBuildDocker and DryRun
christoph-zededa Sep 12, 2025
4c81a14
do full releases, not draft
deitch Sep 16, 2025
a8cf7da
fix build when pulling from non-default registry
deitch Sep 25, 2025
47d5c89
Fix cache import failing when reading from stdin
europaul Sep 30, 2025
d94f2e9
Fix Go formatting issues to pass make local-check
europaul Sep 30, 2025
be7c483
Create new kernel series 6.12.x
ChrisIgel Oct 12, 2025
1200d24
Add kernel apparmor support
ChrisIgel Oct 12, 2025
2e3df6e
Configure EIF boot/stub
ChrisIgel Oct 12, 2025
07231ef
Add new kernel tests
ChrisIgel Oct 12, 2025
c5d422c
Fix kernel show-tags output
ChrisIgel Oct 12, 2025
ffd4a12
Enable CONFIG_INET_DIAG_DESTROY
ChrisIgel Oct 20, 2025
17e9b44
Update kernel versions/hashes
ChrisIgel Oct 24, 2025
5f0b5f2
Update remaining hashes in tests manually
ChrisIgel Oct 24, 2025
dadefbc
Fix kernel config test for 6.12.x
ChrisIgel Oct 24, 2025
5673ee1
Update kernel config test hashes
ChrisIgel Oct 24, 2025
397d7c2
Add systemd-boot to alpine
ChrisIgel Oct 27, 2025
35ab913
tools: Update to the latest linuxkit/alpine
ChrisIgel Oct 27, 2025
315cead
Update use of tools to latest
ChrisIgel Oct 27, 2025
7dfbca3
tests: Update packages to the latest linuxkit/alpine
ChrisIgel Oct 27, 2025
c56bc37
Update use of test packages to latest
ChrisIgel Oct 27, 2025
38c84d8
pkgs: Update packages to the latest linuxkit/alpine
ChrisIgel Oct 27, 2025
72de5c6
Update package tags
ChrisIgel Oct 27, 2025
6786caa
tests: Update tests cases to the latest linuxkit/alpine
deitch Oct 28, 2025
1723cf9
Update package tags
deitch Oct 28, 2025
8fa6ab7
revert rpi3 build change
deitch Oct 28, 2025
91a857d
sanity check on images.yaml
deitch Oct 28, 2025
f73fa3b
update tools based on grub
deitch Oct 28, 2025
f5c8db7
update images.yaml
deitch Oct 28, 2025
e9114d6
fix missing containerd-dev
deitch Oct 28, 2025
238449c
more package hash updates
deitch Oct 28, 2025
804d523
Switch to systemd-boot for raw-efi builds
ChrisIgel Oct 31, 2025
56e37a8
Add raw-efi test + documentation
ChrisIgel Nov 3, 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.
258 changes: 180 additions & 78 deletions .github/workflows/ci.yml

Large diffs are not rendered by default.

38 changes: 38 additions & 0 deletions .github/workflows/package_release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: Release Tagged Packages

on:
create:

jobs:
release:
name: Release packages
if: github.ref_type == 'tag' && startsWith(github.ref, 'refs/tags/pkg-v')
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v4
- name: Set up Go based on go.mod
uses: actions/setup-go@v5
with:
go-version-file: 'src/cmd/linuxkit/go.mod'
id: go
- name: Ensure bin/ directory
run: mkdir -p bin
- name: Install linuxkit
run: |
go -C ./src/cmd/linuxkit build -o $(pwd)/bin/linuxkit
sudo mv bin/linuxkit /usr/local/bin/
- name: Login to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Publish Packages as Release
# this should not build anything, as they all should be built already
# however, it can fail if we push the tag before the merge-to-master build is complete, since that may publish
# so *always* wait for any merge-to-master to complete before publishing pkg-v* tags
run: |
RELEASE_TAG=${GITHUB_REF#refs/tags/pkg-}
echo "RELEASE_TAG=${RELEASE_TAG}"
[ -n "${RELEASE_TAG}" ] || { echo "Not a tag"; exit 1; }
make OPTIONS="--skip-platforms linux/s390x" -C pkg push PUSHOPTIONS="--nobuild --release ${RELEASE_TAG}"
74 changes: 74 additions & 0 deletions .github/workflows/publish.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
# publish changes that are merged to master
name: Packages Push
on:
workflow_run:
workflows: [LinuxKit CI]
types: [completed]
branches: [master, main]

jobs:
packages:
env:
linuxkit_file: linuxkit-amd64-linux
name: Publish Changed Packages
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v4
- name: Ensure bin/ directory
run: mkdir -p bin
- name: Download linuxkit
uses: actions/github-script@v7
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
var artifacts = await github.rest.actions.listWorkflowRunArtifacts({
owner: context.repo.owner,
repo: context.repo.repo,
run_id: ${{github.event.workflow_run.id }},
});
var matchArtifact = artifacts.data.artifacts.filter((artifact) => {
return artifact.name == "${{ env.linuxkit_file }}"
})[0];
var download = await github.rest.actions.downloadArtifact({
owner: context.repo.owner,
repo: context.repo.repo,
artifact_id: matchArtifact.id,
archive_format: 'zip',
});
var fs = require('fs');
fs.writeFileSync('${{github.workspace}}/bin/${{ env.linuxkit_file }}.zip', Buffer.from(download.data));
- name: unzip linuxkit
run: cd bin && unzip ${{ env.linuxkit_file }}.zip
- name: Symlink Linuxkit
run: |
chmod ugo+x bin/${{ env.linuxkit_file }}
sudo ln -s $(pwd)/bin/${{ env.linuxkit_file }} /usr/local/bin/linuxkit
/usr/local/bin/linuxkit version
- name: Restore Package Cache
uses: actions/cache@v4
with:
path: ~/.linuxkit/cache/
key: ${{ runner.os }}-linuxkit-${{ github.sha }}
restore-keys: |
${{ runner.os }}-linuxkit-
- name: Login to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Publish Packages
# this should only push changed ones:
# - unchanged: already in the registry
# - changed: already built and cached, so only will push
# Skip s390x as emulation is unreliable
run: |
make OPTIONS="--skip-platforms linux/s390x" -C pkg push PUSHOPTIONS="--nobuild"

- name: Publish Kernels
# this should only push changed ones:
# - unchanged: already in the registry
# - changed: already built and cached, so only will push
# No need to skip s390x, since kernel build.yml files all have explicit archs
run: |
make -C kernel push
97 changes: 97 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
name: Release Tagged Linuxkit

on:
create:

jobs:
build-all:
name: Build all targets expect macOS
if: github.ref_type == 'tag' && startsWith(github.ref, 'refs/tags/v')
runs-on: ubuntu-latest
steps:

- name: Check out code
uses: actions/checkout@v4
- name: Set up Go based on go.mod
uses: actions/setup-go@v5
with:
go-version-file: 'src/cmd/linuxkit/go.mod'
id: go


- name: Set path
run: echo "$(go env GOPATH)/bin" >> $GITHUB_PATH
env:
GOPATH: ${{runner.workspace}}

- name: Build
run: |
make build-targets-linux build-targets-windows
env:
GOPATH: ${{runner.workspace}}

- uses: actions/upload-artifact@v4
with:
name: release-targets-except-cgo
path: bin/

# separate macos build because macos needs CGO, and it is very hard to cross-compile that
build-macos:
name: Build macOS target
if: github.ref_type == 'tag' && startsWith(github.ref, 'refs/tags/v')
runs-on: macos-latest
steps:

- name: Check out code
uses: actions/checkout@v4
- name: Set up Go based on go.mod
uses: actions/setup-go@v5
with:
go-version-file: 'src/cmd/linuxkit/go.mod'
id: go


- name: Set path
run: echo "$(go env GOPATH)/bin" >> $GITHUB_PATH
env:
GOPATH: ${{runner.workspace}}

- name: Build
run: |
make build-targets-macos
env:
GOPATH: ${{runner.workspace}}

- uses: actions/upload-artifact@v4
with:
name: release-targets-macos
path: bin/

release-artifacts:
needs: [build-all, build-macos]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
with:
name: release-targets-except-cgo
path: bintmp/release-targets-except-cgo
- uses: actions/download-artifact@v4
with:
name: release-targets-macos
path: bintmp/release-targets-macos
- name: Combine Artifacts
run: |
mkdir -p bin/
cp bintmp/*/* bin/
- name: Checksum Artifacts
run: |
make checksum-targets
- name: GitHub Release
uses: softprops/action-gh-release@v2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
draft: false
files: bin/*
generate_release_notes: true
54 changes: 47 additions & 7 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
VERSION="v0.8+"

GO_COMPILE=linuxkit/go-compile:7b1f5a37d2a93cd4a9aa2a87db264d8145944006
# test suite to run, blank for all
TEST_SUITE ?=
TEST_SHARD ?=

GO_COMPILE=linuxkit/go-compile:985a9db72a7e6941de5e1eb71c2b41b76bf0556f

ifeq ($(OS),Windows_NT)
LINUXKIT?=$(CURDIR)/bin/linuxkit.exe
Expand All @@ -11,7 +15,6 @@ LINUXKIT?=$(CURDIR)/bin/linuxkit
RTF?=bin/rtf
GOOS?=$(shell uname -s | tr '[:upper:]' '[:lower:]')
endif
GOARCH?=amd64
ifneq ($(GOOS),linux)
CROSS+=-e GOOS=$(GOOS)
endif
Expand All @@ -31,7 +34,7 @@ export VERSION GO_COMPILE GOOS GOARCH LOCAL_TARGET LINUXKIT
default: linuxkit $(RTF)
all: default

RTF_COMMIT=2351267f358ce6621c0c0d9a069f361268dba5fc
RTF_COMMIT=1118e08445438dc37ec62b4c1e216918b3d804d2
RTF_CMD=github.com/linuxkit/rtf/cmd
RTF_VERSION=0.0
$(RTF): tmp_rtf_bin.tar | bin
Expand Down Expand Up @@ -74,12 +77,12 @@ bin:
install:
cp -R bin/* $(PREFIX)/bin

sign:
codesign --entitlements linuxkit.entitlements --force -s - $(PREFIX)/bin/linuxkit

.PHONY: test
test:
$(MAKE) -C test

.PHONY: collect-artifacts
collect-artifacts: artifacts/test.img.tar.gz artifacts/test-ltp.img.tar.gz
$(MAKE) -C test TEST_SUITE=$(TEST_SUITE) TEST_SHARD=$(TEST_SHARD)

.PHONY: ci ci-tag ci-pr
ci: test-cross
Expand All @@ -103,3 +106,40 @@ ci-pr: test-cross
.PHONY: clean
clean:
rm -rf bin *.log *-kernel *-cmdline *-state *.img *.iso *.gz *.qcow2 *.vhd *.vmx *.vmdk *.tar *.raw

update-package-tags:
ifneq ($(LK_RELEASE),)
$(eval tags := $(shell cd pkg; make show-tag | cut -d ':' -f1))
$(eval image := :$(LK_RELEASE))
else
$(eval tags := $(shell cd pkg; make show-tag))
$(eval image := )
endif
for img in $(tags); do \
./scripts/update-component-sha.sh --image $${img}$(image); \
done

.PHONY: build-targets-all build-targets-linux build-targets-windows build-targets-macos checksum-targets

build-targets-all: build-targets-linux build-targets-windows build-targets-macos

build-targets-linux: bin
$(MAKE) GOOS=linux GOARCH=arm64 LOCAL_TARGET=$(CURDIR)/bin/linuxkit-linux-arm64 local-build
file bin/linuxkit-linux-arm64
$(MAKE) GOOS=linux GOARCH=amd64 LOCAL_TARGET=$(CURDIR)/bin/linuxkit-linux-amd64 local-build
file bin/linuxkit-linux-amd64
$(MAKE) GOOS=linux GOARCH=s390x LOCAL_TARGET=$(CURDIR)/bin/linuxkit-linux-s390x local-build
file bin/linuxkit-linux-s390x

build-targets-windows: bin
$(MAKE) GOOS=windows GOARCH=amd64 LOCAL_TARGET=$(CURDIR)/bin/linuxkit-windows-amd64.exe local-build
file bin/linuxkit-windows-amd64.exe

build-targets-macos: bin
$(MAKE) GOOS=darwin GOARCH=arm64 LOCAL_TARGET=$(CURDIR)/bin/linuxkit-darwin-arm64 local-build
file bin/linuxkit-darwin-arm64
$(MAKE) GOOS=darwin GOARCH=amd64 LOCAL_TARGET=$(CURDIR)/bin/linuxkit-darwin-amd64 local-build
file bin/linuxkit-darwin-amd64

checksum-targets: bin
cd bin && openssl sha256 -r linuxkit-* | tr -d '*' > checksums.txt
7 changes: 4 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,8 +63,8 @@ Once you have built the tool, use
```
linuxkit build linuxkit.yml
```
to build the example configuration. You can also specify different output formats, eg `linuxkit build -format raw-bios linuxkit.yml` to
output a raw BIOS bootable disk image, or `linuxkit build -format iso-efi linuxkit.yml` to output an EFI bootable ISO image. See `linuxkit build -help` for more information.
to build the example configuration. You can also specify different output formats, eg `linuxkit build --format raw-bios linuxkit.yml` to
output a raw BIOS bootable disk image, or `linuxkit build --format iso-efi linuxkit.yml` to output an EFI bootable ISO image. See `linuxkit build -help` for more information.

### Booting and Testing

Expand All @@ -75,6 +75,7 @@ for example VMWare. See `linuxkit run --help`.

Currently supported platforms are:
- Local hypervisors
- [Virtualization.Framework (macOS)](docs/platform-virtualization-framework.md) `[x86_64, arm64]`
- [HyperKit (macOS)](docs/platform-hyperkit.md) `[x86_64]`
- [Hyper-V (Windows)](docs/platform-hyperv.md) `[x86_64]`
- [qemu (macOS, Linux, Windows)](docs/platform-qemu.md) `[x86_64, arm64, s390x]`
Expand All @@ -86,7 +87,7 @@ Currently supported platforms are:
- [OpenStack](docs/platform-openstack.md) `[x86_64]`
- [Scaleway](docs/platform-scaleway.md) `[x86_64]`
- Baremetal:
- [packet.net](docs/platform-packet.md) `[x86_64, arm64]`
- [deploy.equinix.com](docs/platform-equinixmetal.md) `[x86_64, arm64]`
- [Raspberry Pi Model 3b](docs/platform-rpi3.md) `[arm64]`


Expand Down
2 changes: 1 addition & 1 deletion contrib/open-vm-tools/open-vm-tools-ds.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ spec:
operator: Exists
effect: NoSchedule
containers:
- image: linuxkit/open-vm-tools:b7e7f12c310a55a4959cfa72d01216698d5c24bb
- image: linuxkit/open-vm-tools:ce668b7064e26dbb4767a9106aae8cb888a3a61c
name: open-vm-tools
resources:
requests:
Expand Down
Loading