# SPDX-FileCopyrightText: 2023 fosslinux # # 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: - &install-bubblewrap name: Install bubblewrap run: sudo apt install bubblewrap - &checkout-repo name: Checkout repo &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 - &query-sources name: Query cache for sources id: cache uses: actions/cache/restore@v3 with: path: | distfiles key: cache-${{ hashFiles('steps/*/sources') }} - &get-sources name: Get sources if: steps.cache.outputs.cache-hit != 'true' run: ./download-distfiles.sh - &cache-sources name: Cache sources if: steps.cache.outputs.cache-hit != 'true' uses: actions/cache/save@v3 with: path: | distfiles key: cache-${{ hashFiles('steps/*/sources') }} - &run-bootstrap name: Run bootstrap run: ./rootfs.py --bwrap --external-sources --build-kernels --preserve --cores 2 --internal-ci pass1 - &archive-packages name: Archive created packages if: failure() # archive failed builds progress uses: actions/upload-artifact@v3 with: name: packages path: tmp/external/repo/** - name: Tar pass1 image run: tar -cf pass1_image.tar tmp - 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: - *install-bubblewrap - *checkout-repo - name: Get pass1_image uses: actions/download-artifact@v3 with: name: internal_pass1_image - name: Extract pass1_image run: tar -xf pass1_image.tar - *query-sources - *get-sources - *cache-sources - *run-bootstrap - *archive-packages - name: Tar pass2 image run: tar -cf pass2_image.tar tmp - 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: - *install-bubblewrap - *checkout-repo - name: Get pass2_image uses: actions/download-artifact@v3 with: name: internal_pass2_image - name: Extract pass2_image run: tar -xf pass2_image.tar - *query-sources - *get-sources - *cache-sources - *run-bootstrap - <<: *archive-packages if: always() # archive both failed and successful builds