diff --git a/.github/workflows/build-trios-trixie-dev.yml b/.github/workflows/build-trios-trixie-dev.yml new file mode 100644 index 0000000..3f240f4 --- /dev/null +++ b/.github/workflows/build-trios-trixie-dev.yml @@ -0,0 +1,50 @@ +name: Build TriOS ISO (Dev branch) + +on: + push: + branches: [ dev ] + +jobs: + build-trios: + name: Build and Package ISO + runs-on: self-hosted + + steps: + - name: Checkout Repository + uses: actions/checkout@v4 + + - name: Set up variables + id: vars + shell: bash + run: | + _commit_hash=$(git rev-parse --short HEAD) + echo "commit_hash=${_commit_hash}" >> "$GITHUB_OUTPUT" + mkdir -p ~/TriOs_Output + + - name: Debug commit hash + run: | + echo "Commit hash is: ${{ steps.vars.outputs.commit_hash }}" + + - name: Build Docker Image + working-directory: ./builder + run: | + docker build -t trios-builder . + + - name: Run Docker Container (Privileged) + run: | + docker run --rm -i \ + --privileged \ + -v "./Trixie:/TriOs" \ + -v "$HOME/TriOs_Output:/TriOs_Output" \ + trios-builder + + - name: Verify ISO Output + run: | + ls -lh ~/TriOs_Output || true + + - name: Upload ISO Artifact + uses: actions/upload-artifact@v4 + with: + name: trios-dev-${{ steps.vars.outputs.commit_hash }}.iso + path: ~/TriOs_Output/live-image-amd64.hybrid.iso + diff --git a/.github/workflows/build-trios-trixie-nighly.yml b/.github/workflows/build-trios-trixie-nighly.yml new file mode 100644 index 0000000..3e560c9 --- /dev/null +++ b/.github/workflows/build-trios-trixie-nighly.yml @@ -0,0 +1,51 @@ +name: Build TriOS ISO (Nightly) + +on: + schedule: + # Runs every day at midnight UTC + - cron: "0 0 * * *" + +jobs: + build-trios: + name: Build and Package ISO + runs-on: self-hosted + + steps: + - name: Checkout Repository + uses: actions/checkout@v4 + + - name: Set up variables + id: vars + shell: bash + run: | + _timestamp=$(date -u +"%Y-%m-%dT%H-%M-%SZ") + echo "timestamp=${_timestamp}" >> "$GITHUB_OUTPUT" + mkdir -p ~/TriOs_Output + + - name: Debug timestamp + run: | + echo "Timestamp is: ${{ steps.vars.outputs.timestamp }}" + + - name: Build Docker Image + working-directory: ./builder + run: | + docker build -t trios-builder . + + - name: Run Docker Container (Privileged) + run: | + docker run --rm -i \ + --privileged \ + -v "./Trixie:/TriOs" \ + -v "$HOME/TriOs_Output:/TriOs_Output" \ + trios-builder + + - name: Verify ISO Output + run: | + ls -lh ~/TriOs_Output || true + + - name: Upload ISO Artifact + uses: actions/upload-artifact@v4 + with: + name: trios-nightly-${{ steps.vars.outputs.timestamp }}.iso + path: ~/TriOs_Output/live-image-amd64.hybrid.iso + diff --git a/.github/workflows/build-trios-trixie-prod.yml b/.github/workflows/build-trios-trixie-prod.yml new file mode 100644 index 0000000..55bb917 --- /dev/null +++ b/.github/workflows/build-trios-trixie-prod.yml @@ -0,0 +1,50 @@ +name: Build TriOS ISO (Prod branch) + +on: + push: + branches: [ prod ] + +jobs: + build-trios: + name: Build and Package ISO + runs-on: self-hosted + + steps: + - name: Checkout Repository + uses: actions/checkout@v4 + + - name: Set up variables + id: vars + shell: bash + run: | + _version=$(cat ./Trixie/release_name | tr -d '\n\r') + echo "version=${_version}" >> "$GITHUB_OUTPUT" + mkdir -p ~/TriOs_Output + + - name: Debug version + run: | + echo "Version is: ${{ steps.vars.outputs.version }}" + + - name: Build Docker Image + working-directory: ./builder + run: | + docker build -t trios-builder . + + - name: Run Docker Container (Privileged) + run: | + docker run --rm -i \ + --privileged \ + -v "./Trixie:/TriOs" \ + -v "$HOME/TriOs_Output:/TriOs_Output" \ + trios-builder + + - name: Verify ISO Output + run: | + ls -lh ~/TriOs_Output || true + + - name: Upload ISO Artifact + uses: actions/upload-artifact@v4 + with: + name: trios-prod-${{ steps.vars.outputs.version }}.iso + path: ~/TriOs_Output/live-image-amd64.hybrid.iso + diff --git a/LICENSE b/LICENSE old mode 100644 new mode 100755 diff --git a/README.md b/README.md old mode 100644 new mode 100755 index d4a75ad..5f1cef0 --- a/README.md +++ b/README.md @@ -36,14 +36,16 @@ Please note: ## Downloads TriOs was made for amd64. Future builds may also be available for i386 (32 bit) and arm64. TriOs hasn't been tested on arm64 or i386, but if you wish to try it anyway, you can build it yourself. +You MUST have a working internet connection when installing TriOs. + Recommended builds: -- [Latest Release (V.1.0)](add-url-here-later-kthxbai) +- [Latest Release (13 Bepis)](https://nightly.link/TriangularDev/TriOs/workflows/build-trios-trixie-prod/prod) Unstable builds: -- [Nightly Build](add-url-here-later-kthxbai) -- [Latest Commit](add-url-here-later-kthxbai) +- [Nightly Build](https://nightly.link/TriangularDev/TriOs/workflows/build-trios-trixie-nightly/dev) +- [Latest Commit](https://nightly.link/TriangularDev/TriOs/workflows/build-trios-trixie-dev/dev) ## Building the ISO from source @@ -60,14 +62,15 @@ sudo apt install live-build git debian-archive-keyring ``` git clone https://github.com/TriangularDev/TriOs/ -cd TriOs +cd TriOs/Trixie ``` ### Configure parameters ``` +lb config --initramfs live-boot +lb config --bootappend-live "boot=live components union=overlay nopersistence" lb config --architecture amd64 # or i386/arm64 -lb config --archive-areas "main contrib non-free non-free-firmware" ``` ### Build the ISO diff --git a/.build/config b/Trixie/.build/config similarity index 100% rename from .build/config rename to Trixie/.build/config diff --git a/config/binary b/Trixie/config/binary old mode 100644 new mode 100755 similarity index 95% rename from config/binary rename to Trixie/config/binary index 50b16b4..14c4c57 --- a/config/binary +++ b/Trixie/config/binary @@ -46,8 +46,8 @@ LB_ZSYNC="true" LB_BUILD_WITH_CHROOT="true" # $LB_DEBIAN_INSTALLER: set debian-installer -# (Default: live) -LB_DEBIAN_INSTALLER="live" +# (Default: false) +LB_DEBIAN_INSTALLER="false" # $LB_DEBIAN_INSTALLER_DISTRIBUTION: set debian-installer suite # (Default: empty) @@ -86,8 +86,8 @@ LB_ISO_PREPARER="live-build 3.0~a57-1; http://packages.qa.debian.org/live-build" LB_ISO_PUBLISHER="Debian Live project; http://live.debian.net/; debian-live@lists.debian.org" # $LB_ISO_VOLUME: set iso volume (max 32 chars) -# (Default: Debian trixie 20251004-12:24) -LB_ISO_VOLUME="Debian trixie 20251004-12:24" +# (Default: Debian trixie 20251012-14:40) +LB_ISO_VOLUME="Debian trixie 20251012-14:40" # $LB_EXT_BLOCKSIZE: set EXT block size # (Default: unset) @@ -110,8 +110,8 @@ LB_JFFS2_ERASEBLOCK="" LB_MEMTEST="memtest86+" # $LB_WIN32_LOADER: set win32-loader -# (Default: true) -LB_WIN32_LOADER="true" +# (Default: false) +LB_WIN32_LOADER="false" # $LB_NET_ROOT_FILESYSTEM: set netboot filesystem # (Default: nfs) diff --git a/config/bootstrap b/Trixie/config/bootstrap old mode 100644 new mode 100755 similarity index 100% rename from config/bootstrap rename to Trixie/config/bootstrap diff --git a/config/chroot b/Trixie/config/chroot old mode 100644 new mode 100755 similarity index 100% rename from config/chroot rename to Trixie/config/chroot diff --git a/config/common b/Trixie/config/common old mode 100644 new mode 100755 similarity index 98% rename from config/common rename to Trixie/config/common index cdba0ec..952a919 --- a/config/common +++ b/Trixie/config/common @@ -72,8 +72,8 @@ LB_INITRAMFS="live-boot" LB_INITRAMFS_COMPRESSION="" # $LB_INITSYSTEM: set init system -# (Default: sysvinit) -LB_INITSYSTEM="sysvinit" +# (Default: systemd) +LB_INITSYSTEM="systemd" # $LB_FDISK: set fdisk program # (Default: autodetected) diff --git a/Trixie/config/includes.chroot/etc/os-release b/Trixie/config/includes.chroot/etc/os-release new file mode 100644 index 0000000..dc054ee --- /dev/null +++ b/Trixie/config/includes.chroot/etc/os-release @@ -0,0 +1,10 @@ +PRETTY_NAME="TriOs 13 (Bepis)" +NAME="TriOs" +VERSION_ID="13" +VERSION="13 (trixie)" +VERSION_CODENAME=trixie +DEBIAN_VERSION_FULL=13.1 +ID=debian +HOME_URL="https://github.com/TriangularDev/TriOs/" +SUPPORT_URL="https://github.com/TriangularDev/TriOs/issues" +BUG_REPORT_URL="https://github.com/TriangularDev/TriOs/issues" diff --git a/Trixie/config/includes.chroot/usr/share/pixmaps/debian.svg b/Trixie/config/includes.chroot/usr/share/pixmaps/debian.svg new file mode 100644 index 0000000..667af2e --- /dev/null +++ b/Trixie/config/includes.chroot/usr/share/pixmaps/debian.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Trixie/config/package-lists/kde.list.chroot b/Trixie/config/package-lists/kde.list.chroot new file mode 100755 index 0000000..2a3ec96 --- /dev/null +++ b/Trixie/config/package-lists/kde.list.chroot @@ -0,0 +1,5 @@ +task-kde-desktop +konsole +sddm +network-manager +network-manager-gnome diff --git a/Trixie/config/package-lists/python.list.chroot b/Trixie/config/package-lists/python.list.chroot new file mode 100755 index 0000000..b6f3090 --- /dev/null +++ b/Trixie/config/package-lists/python.list.chroot @@ -0,0 +1 @@ +python3-full diff --git a/config/source b/Trixie/config/source old mode 100644 new mode 100755 similarity index 100% rename from config/source rename to Trixie/config/source diff --git a/Trixie/release_name b/Trixie/release_name new file mode 100644 index 0000000..b26bfaf --- /dev/null +++ b/Trixie/release_name @@ -0,0 +1 @@ +13-Bepis diff --git a/builder/Dockerfile b/builder/Dockerfile new file mode 100755 index 0000000..7b27a02 --- /dev/null +++ b/builder/Dockerfile @@ -0,0 +1,29 @@ +# Use Debian Trixie as the base image +FROM debian:trixie + +# Run as root +USER root + +# Prevent interactive prompts +ENV DEBIAN_FRONTEND=noninteractive + +# Update system and install dependencies +RUN apt update && apt install -y \ + live-build \ + git \ + debian-archive-keyring \ + sudo \ + && rm -rf /var/lib/apt/lists/* + +# Set working directory +WORKDIR /TriOs + +# Default command: configure and build TriOS ISO, then copy to output +CMD lb config --initramfs live-boot && \ + lb config --bootappend-live "boot=live components union=overlay nopersistence" && \ + lb config --architecture amd64 && \ + lb build && \ + mkdir -p /TriOs_Output && \ + cp -r ./live-image* /TriOs_Output/ && \ + echo "TriOS ISO build complete. Files copied to /TriOs_Output." + diff --git a/builder/build-trios.sh b/builder/build-trios.sh new file mode 100755 index 0000000..c15d60b --- /dev/null +++ b/builder/build-trios.sh @@ -0,0 +1,5 @@ +docker build -t trios-builder . +docker run --privileged -it \ + -v ~/TriOs/Trixie:/TriOs \ + -v ~/TriOs_Output:/TriOs_Output \ + trios-builder