-
Notifications
You must be signed in to change notification settings - Fork 6
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
88b6dd9
e5cd996
f160a26
f1a9257
cf6c7d0
6795845
8b08ced
046fbd7
f8795e3
7b2b807
85a1b65
f7efcb4
36a8505
f58c26f
c3116d9
19a0997
c61b206
54eb622
4c950da
ccdc3d4
e5dec82
563512e
541188d
9657e72
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 | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -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: | ||||||||||
|
|
@@ -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 | ||||||||||
|
Comment on lines
141
to
142
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/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') }} | ||||||||||
|
|
||||||||||
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.
Update to the latest version of softprops/action-gh-release.
The
v1tag uses an outdated runner version that may not work on GitHub Actions. Update to a more recent version (e.g.,v2or a specific commit SHA).Based on the static analysis hint from actionlint.
📦 Proposed fix
📝 Committable suggestion
🧰 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