- Fixed build system to clone source repositories instead of downloading binaries - Enhanced scripts/fetch-github.sh with proper git repo cloning and branch handling - Updated scripts/compile-components.sh for RFS compilation with build-binary feature - Added minimal firmware installation for essential network drivers (73 modules) - Created comprehensive zinit configuration set (15 config files including getty) - Added util-linux package for getty/agetty console support - Optimized package selection for minimal 27MB initramfs footprint - Successfully builds bootable vmlinuz.efi with embedded initramfs - Confirmed working: VM boot, console login, network drivers, zinit init system Components: - initramfs.cpio.xz: 27MB compressed minimal Zero-OS image - vmlinuz.efi: 35MB bootable kernel with embedded initramfs - Complete Zero-OS toolchain: zinit, rfs, mycelium compiled from source
54 lines
1.6 KiB
YAML
54 lines
1.6 KiB
YAML
on:
|
|
push:
|
|
# Sequence of patterns matched against refs/tags
|
|
tags:
|
|
- "v*" # Push events to matching v*, i.e. v1.0, v20.15.10
|
|
|
|
name: Create Release
|
|
|
|
jobs:
|
|
build:
|
|
name: Releasing rfs
|
|
# we use 18.04 to be compatible with libc version on zos
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Prepare
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install musl-dev musl-tools
|
|
sudo apt-get install capnproto
|
|
- name: Checkout code
|
|
uses: actions/checkout@v2
|
|
- uses: actions-rs/toolchain@v1
|
|
name: Install toolchain
|
|
with:
|
|
toolchain: stable
|
|
target: x86_64-unknown-linux-musl
|
|
- uses: actions-rs/cargo@v1
|
|
with:
|
|
command: build
|
|
args: --release --target=x86_64-unknown-linux-musl --features build-binary
|
|
- name: Strip
|
|
run: |
|
|
strip target/x86_64-unknown-linux-musl/release/rfs
|
|
- name: Create Release
|
|
id: create_release
|
|
uses: actions/create-release@v1
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
with:
|
|
tag_name: ${{ github.ref }}
|
|
release_name: Release ${{ github.ref }}
|
|
draft: false
|
|
prerelease: false
|
|
- name: Upload Release Asset for RFS
|
|
id: upload-release-asset-rfs
|
|
uses: actions/upload-release-asset@v1
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
with:
|
|
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
|
asset_path: target/x86_64-unknown-linux-musl/release/rfs
|
|
asset_name: rfs
|
|
asset_content_type: application/x-pie-executable
|