-
Notifications
You must be signed in to change notification settings - Fork 0
Bootstrap cortex linux distro hybrid ISO (Live boot + Full installer mode) #10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
404b8d0
241576a
c211b2d
5aea666
4e631aa
82ebb7a
72f6fd6
d1e1a2c
aac8af0
2882c18
922ee06
b304e3c
e8211b8
b071385
3b68a92
13953b2
aa34a92
070ed6b
26cc7f5
c9c502b
09eede1
6564a1a
79c2cda
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -11,188 +11,264 @@ on: | |||||||||||||||||||||||||||||||||||||||||||||
| tags: ['v*'] | ||||||||||||||||||||||||||||||||||||||||||||||
| paths: | ||||||||||||||||||||||||||||||||||||||||||||||
| - 'iso/**' | ||||||||||||||||||||||||||||||||||||||||||||||
| - 'branding/**' | ||||||||||||||||||||||||||||||||||||||||||||||
| - 'packages/**' | ||||||||||||||||||||||||||||||||||||||||||||||
| - 'scripts/**' | ||||||||||||||||||||||||||||||||||||||||||||||
| - 'Makefile' | ||||||||||||||||||||||||||||||||||||||||||||||
| - '.github/workflows/build-iso.yml' | ||||||||||||||||||||||||||||||||||||||||||||||
| pull_request: | ||||||||||||||||||||||||||||||||||||||||||||||
| branches: [main] | ||||||||||||||||||||||||||||||||||||||||||||||
| paths: | ||||||||||||||||||||||||||||||||||||||||||||||
| - 'iso/**' | ||||||||||||||||||||||||||||||||||||||||||||||
| - 'branding/**' | ||||||||||||||||||||||||||||||||||||||||||||||
| - '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 | ||||||||||||||||||||||||||||||||||||||||||||||
| validate: | ||||||||||||||||||||||||||||||||||||||||||||||
| name: Validate | ||||||||||||||||||||||||||||||||||||||||||||||
| runs-on: ubuntu-24.04 | ||||||||||||||||||||||||||||||||||||||||||||||
| container: | ||||||||||||||||||||||||||||||||||||||||||||||
| image: debian:bookworm | ||||||||||||||||||||||||||||||||||||||||||||||
| steps: | ||||||||||||||||||||||||||||||||||||||||||||||
| - name: Install git | ||||||||||||||||||||||||||||||||||||||||||||||
| run: | | ||||||||||||||||||||||||||||||||||||||||||||||
| apt-get update | ||||||||||||||||||||||||||||||||||||||||||||||
| apt-get install -y git sudo make shellcheck | ||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||
| - 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: Run validation | ||||||||||||||||||||||||||||||||||||||||||||||
| run: make validate | ||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||
| - name: Build cortex-core | ||||||||||||||||||||||||||||||||||||||||||||||
| build-branding-package: | ||||||||||||||||||||||||||||||||||||||||||||||
| name: Build Branding Package | ||||||||||||||||||||||||||||||||||||||||||||||
| runs-on: ubuntu-24.04 | ||||||||||||||||||||||||||||||||||||||||||||||
| container: | ||||||||||||||||||||||||||||||||||||||||||||||
| image: debian:bookworm | ||||||||||||||||||||||||||||||||||||||||||||||
| needs: validate | ||||||||||||||||||||||||||||||||||||||||||||||
| steps: | ||||||||||||||||||||||||||||||||||||||||||||||
| - name: Install dependencies | ||||||||||||||||||||||||||||||||||||||||||||||
| run: | | ||||||||||||||||||||||||||||||||||||||||||||||
| cd packages/cortex-core | ||||||||||||||||||||||||||||||||||||||||||||||
| dpkg-buildpackage -us -uc -b | ||||||||||||||||||||||||||||||||||||||||||||||
| apt-get update | ||||||||||||||||||||||||||||||||||||||||||||||
| apt-get install -y git dpkg-dev sudo imagemagick | ||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||
| - name: Build cortex-full | ||||||||||||||||||||||||||||||||||||||||||||||
| run: | | ||||||||||||||||||||||||||||||||||||||||||||||
| cd packages/cortex-full | ||||||||||||||||||||||||||||||||||||||||||||||
| dpkg-buildpackage -us -uc -b | ||||||||||||||||||||||||||||||||||||||||||||||
| - name: Checkout | ||||||||||||||||||||||||||||||||||||||||||||||
| uses: actions/checkout@v4 | ||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||
| - name: Upload packages | ||||||||||||||||||||||||||||||||||||||||||||||
| - name: Build cortex-branding package | ||||||||||||||||||||||||||||||||||||||||||||||
| run: make branding-package | ||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||
| - name: Upload branding package | ||||||||||||||||||||||||||||||||||||||||||||||
| uses: actions/upload-artifact@v4 | ||||||||||||||||||||||||||||||||||||||||||||||
| with: | ||||||||||||||||||||||||||||||||||||||||||||||
| name: debian-packages | ||||||||||||||||||||||||||||||||||||||||||||||
| path: packages/*.deb | ||||||||||||||||||||||||||||||||||||||||||||||
| name: cortex-branding | ||||||||||||||||||||||||||||||||||||||||||||||
| path: output/*.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 }} | ||||||||||||||||||||||||||||||||||||||||||||||
| needs: [validate, build-branding-package] | ||||||||||||||||||||||||||||||||||||||||||||||
| 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: Free disk space | ||||||||||||||||||||||||||||||||||||||||||||||
| uses: jlumbroso/free-disk-space@main | ||||||||||||||||||||||||||||||||||||||||||||||
| with: | ||||||||||||||||||||||||||||||||||||||||||||||
| tool-cache: true | ||||||||||||||||||||||||||||||||||||||||||||||
| android: true | ||||||||||||||||||||||||||||||||||||||||||||||
| dotnet: true | ||||||||||||||||||||||||||||||||||||||||||||||
| haskell: true | ||||||||||||||||||||||||||||||||||||||||||||||
| large-packages: true | ||||||||||||||||||||||||||||||||||||||||||||||
| docker-images: true | ||||||||||||||||||||||||||||||||||||||||||||||
| swap-storage: true | ||||||||||||||||||||||||||||||||||||||||||||||
|
Comment on lines
+88
to
+97
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🧩 Analysis chain🌐 Web query:
💡 Result: Latest release: v1.3.1 — released Oct 18, 2023. [1] Sources Pin Using Recommended change - name: Free disk space
- uses: jlumbroso/free-disk-space@main
+ uses: jlumbroso/free-disk-space@v1.3.1📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents |
||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||
| - name: Additional cleanup | ||||||||||||||||||||||||||||||||||||||||||||||
| run: | | ||||||||||||||||||||||||||||||||||||||||||||||
| 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: Checkout | ||||||||||||||||||||||||||||||||||||||||||||||
| uses: actions/checkout@v4 | ||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||
| - name: Download packages | ||||||||||||||||||||||||||||||||||||||||||||||
| - name: Download branding package | ||||||||||||||||||||||||||||||||||||||||||||||
| uses: actions/download-artifact@v4 | ||||||||||||||||||||||||||||||||||||||||||||||
| 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 | ||||||||||||||||||||||||||||||||||||||||||||||
| run: | | ||||||||||||||||||||||||||||||||||||||||||||||
| cd iso/live-build | ||||||||||||||||||||||||||||||||||||||||||||||
| chmod +x auto/* | ||||||||||||||||||||||||||||||||||||||||||||||
| sudo lb config | ||||||||||||||||||||||||||||||||||||||||||||||
| name: cortex-branding | ||||||||||||||||||||||||||||||||||||||||||||||
| path: output/ | ||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||
| - name: Copy packages to chroot | ||||||||||||||||||||||||||||||||||||||||||||||
| - name: Build in Debian container | ||||||||||||||||||||||||||||||||||||||||||||||
| run: | | ||||||||||||||||||||||||||||||||||||||||||||||
| mkdir -p iso/live-build/config/packages.chroot/ | ||||||||||||||||||||||||||||||||||||||||||||||
| cp packages/*.deb iso/live-build/config/packages.chroot/ | ||||||||||||||||||||||||||||||||||||||||||||||
| # 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 | ||||||||||||||||||||||||||||||||||||||||||||||
| ./scripts/install-deps.sh | ||||||||||||||||||||||||||||||||||||||||||||||
| make check-deps | ||||||||||||||||||||||||||||||||||||||||||||||
| make iso | ||||||||||||||||||||||||||||||||||||||||||||||
| ' | ||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||
| - name: Build ISO | ||||||||||||||||||||||||||||||||||||||||||||||
| run: | | ||||||||||||||||||||||||||||||||||||||||||||||
| cd iso/live-build | ||||||||||||||||||||||||||||||||||||||||||||||
| sudo lb build 2>&1 | tee build.log | ||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||
| - name: Generate checksums | ||||||||||||||||||||||||||||||||||||||||||||||
| - name: List output | ||||||||||||||||||||||||||||||||||||||||||||||
| if: always() | ||||||||||||||||||||||||||||||||||||||||||||||
| run: | | ||||||||||||||||||||||||||||||||||||||||||||||
| cd iso/live-build | ||||||||||||||||||||||||||||||||||||||||||||||
| sha256sum *.iso > SHA256SUMS | ||||||||||||||||||||||||||||||||||||||||||||||
| sha512sum *.iso > SHA512SUMS | ||||||||||||||||||||||||||||||||||||||||||||||
| ls -la output/ || echo "No output directory" | ||||||||||||||||||||||||||||||||||||||||||||||
| ls -la build/ || echo "No build 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 | ||||||||||||||||||||||||||||||||||||||||||||||
| output/*.iso | ||||||||||||||||||||||||||||||||||||||||||||||
| output/*.sha256 | ||||||||||||||||||||||||||||||||||||||||||||||
| retention-days: 14 | ||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||
| - name: Upload SBOM | ||||||||||||||||||||||||||||||||||||||||||||||
| uses: actions/upload-artifact@v4 | ||||||||||||||||||||||||||||||||||||||||||||||
| with: | ||||||||||||||||||||||||||||||||||||||||||||||
| name: sbom-${{ matrix.arch }} | ||||||||||||||||||||||||||||||||||||||||||||||
| path: output/sbom/ | ||||||||||||||||||||||||||||||||||||||||||||||
| retention-days: 14 | ||||||||||||||||||||||||||||||||||||||||||||||
| continue-on-error: true | ||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||
| - 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 | ||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||
| test-iso: | ||||||||||||||||||||||||||||||||||||||||||||||
| name: Test ISO (${{ matrix.arch }}) | ||||||||||||||||||||||||||||||||||||||||||||||
| runs-on: ${{ matrix.runner }} | ||||||||||||||||||||||||||||||||||||||||||||||
| needs: build-iso | ||||||||||||||||||||||||||||||||||||||||||||||
| strategy: | ||||||||||||||||||||||||||||||||||||||||||||||
| fail-fast: false | ||||||||||||||||||||||||||||||||||||||||||||||
| matrix: | ||||||||||||||||||||||||||||||||||||||||||||||
| include: | ||||||||||||||||||||||||||||||||||||||||||||||
| - arch: amd64 | ||||||||||||||||||||||||||||||||||||||||||||||
| runner: ubuntu-24.04 | ||||||||||||||||||||||||||||||||||||||||||||||
| - arch: arm64 | ||||||||||||||||||||||||||||||||||||||||||||||
| runner: ubuntu-24.04-arm | ||||||||||||||||||||||||||||||||||||||||||||||
| steps: | ||||||||||||||||||||||||||||||||||||||||||||||
| - name: Download ISO | ||||||||||||||||||||||||||||||||||||||||||||||
| uses: actions/download-artifact@v4 | ||||||||||||||||||||||||||||||||||||||||||||||
| with: | ||||||||||||||||||||||||||||||||||||||||||||||
| name: cortex-linux-${{ matrix.arch }} | ||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||
| - name: Verify checksums | ||||||||||||||||||||||||||||||||||||||||||||||
| run: | | ||||||||||||||||||||||||||||||||||||||||||||||
| ls -la | ||||||||||||||||||||||||||||||||||||||||||||||
| for iso in *.iso; do | ||||||||||||||||||||||||||||||||||||||||||||||
| if [ -f "${iso}.sha256" ]; then | ||||||||||||||||||||||||||||||||||||||||||||||
| sha256sum -c "${iso}.sha256" | ||||||||||||||||||||||||||||||||||||||||||||||
| fi | ||||||||||||||||||||||||||||||||||||||||||||||
| done | ||||||||||||||||||||||||||||||||||||||||||||||
|
Comment on lines
+192
to
+199
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Checksum verification loop may silently pass when no checksums exist. If no 🔧 Proposed fix - name: Verify checksums
run: |
ls -la
+ verified=0
for iso in *.iso; do
if [ -f "${iso}.sha256" ]; then
sha256sum -c "${iso}.sha256"
+ verified=$((verified + 1))
fi
done
+ if [ $verified -eq 0 ]; then
+ echo "WARNING: No checksum files found to verify"
+ exit 1
+ fi📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents |
||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||
| - name: Check ISO structure | ||||||||||||||||||||||||||||||||||||||||||||||
| run: | | ||||||||||||||||||||||||||||||||||||||||||||||
| sudo apt-get update | ||||||||||||||||||||||||||||||||||||||||||||||
| sudo apt-get install -y xorriso | ||||||||||||||||||||||||||||||||||||||||||||||
| for iso in *.iso; do | ||||||||||||||||||||||||||||||||||||||||||||||
| echo "=== Checking $iso ===" | ||||||||||||||||||||||||||||||||||||||||||||||
| xorriso -indev "$iso" -find / -maxdepth 1 2>/dev/null | head -20 | ||||||||||||||||||||||||||||||||||||||||||||||
| done | ||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||
| release: | ||||||||||||||||||||||||||||||||||||||||||||||
| name: Create Release | ||||||||||||||||||||||||||||||||||||||||||||||
| runs-on: ubuntu-24.04 | ||||||||||||||||||||||||||||||||||||||||||||||
| needs: build-iso | ||||||||||||||||||||||||||||||||||||||||||||||
| needs: [build-iso, test-iso] | ||||||||||||||||||||||||||||||||||||||||||||||
| if: startsWith(github.ref, 'refs/tags/v') | ||||||||||||||||||||||||||||||||||||||||||||||
| 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 branding package | ||||||||||||||||||||||||||||||||||||||||||||||
| uses: actions/download-artifact@v4 | ||||||||||||||||||||||||||||||||||||||||||||||
| with: | ||||||||||||||||||||||||||||||||||||||||||||||
| name: cortex-branding | ||||||||||||||||||||||||||||||||||||||||||||||
| path: release/ | ||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||
| - name: Download packages | ||||||||||||||||||||||||||||||||||||||||||||||
| - name: Download SBOMs | ||||||||||||||||||||||||||||||||||||||||||||||
| uses: actions/download-artifact@v4 | ||||||||||||||||||||||||||||||||||||||||||||||
| with: | ||||||||||||||||||||||||||||||||||||||||||||||
| name: debian-packages | ||||||||||||||||||||||||||||||||||||||||||||||
| pattern: sbom-* | ||||||||||||||||||||||||||||||||||||||||||||||
| merge-multiple: true | ||||||||||||||||||||||||||||||||||||||||||||||
| path: release/sbom/ | ||||||||||||||||||||||||||||||||||||||||||||||
| continue-on-error: true | ||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||
| - name: Generate combined checksums | ||||||||||||||||||||||||||||||||||||||||||||||
| run: | | ||||||||||||||||||||||||||||||||||||||||||||||
| cd release | ||||||||||||||||||||||||||||||||||||||||||||||
| sha256sum *.iso *.deb > SHA256SUMS | ||||||||||||||||||||||||||||||||||||||||||||||
| sha512sum *.iso *.deb > SHA512SUMS | ||||||||||||||||||||||||||||||||||||||||||||||
|
Comment on lines
+240
to
+243
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Checksum generation may fail if no matching files exist. If the build produces no 🔧 Proposed fix - name: Generate combined checksums
run: |
cd release
- sha256sum *.iso *.deb > SHA256SUMS
- sha512sum *.iso *.deb > SHA512SUMS
+ if ls *.iso *.deb 1>/dev/null 2>&1; then
+ sha256sum *.iso *.deb > SHA256SUMS
+ sha512sum *.iso *.deb > SHA512SUMS
+ else
+ echo "No ISO or DEB files found for checksumming"
+ exit 1
+ fi🤖 Prompt for AI Agents |
||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||
|
Comment on lines
+239
to
244
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Release checksum generation can fail on empty globs (Line 245–250). 🤖 Prompt for AI Agents |
||||||||||||||||||||||||||||||||||||||||||||||
| - name: Create Release | ||||||||||||||||||||||||||||||||||||||||||||||
| uses: softprops/action-gh-release@v1 | ||||||||||||||||||||||||||||||||||||||||||||||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Update to the latest version of softprops/action-gh-release. The 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
Suggested change
🧰 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
Comment on lines
245
to
246
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Update The static analysis tool indicates that 🔧 Update to v2 - name: Create Release
- uses: softprops/action-gh-release@v1
+ uses: softprops/action-gh-release@v2
with:
files: |📝 Committable suggestion
Suggested change
🧰 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 |
||||||||||||||||||||||||||||||||||||||||||||||
| with: | ||||||||||||||||||||||||||||||||||||||||||||||
| files: | | ||||||||||||||||||||||||||||||||||||||||||||||
| *.iso | ||||||||||||||||||||||||||||||||||||||||||||||
| *.deb | ||||||||||||||||||||||||||||||||||||||||||||||
| SHA256SUMS | ||||||||||||||||||||||||||||||||||||||||||||||
| SHA512SUMS | ||||||||||||||||||||||||||||||||||||||||||||||
| release/*.iso | ||||||||||||||||||||||||||||||||||||||||||||||
| release/*.deb | ||||||||||||||||||||||||||||||||||||||||||||||
| release/SHA256SUMS | ||||||||||||||||||||||||||||||||||||||||||||||
| release/SHA512SUMS | ||||||||||||||||||||||||||||||||||||||||||||||
| release/sbom/* | ||||||||||||||||||||||||||||||||||||||||||||||
|
Comment on lines
245
to
+253
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Update Static analysis indicates Suggested fix - name: Create Release
- uses: softprops/action-gh-release@v1
+ uses: softprops/action-gh-release@v2
with:
files: |📝 Committable suggestion
Suggested change
🧰 Tools🪛 actionlint (1.7.10)246-246: 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 |
||||||||||||||||||||||||||||||||||||||||||||||
| 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 | ||||||||||||||||||||||||||||||||||||||||||||||
| - **cortex-branding_*.deb** - Branding package | ||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||
| ### 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') }} | ||||||||||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
PR path filter omits the workflow file, so CI won’t run when only the workflow changes.
Push includes
.github/workflows/build-iso.yml(Line 18) but pull_request does not (Lines 21-27).Proposed fix
pull_request: branches: [main] paths: - 'iso/**' - 'branding/**' - 'packages/**' - 'scripts/**' - 'Makefile' + - '.github/workflows/build-iso.yml'🤖 Prompt for AI Agents