Skip to content

ci: publish images to vamos-images repo#104

Merged
greatgitsby merged 10 commits intomasterfrom
reapply-image-publish
Apr 2, 2026
Merged

ci: publish images to vamos-images repo#104
greatgitsby merged 10 commits intomasterfrom
reapply-image-publish

Conversation

@greatgitsby
Copy link
Copy Markdown
Collaborator

@greatgitsby greatgitsby commented Apr 2, 2026

Summary

  • Images are committed to {owner}/vamos-images with a v{VERSION} tag, so forks automatically publish to their own vamos-images repo
  • Manifest is published as a GitHub Release on vamOS itself (no images in the release)
  • Uses VAMOS_IMAGES_DEPLOY_KEY SSH deploy key for cross-repo push (same pattern as openpilot's ci-artifacts)

Setup

  • Created vamos-images repo
  • Added SSH deploy key (write access) to vamos-images
  • Added VAMOS_IMAGES_DEPLOY_KEY secret to vamOS

Test plan

  • Merge into my fork and verify images appear as a tagged commit in vamos-images
  • Verify manifest.json release URLs point to vamos-images/raw/v{VERSION}/
  • Verify GitHub Release on vamOS contains only manifest.json

🤖 Generated with Claude Code

greatgitsby and others added 9 commits April 1, 2026 18:12
Images are committed to {owner}/vamos-images with a version tag,
so forks can publish to their own vamos-images repo. The manifest
is published as a GitHub Release on vamOS itself.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Files over 50 MB are split into chunks to stay under
raw.githubusercontent.com's 100 MB limit.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Shows setup instructions as workflow warnings instead of failing.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Upgrade wait-on-check-action to v1.6.0 and add checks-discovery-timeout
so it waits up to 5 minutes for build-system to appear instead of
immediately failing when the check doesn't exist yet.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Use an unrelated orphan branch name and push with refs/tags/ prefix
to avoid ambiguity between branch and tag with the same name.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The glob *.img missed chunk files (*.img.00, *.img.01, etc.)
produced by the chunking logic for large images like system.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Manifest needs CORS headers, which raw.githubusercontent.com provides
but release-assets.githubusercontent.com does not.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@github-actions
Copy link
Copy Markdown

github-actions bot commented Apr 2, 2026

vamOS System Profile

Changes vs master

Metric Change
Used space 3485.6MB → 3485.6MB (+0MB)
Sparse image 3440.0MB → 3440.1MB (+0MB)
Package count 524 → 524
Directory size changes (>1MB)
Directory Change

Metric Value
Used space 3485.6MB / 5959.5MB
Files 56330
Directories 4762
Symlinks 3602
Packages 524

Top 10 Directories

Directory Size

Category Breakdown

Category Size %
xbps packages 2489.0MB 71.4%
Python venv 655.3MB 18.8%
Firmware 11.5MB .3%
Other 329.7MB 9.4%

Top 10 Packages by Size

Package Size
mit-krb5-libs-1.21.3_1 270.4MB
gawk-5.3.2_1 210.3MB
llvm-21_3 148.6MB
libldns-1.9.0_1 124.3MB
pd-mapper-1.0_1 73.9MB
libclang21-21.1.7_1 70.2MB
glib-2.86.1_2 67.1MB
gcc-14.2.1+20250405_4 65.4MB
libcap-progs-2.77_1 56MB
cmake-4.2.2_1 53.2MB

Top 30 Files by Size

File Size
/usr/lib/llvm/21/lib/libLLVM.so.21.1 124.3MB
/usr/lib/llvm/21/lib/libMLIR.so.21.1 89.7MB
/usr/lib/llvm/21/bin/mlir-transform-opt 82.9MB
/usr/lib/llvm/21/lib/libclang-cpp.so.21.1 56MB
/usr/lib/llvm/21/bin/mlir-translate 53.2MB
/usr/lib/llvm/21/bin/llvm-exegesis 52MB
/usr/lib/llvm/21/bin/llvm-bolt-binary-analysis 50.6MB
/usr/local/venv/lib/python3.12/site-packages/ffmpeg/install/lib/libavcodec.a 50.5MB
/usr/bin/uv 48.1MB
/usr/lib/gcc/aarch64-linux-gnu/14.2/gnat1 40.1MB
/usr/bin/gdb 38.1MB
/usr/lib/gcc/aarch64-linux-gnu/14.2/cc1plus 37.3MB
/usr/lib/libgallium-25.3.3.so 35.4MB
/usr/lib/libllvm-qcom.so 35.2MB
/usr/lib/gcc/aarch64-linux-gnu/14.2/cc1 35.2MB
/usr/lib/gcc/aarch64-linux-gnu/14.2/lto1 33.9MB
/usr/bin/lto-dump 33.9MB
/usr/lib/libRusticlOpenCL.so.1.0.0 32.5MB
/usr/local/venv/bin/ruff 31.8MB
/usr/share/icu/78.2/icudt78l.dat 31.5MB
/usr/lib/llvm/21/lib/libclang.so.21.1.7 30.2MB
/usr/lib/llvm/21/bin/c-index-test 28.6MB
/usr/local/venv/lib/python3.12/site-packages/gcc_arm_none_eabi/toolchain/libexec/gcc/arm-none-eabi/13.2.1/cc1 28.2MB
/usr/lib/libz3.so 27.9MB
/usr/bin/run 26.6MB
/usr/local/venv/lib/python3.12/site-packages/numpy.libs/libscipy_openblas64_-71e1b124.so 23.6MB
/usr/comma/updater 23.5MB
/usr/comma/setup 23.5MB
/usr/comma/reset 23.5MB
/usr/local/uv/python/cpython-3.12.13-linux-aarch64-gnu/bin/python3.12 22.1MB

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@greatgitsby
Copy link
Copy Markdown
Collaborator Author

Manifest validation (greatgitsby/vamOS fork, v17.2)

All 30 entries passed — images downloaded from raw.githubusercontent.com, chunked files reconstructed, SHA-256 hashes verified.

Results: 30 passed, 0 failed, 0 skipped
Downloaded 1848.7 MB in 90.6s (avg 20.4 MB/s)

3 partitions were chunked (>50 MB): cache (3 chunks), modem (3 chunks), system (29 chunks).

Manifest URL (with CORS): https://github.com/greatgitsby/vamos-images/raw/v17.2/manifest.json
Release: https://github.com/greatgitsby/vamOS/releases/tag/v17.2

@greatgitsby greatgitsby merged commit ed1c52e into master Apr 2, 2026
4 checks passed
@greatgitsby greatgitsby deleted the reapply-image-publish branch April 2, 2026 02:37
mpurnell1 pushed a commit to mpurnell1/vamOS that referenced this pull request Apr 2, 2026
* ci: publish images to vamos-images repo, manifest as release

Images are committed to {owner}/vamos-images with a version tag,
so forks can publish to their own vamos-images repo. The manifest
is published as a GitHub Release on vamOS itself.

* build: restore chunking for large images in package_ota

Files over 50 MB are split into chunks to stay under
raw.githubusercontent.com's 100 MB limit.

* build: derive default IMAGES_URL from VERSION file

* ci: skip publish gracefully when deploy key is missing

Shows setup instructions as workflow warnings instead of failing.

* ci: fix profile workflow race with build-system check

Upgrade wait-on-check-action to v1.6.0 and add checks-discovery-timeout
so it waits up to 5 minutes for build-system to appear instead of
immediately failing when the check doesn't exist yet.

* Revert "ci: fix profile workflow race with build-system check"

This reverts commit b1d74fd.

* ci: fix ambiguous refspec when pushing images tag

Use an unrelated orphan branch name and push with refs/tags/ prefix
to avoid ambiguity between branch and tag with the same name.

* ci: include chunked image files in vamos-images push

The glob *.img missed chunk files (*.img.00, *.img.01, etc.)
produced by the chunking logic for large images like system.

* ci: include manifest in vamos-images, link from release

Manifest needs CORS headers, which raw.githubusercontent.com provides
but release-assets.githubusercontent.com does not.

* ci: fix invalid YAML in release notes multiline string
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant