Actually, split into 3, sysc is too long

This commit is contained in:
fosslinux 2023-05-03 08:48:40 +10:00
parent f124bc86be
commit ce33a6e9f9
4 changed files with 47 additions and 5 deletions

View File

@ -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,11 +77,46 @@ 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

View File

@ -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',

View File

@ -78,6 +78,7 @@ DESTDIR=${DESTDIR}
DISTFILES=${DISTFILES}
SRCDIR=${SRCDIR}
MAKEJOBS=${MAKEJOBS}
INTERNAL_CI=${INTERNAL_CI}
EOF
exec ./run.sh

View File

@ -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