commit: ce33a6e9f9c147416fbfe14d412831818e6c359a
parent f124bc86bef4da3a20fb60e337ae66cf99d56381
Author: fosslinux <fosslinux@aussies.space>
Date: Wed, 3 May 2023 08:48:40 +1000
Actually, split into 3, sysc is too long
Diffstat:
4 files changed, 47 insertions(+), 5 deletions(-)
diff --git a/.github/workflows/bwrap.yml b/.github/workflows/bwrap.yml
@@ -57,11 +57,11 @@ jobs:
- name: Archive sysc_image
uses: actions/upload-artifact@v3
with:
- name: sysc_image
+ name: internal_sysc_image
path: sysc_image.tar
- sysc:
- name: Run sysc under bubblewrap
+ sysc1:
+ name: Run sysc (part 1) under bubblewrap
needs: sysa
runs-on: ubuntu-latest
steps:
@@ -77,12 +77,47 @@ jobs:
- name: Get sysc_image
uses: actions/download-artifact@v3
with:
- name: sysc_image
+ name: internal_sysc_image
- name: Extract sysc_image
run: tar -xf sysc_image.tar
- name: Run bootstrap
run: ./rootfs.py --bwrap --external-sources --build-kernels --preserve --cores 2 --internal-ci pass2
- name: Archive created packages
+ if: always() # archive failed builds progress
+ uses: actions/upload-artifact@v3
+ with:
+ name: internal_packages_sysc1
+ path: tmp/sysa/sysc_image/usr/src/repo/**
+
+ sysc2:
+ name: Run sysc (part 2) under bubblewrap
+ needs: sysc1
+ runs-on: ubuntu-latest
+ steps:
+ - name: Install bubblewrap
+ run: sudo apt install bubblewrap
+ - name: Checkout repo
+ uses: actions/checkout@v3
+ with:
+ submodules: recursive
+ # There is a strange bug(?) in nongnu, when you clone a git repository
+ # against a commit != HEAD with depth=1, it errors out.
+ fetch-depth: 0
+ - name: Get sysc_image
+ uses: actions/download-artifact@v3
+ with:
+ name: internal_sysc_image
+ - name: Extract sysc_image
+ run: tar -xf sysc_image.tar
+ # By doing this, all packages that have already been compiled will come from the preseed.
+ - name: Get packages repo progress
+ uses: actions/download-artifact@v3
+ with:
+ name: internal_packages_sysc1
+ path: tmp/sysa/sysc_image/usr/src/repo-preseeded/
+ - name: Run bootstrap
+ run: ./rootfs.py --bwrap --external-sources --build-kernels --preserve --cores 2 --internal-ci pass3
+ - name: Archive created packages
if: always() # archive failed builds
uses: actions/upload-artifact@v3
with:
diff --git a/rootfs.py b/rootfs.py
@@ -15,6 +15,7 @@ you can run bootstap inside chroot.
import argparse
import os
+import shutil
from sysa import SysA
from sysc import SysC
@@ -35,6 +36,7 @@ def create_configuration_file(args):
config.write(f"UPDATE_CHECKSUMS={args.update_checksums}\n")
config.write(f"JOBS={args.cores}\n")
config.write("DISK=sda1\n")
+ config.write(f"INTERNAL_CI={args.internal_ci}\n")
if (args.bare_metal or args.qemu) and not args.kernel:
config.write("KERNEL_BOOTSTRAP=True\n")
else:
@@ -198,7 +200,9 @@ print(shutil.which('chroot'))
'--dev-bind', '/dev/urandom', '/dev/urandom',
init)
- if not args.internal_ci or args.internal_ci == "pass2":
+ if not args.internal_ci or args.internal_ci == "pass2" or args.internal_ci == "pass3":
+ shutil.copy2(os.path.join('sysa', 'bootstrap.cfg'),
+ os.path.join('tmp', 'sysa', 'sysc_image', 'usr', 'src', 'bootstrap.cfg'))
run('bwrap', '--unshare-user',
'--uid', '0',
'--gid', '0',
diff --git a/sysc/init b/sysc/init
@@ -78,6 +78,7 @@ DESTDIR=${DESTDIR}
DISTFILES=${DISTFILES}
SRCDIR=${SRCDIR}
MAKEJOBS=${MAKEJOBS}
+INTERNAL_CI=${INTERNAL_CI}
EOF
exec ./run.sh
diff --git a/sysc/run2.sh b/sysc/run2.sh
@@ -120,6 +120,8 @@ build python-3.8.16
build python-3.11.1
+[ "${INTERNAL_CI}" = "pass2" ] && exit 0
+
build gcc-10.4.0
build binutils-2.38 pass2.sh