mirror of
https://github.com/fosslinux/live-bootstrap.git
synced 2026-03-02 01:18:08 +01:00
There is nothing temporary about our "tmpdir" - its sole purpose is to contain the final product of the bootstrap process. Thus, removing it at the end of bootstrap amounts to doing the entire process for nothing. To remedy this, --tmpdir is renamed --target, keeping the -t short form, and defaulting to "target" instead of "tmp" to make its purpose clearer. The --preserve option is removed, as the target is now always preserved.
158 lines
5 KiB
YAML
158 lines
5 KiB
YAML
# SPDX-FileCopyrightText: 2023 fosslinux <fosslinux@aussies.space>
|
|
#
|
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
name: Run under bubblewrap
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
pull_request:
|
|
push:
|
|
branches:
|
|
- master
|
|
|
|
jobs:
|
|
pass1:
|
|
name: Run up to Linux build under bubblewrap
|
|
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: Query cache for sources
|
|
id: cache
|
|
uses: actions/cache/restore@v3
|
|
with:
|
|
path: |
|
|
distfiles
|
|
key: cache-${{ hashFiles('steps/*/sources') }}
|
|
- name: Get sources
|
|
if: steps.cache.outputs.cache-hit != 'true'
|
|
run: ./download-distfiles.sh
|
|
- name: Cache sources
|
|
if: steps.cache.outputs.cache-hit != 'true'
|
|
uses: actions/cache/save@v3
|
|
with:
|
|
path: |
|
|
distfiles
|
|
key: cache-${{ hashFiles('steps/*/sources') }}
|
|
- name: Run bootstrap
|
|
run: ./rootfs.py --bwrap --external-sources --build-kernels --cores 2 --internal-ci pass1
|
|
- name: Archive created packages
|
|
if: failure() # archive failed builds progress
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: packages
|
|
path: target/external/repo/**
|
|
- name: Tar pass1 image
|
|
run: tar -cf pass1_image.tar target
|
|
- name: Archive pass1_image
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: internal_pass1_image
|
|
path: pass1_image.tar
|
|
|
|
pass2:
|
|
name: Run up to Python bootstrap under bubblewrap
|
|
needs: pass1
|
|
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 pass1_image
|
|
uses: actions/download-artifact@v3
|
|
with:
|
|
name: internal_pass1_image
|
|
- name: Extract pass1_image
|
|
run: tar -xf pass1_image.tar
|
|
- name: Query cache for sources
|
|
id: cache
|
|
uses: actions/cache/restore@v3
|
|
with:
|
|
path: |
|
|
distfiles
|
|
key: cache-${{ hashFiles('steps/*/sources') }}
|
|
- name: Get sources
|
|
if: steps.cache.outputs.cache-hit != 'true'
|
|
run: ./download-distfiles.sh
|
|
- name: Cache sources
|
|
if: steps.cache.outputs.cache-hit != 'true'
|
|
uses: actions/cache/save@v3
|
|
with:
|
|
path: |
|
|
distfiles
|
|
key: cache-${{ hashFiles('steps/*/sources') }}
|
|
- name: Run bootstrap
|
|
run: ./rootfs.py --bwrap --external-sources --build-kernels --cores 2 --internal-ci pass2
|
|
- name: Archive created packages
|
|
if: failure() # archive failed builds progress
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: internal_packages_pass2
|
|
path: target/external/repo/**
|
|
- name: Tar pass2 image
|
|
run: tar -cf pass2_image.tar target
|
|
- name: Archive pass2_image
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: internal_pass2_image
|
|
path: pass2_image.tar
|
|
|
|
pass3:
|
|
name: Run remaining builds under bubblewrap
|
|
needs: pass2
|
|
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 pass2_image
|
|
uses: actions/download-artifact@v3
|
|
with:
|
|
name: internal_pass2_image
|
|
- name: Extract pass2_image
|
|
run: tar -xf pass2_image.tar
|
|
- name: Query cache for sources
|
|
id: cache
|
|
uses: actions/cache/restore@v3
|
|
with:
|
|
path: |
|
|
distfiles
|
|
key: cache-${{ hashFiles('steps/*/sources') }}
|
|
- name: Get sources
|
|
if: steps.cache.outputs.cache-hit != 'true'
|
|
run: ./download-distfiles.sh
|
|
- name: Cache sources
|
|
if: steps.cache.outputs.cache-hit != 'true'
|
|
uses: actions/cache/save@v3
|
|
with:
|
|
path: |
|
|
distfiles
|
|
key: cache-${{ hashFiles('steps/*/sources') }}
|
|
- name: Run bootstrap
|
|
run: ./rootfs.py --bwrap --external-sources --build-kernels --cores 2 --internal-ci pass3
|
|
- name: Archive created packages
|
|
if: always() # archive both failed and successful builds
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: packages
|
|
path: target/external/repo/**
|