Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
78f5740
docs: add initial document
dryfish09 Aug 21, 2026
dae955e
Update README.md
dryfish09 Aug 21, 2026
7417d0c
ci: make ci runs in all branchs and bump action version
dryfish09 Aug 21, 2026
23ce172
feat: add more logging, fix bugs in script, add validation for ISO AR…
dryfish09 Aug 21, 2026
d150964
ci: fix ci syntax error
dryfish09 Aug 21, 2026
af2c8c4
fix: add missing function
dryfish09 Aug 21, 2026
67c530d
feat: add more packages
dryfish09 Aug 21, 2026
bffa239
Update version to release
dryfish09 Aug 21, 2026
9558168
Delete packages/caramos-ota/usr/lib/python3/dist-packages/caramos_ota…
dryfish09 Aug 21, 2026
45f95d7
Restore
dryfish09 Aug 21, 2026
49b3717
Restore
dryfish09 Aug 21, 2026
c3d6089
Remove step in build strps
dryfish09 Aug 21, 2026
b959e85
Delete unecessary files
dryfish09 Aug 21, 2026
44b195b
Delete CaramOS Project Finalization.md
dryfish09 Aug 21, 2026
6e0fc8f
Update README.md
dryfish09 Aug 21, 2026
894100e
docs: update code of conduct
dryfish09 Aug 21, 2026
d4cf3a2
Delete CONTRIBUTING.md
dryfish09 Aug 21, 2026
e421f2a
Delete CODE_OF_CONDUCT_EN.md
dryfish09 Aug 21, 2026
e9e45b9
Delete CONTRIBUTING_EN.md
dryfish09 Aug 21, 2026
8238a3c
Delete AGENTS.md
dryfish09 Aug 21, 2026
8fc61e4
Delete landing
dryfish09 Aug 21, 2026
6e3c5ac
Update README.md
dryfish09 Aug 21, 2026
8336340
chore: translate build script and improve some progress
dryfish09 Aug 21, 2026
da9d616
fix: fix regex
dryfish09 Aug 21, 2026
519440d
Update README.md
dryfish09 Aug 21, 2026
d822933
fix: improve ota installer script
dryfish09 Aug 21, 2026
03684b0
Update build.yml
dryfish09 Aug 21, 2026
a696d39
feat' compress with `zstd` for all modes
dryfish09 Aug 21, 2026
e7d4a06
feat: `zstd` compress for debug
dryfish09 Aug 21, 2026
24c9ee0
Update os-release
dryfish09 Aug 21, 2026
3958cde
Update Dockerfile
dryfish09 Aug 21, 2026
6390107
ci: make ci runs in all pr and ignore some paths
dryfish09 Aug 21, 2026
cbfb1d0
ci: fix syntax error
dryfish09 Aug 21, 2026
19529af
Update packages.txt
dryfish09 Aug 21, 2026
c7345a2
Update README.md
dryfish09 Aug 21, 2026
6328456
Create migration.py
dryfish09 Aug 22, 2026
e29efbd
Create manifest.json
dryfish09 Aug 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
106 changes: 8 additions & 98 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,14 @@ name: Build CaramOS ISO

on:
push:
branches: [main, develop]
branches: ['*']
paths-ignore:
- '*.md'
- '.github/**'
tags:
- 'v*'
pull_request:
branches: [main]
branches: ['*']
workflow_dispatch:

permissions:
Expand All @@ -19,7 +22,7 @@ jobs:

steps:
- name: Checkout
uses: actions/checkout@v7
uses: actions/checkout@v4

- name: Free disk space
run: |
Expand All @@ -34,23 +37,11 @@ jobs:
sudo apt-get install -y squashfs-tools xorriso rsync wget isolinux syslinux-utils build-essential debhelper

- name: Cache Mint ISO
uses: actions/cache@v5
uses: actions/cache@v4
with:
path: linuxmint-22.3-cinnamon-64bit.iso
key: mint-iso-22.3-cinnamon

- name: Verify release tag matches source version
if: startsWith(github.ref, 'refs/tags/v')
run: |
source scripts/config.sh
TAG_VERSION="${GITHUB_REF_NAME#v}"
echo "Source version: ${CARAMOS_VERSION}"
echo "Tag version: ${TAG_VERSION}"
if [ "${TAG_VERSION}" != "${CARAMOS_VERSION}" ]; then
echo "::error::Release tag ${GITHUB_REF_NAME} does not match CARAMOS_VERSION=${CARAMOS_VERSION}"
exit 1
fi

- name: Build CaramOS ISO
run: |
if [[ "${GITHUB_REF}" == refs/tags/v* ]]; then
Expand All @@ -65,91 +56,10 @@ jobs:
run: sha256sum CaramOS-*.iso > SHA256SUMS

- name: Upload ISO artifact
uses: actions/upload-artifact@v5
uses: actions/upload-artifact@v4
with:
name: CaramOS-ISO
path: |
CaramOS-*.iso
SHA256SUMS
retention-days: 7

- name: Upload ISO to SourceForge
if: startsWith(github.ref, 'refs/tags/v')
env:
SOURCEFORGE_USERNAME: ${{ secrets.SOURCEFORGE_USERNAME }}
SOURCEFORGE_PROJECT: ${{ secrets.SOURCEFORGE_PROJECT }}
SOURCEFORGE_SSH_KEY: ${{ secrets.SOURCEFORGE_SSH_KEY }}
run: |
ISO_FILE="$(ls CaramOS-*.iso | head -n 1)"
ISO_BASENAME="$(basename "${ISO_FILE}")"

if [ -z "${SOURCEFORGE_USERNAME}" ] || [ -z "${SOURCEFORGE_PROJECT}" ] || [ -z "${SOURCEFORGE_SSH_KEY}" ]; then
echo "::error::GitHub Release assets are limited to about 2 GiB per file. Configure SOURCEFORGE_USERNAME, SOURCEFORGE_PROJECT, and SOURCEFORGE_SSH_KEY secrets to publish the ISO as one downloadable file on SourceForge."
exit 1
fi

install -m 700 -d ~/.ssh
printf '%s\n' "${SOURCEFORGE_SSH_KEY}" > ~/.ssh/sourceforge
chmod 600 ~/.ssh/sourceforge
ssh-keyscan -H frs.sourceforge.net >> ~/.ssh/known_hosts

RELEASE_DIR="/home/frs/project/${SOURCEFORGE_PROJECT}/${GITHUB_REF_NAME}"
cat > upload-release.sftp <<EOF
-mkdir ${RELEASE_DIR}
cd ${RELEASE_DIR}
put ${ISO_FILE}
put SHA256SUMS
EOF

sftp -i ~/.ssh/sourceforge \
-o IdentitiesOnly=yes \
-b upload-release.sftp \
"${SOURCEFORGE_USERNAME}@frs.sourceforge.net"

DOWNLOAD_URL="https://sourceforge.net/projects/${SOURCEFORGE_PROJECT}/files/${GITHUB_REF_NAME}/${ISO_BASENAME}/download"
CHECKSUM_URL="https://sourceforge.net/projects/${SOURCEFORGE_PROJECT}/files/${GITHUB_REF_NAME}/SHA256SUMS/download"
python3 - <<PY
from pathlib import Path
import textwrap

github_ref_name = "${GITHUB_REF_NAME}"
iso_basename = "${ISO_BASENAME}"
download_url = "${DOWNLOAD_URL}"
checksum_url = "${CHECKSUM_URL}"
sourceforge_project = "${SOURCEFORGE_PROJECT}"

release_body = f"""
## Download CaramOS {github_ref_name}

> GitHub Release cannot host the ISO directly because release assets have a
> per-file size limit. The ISO is hosted as one complete file on SourceForge.

<p align="center">
<a href="{download_url}">
<img src="https://img.shields.io/badge/Download-CaramOS%20ISO-ff6b00?style=for-the-badge&logo=linux&logoColor=white" alt="Download CaramOS ISO">
</a>
</p>

- **ISO:** [{iso_basename}]({download_url})
- **SHA256SUMS:** [SHA256SUMS]({checksum_url})
- **SourceForge folder:** https://sourceforge.net/projects/{sourceforge_project}/files/{github_ref_name}/

### Verify the ISO

```bash
sha256sum -c SHA256SUMS
```
"""

Path("RELEASE_DOWNLOADS.md").write_text(textwrap.dedent(release_body).strip() + "\n", encoding="utf-8")
PY

- name: Create GitHub Release
if: startsWith(github.ref, 'refs/tags/v')
uses: softprops/action-gh-release@v3
with:
files: |
SHA256SUMS
body_path: RELEASE_DOWNLOADS.md
append_body: true
generate_release_notes: true
148 changes: 0 additions & 148 deletions AGENTS.md

This file was deleted.

Loading
Loading