Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
404b8d0
part1
divanshu-go Jan 7, 2026
241576a
part2
divanshu-go Jan 7, 2026
c211b2d
part3
Jan 8, 2026
5aea666
part4
Jan 9, 2026
4e631aa
part5
Jan 10, 2026
82ebb7a
part6
Jan 11, 2026
72f6fd6
Refactor Makefile and scripts for improved build process
Jan 11, 2026
d1e1a2c
Enhance GitHub Actions workflow for ISO and branding package builds
Jan 11, 2026
aac8af0
Update GitHub Actions workflow to enhance dependency management and s…
Jan 11, 2026
2882c18
Update GitHub Actions workflow to include 'make' in dependency instal…
Jan 11, 2026
922ee06
Disable Cortex APT repository configuration in the chroot hook until …
Jan 11, 2026
b304e3c
Update Cortex GRUB theme for improved aesthetics and layout
Jan 11, 2026
e8211b8
Refactor GitHub Actions workflow to optimize ISO build process
Jan 11, 2026
b071385
Enhance GitHub Actions workflow with additional disk cleanup steps
Jan 11, 2026
3b68a92
Refactor Makefile and GitHub Actions workflow for streamlined ISO bui…
Jan 12, 2026
13953b2
Refactor preseed files and provisioning script for Cortex Linux
Jan 12, 2026
aa34a92
Refactor Cortex Linux documentation and build scripts
Jan 12, 2026
070ed6b
Enhance build scripts and workflows with compression options
Jan 12, 2026
26cc7f5
Update compression variable in build scripts for consistency
Jan 12, 2026
c9c502b
Add GRUB theme copying to build scripts
Jan 12, 2026
09eede1
Remove reproducible builds workflow from GitHub Actions
Jan 12, 2026
6564a1a
Add Cortex terminal profile and PAM configurations
Jan 12, 2026
79c2cda
Enhance Plymouth theme configuration and initramfs update process
Jan 14, 2026
88b6dd9
Revise branding assets and Plymouth theme for Cortex Linux
Jan 16, 2026
e5cd996
Revise Cortex Linux Plymouth theme for minimal design
Jan 17, 2026
f160a26
Update branding assets and remove obsolete files for Cortex Linux
Jan 17, 2026
f1a9257
Enhance branding asset generation script for Cortex Linux
Jan 17, 2026
cf6c7d0
Refactor build scripts to enhance symlink handling and improve config…
Jan 17, 2026
6795845
Enhance Cortex Linux Plymouth theme with animated loading dots
Jan 17, 2026
8b08ced
Update branding assets and enhance logo handling for Cortex Linux
Jan 17, 2026
046fbd7
Update branding assets for Cortex Linux with gradient backgrounds and…
Jan 17, 2026
f8795e3
Refactor branding asset generation for Cortex Linux using Makefile
Jan 17, 2026
7b2b807
Remove outdated documentation files for Cortex Linux
Jan 17, 2026
85a1b65
Refactor Cortex Linux branding package and update asset management
Jan 17, 2026
f7efcb4
Refactor Makefile and build scripts for improved asset management and…
Jan 17, 2026
36a8505
Update GitHub Actions workflow for ISO build process
Jan 17, 2026
f58c26f
Update build script to improve package file handling
Jan 17, 2026
c3116d9
Update branding assets for Cortex Linux with new images and enhancements
Jan 20, 2026
19a0997
Enhance APT repository update process and improve branding assets
Jan 21, 2026
c61b206
Update Plymouth theme speed settings for improved animation performance
Jan 21, 2026
54eb622
Implement hashed password for Cortex user and ensure user creation in…
Jan 21, 2026
4c950da
v2
Jan 23, 2026
ccdc3d4
Remove obsolete documentation and update installation scripts for Cor…
Jan 24, 2026
e5dec82
Remove obsolete documentation files and streamline asset management f…
Jan 24, 2026
563512e
Update build and configuration scripts for Cortex Linux
Jan 24, 2026
541188d
Refactor GitHub Actions workflow for ISO build process
Jan 24, 2026
9657e72
Refactor build process and configuration management for Cortex Linux
Jan 24, 2026
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
  •  
  •  
  •  
202 changes: 86 additions & 116 deletions .github/workflows/build-iso.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,142 +10,111 @@ on:
branches: [main]
tags: ['v*']
paths:
- 'iso/**'
- 'src/**'
- 'config/**'
- 'packages/**'
- 'scripts/**'
- 'Makefile'
- '.github/workflows/build-iso.yml'
pull_request:
branches: [main]
paths:
- 'iso/**'
- 'src/**'
- 'config/**'
- 'packages/**'
- 'scripts/**'
- 'Makefile'
workflow_dispatch:
inputs:
iso_type:
description: 'ISO type to build'
required: true
default: 'offline'
type: choice
options:
- netinst
- offline
- both

env:
DEBIAN_FRONTEND: noninteractive

jobs:
build-packages:
name: Build Debian Packages
runs-on: ubuntu-24.04
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Install build dependencies
run: |
sudo apt-get update
sudo apt-get install -y \
dpkg-dev \
devscripts \
debhelper \
fakeroot \
gnupg

- name: Build cortex-archive-keyring
run: |
cd packages/cortex-archive-keyring
dpkg-buildpackage -us -uc -b

- name: Build cortex-core
run: |
cd packages/cortex-core
dpkg-buildpackage -us -uc -b

- name: Build cortex-full
run: |
cd packages/cortex-full
dpkg-buildpackage -us -uc -b

- name: Upload packages
uses: actions/upload-artifact@v4
with:
name: debian-packages
path: packages/*.deb
retention-days: 7

build-iso:
name: Build ISO Image
runs-on: ubuntu-24.04
needs: build-packages
name: Build ISO (${{ matrix.arch }})
runs-on: ${{ matrix.runner }}
strategy:
fail-fast: false
matrix:
arch: [amd64]
# arm64 builds require self-hosted runner with ARM
include:
- arch: amd64
runner: ubuntu-24.04
- arch: arm64
runner: ubuntu-24.04-arm
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Download packages
uses: actions/download-artifact@v4
- name: Free disk space
uses: jlumbroso/free-disk-space@main
with:
name: debian-packages
path: packages/

- name: Install live-build dependencies
run: |
sudo apt-get update
sudo apt-get install -y \
live-build \
debootstrap \
squashfs-tools \
xorriso \
isolinux \
syslinux-efi \
grub-pc-bin \
grub-efi-amd64-bin \
mtools \
dosfstools

- name: Configure live-build
tool-cache: true
android: true
dotnet: true
haskell: true
large-packages: true
docker-images: true
swap-storage: true

- name: Additional cleanup
run: |
cd iso/live-build
chmod +x auto/*
sudo lb config
echo "=== Additional cleanup ==="
sudo rm -rf /home/runner/.rustup || true
sudo rm -rf /home/runner/.cargo || true
sudo rm -rf /usr/share/swift || true
sudo rm -rf /usr/lib/jvm || true
sudo rm -rf /usr/local/julia* || true
sudo rm -rf /usr/local/share/chromium || true
sudo rm -rf /usr/lib/google-cloud-sdk || true
sudo rm -rf /opt/hostedtoolcache/CodeQL || true
echo "=== Disk space after additional cleanup ==="
df -h

- name: Copy packages to chroot
run: |
mkdir -p iso/live-build/config/packages.chroot/
cp packages/*.deb iso/live-build/config/packages.chroot/
- name: Checkout
uses: actions/checkout@v4

- name: Build ISO
- name: Build in Debian container
run: |
cd iso/live-build
sudo lb build 2>&1 | tee build.log

- name: Generate checksums
# Use xz compression for releases (smaller), lz4 for PR/branch builds (faster)
if [[ "${{ github.ref }}" == refs/tags/v* ]]; then
COMPRESSION="xz"
else
COMPRESSION="lz4"
fi
docker run --rm --privileged \
-v "${{ github.workspace }}:/workspace" \
-w /workspace \
-e ARCH=${{ matrix.arch }} \
-e SQUASHFS_COMP=$COMPRESSION \
-e DEBIAN_FRONTEND=noninteractive \
debian:bookworm /bin/bash -c '
set -e
apt-get update
apt-get install -y git sudo make shellcheck
bash scripts/install-deps.sh
make bootstrap
make build
'

- name: List output
if: always()
run: |
cd iso/live-build
sha256sum *.iso > SHA256SUMS
sha512sum *.iso > SHA512SUMS
ls -la src/dist/ || echo "No dist directory"
ls -la image/ || echo "No image directory"

- name: Upload ISO
uses: actions/upload-artifact@v4
with:
name: cortex-linux-${{ matrix.arch }}
path: |
iso/live-build/*.iso
iso/live-build/SHA256SUMS
iso/live-build/SHA512SUMS
src/dist/*.iso
src/dist/*.sha256
retention-days: 14

- name: Upload build log
if: always()
uses: actions/upload-artifact@v4
with:
name: build-log-${{ matrix.arch }}
path: iso/live-build/build.log
path: build.log
retention-days: 7

release:
Expand All @@ -156,43 +125,44 @@ jobs:
permissions:
contents: write
steps:
- name: Download ISO artifacts
- name: Download all ISO artifacts
uses: actions/download-artifact@v4
with:
pattern: cortex-linux-*
merge-multiple: true
path: release/

- name: Download packages
uses: actions/download-artifact@v4
with:
name: debian-packages
- name: Generate combined checksums
run: |
cd release
sha256sum *.iso > SHA256SUMS
sha512sum *.iso > SHA512SUMS

- name: Create Release
uses: softprops/action-gh-release@v1
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Update to the latest version of softprops/action-gh-release.

The v1 tag uses an outdated runner version that may not work on GitHub Actions. Update to a more recent version (e.g., v2 or a specific commit SHA).

Based on the static analysis hint from actionlint.

📦 Proposed fix
       - name: Create Release
-        uses: softprops/action-gh-release@v1
+        uses: softprops/action-gh-release@v2
         with:
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
uses: softprops/action-gh-release@v1
uses: softprops/action-gh-release@v2
🧰 Tools
🪛 actionlint (1.7.10)

236-236: the runner of "softprops/action-gh-release@v1" action is too old to run on GitHub Actions. update the action's version to fix this issue

(action)

🤖 Prompt for AI Agents
In @.github/workflows/build-iso.yml at line 236, The workflow currently pins the
GitHub Action as "softprops/action-gh-release@v1" which is outdated; update the
uses entry for softprops/action-gh-release to a newer release (e.g., "@v2" or a
specific commit SHA) to ensure compatibility with current runners and satisfy
actionlint; locate the "uses: softprops/action-gh-release@v1" line in the
workflow and replace the version tag with the chosen newer tag or SHA, then run
the workflow lint/CI to verify the change.

Comment on lines 141 to 142
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Update softprops/action-gh-release to a newer version.

The static analysis tool indicates that @v1 is too old to run on current GitHub Actions runners. This could cause failures or deprecated behavior warnings.

🔧 Update to v2
      - name: Create Release
-        uses: softprops/action-gh-release@v1
+        uses: softprops/action-gh-release@v2
        with:
          files: |
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- name: Create Release
uses: softprops/action-gh-release@v1
- name: Create Release
uses: softprops/action-gh-release@v2
🧰 Tools
🪛 actionlint (1.7.10)

260-260: the runner of "softprops/action-gh-release@v1" action is too old to run on GitHub Actions. update the action's version to fix this issue

(action)

🤖 Prompt for AI Agents
In @.github/workflows/build-iso.yml around lines 259 - 260, The workflow's
"Create Release" step uses the outdated action reference
softprops/action-gh-release@v1 which may fail on modern runners; update the uses
entry to the newer major version (e.g., softprops/action-gh-release@v2) in the
Create Release job so the workflow pulls the updated action release instead of
@v1.

with:
files: |
*.iso
*.deb
SHA256SUMS
SHA512SUMS
release/*.iso
release/SHA256SUMS
release/SHA512SUMS
body: |
## Cortex Linux ${{ github.ref_name }}

### Downloads
- **cortex-linux-*-amd64-offline.iso** - Full offline installer
- **cortex-linux-*-amd64-netinst.iso** - Minimal network installer

- **cortex-linux-*.iso** - Cortex Linux ISO

### Verification
```bash
sha256sum -c SHA256SUMS
```

### Quick Start
1. Write ISO to USB: `dd if=cortex-linux-*.iso of=/dev/sdX bs=4M status=progress`
1. Write ISO to USB: `sudo dd if=cortex-linux-*.iso of=/dev/sdX bs=4M status=progress oflag=sync`
2. Boot from USB
3. Follow installation prompts
3. Select "Live Boot" or "Install"

### Documentation
See https://cortexlinux.com/docs for full documentation.
See https://github.com/cortexlinux/cortex-distro for documentation.
draft: false
prerelease: ${{ contains(github.ref, 'alpha') || contains(github.ref, 'beta') || contains(github.ref, 'rc') }}

Loading
Loading