Skip to content

[infra/github] Introduce workflow for rootfs generation #3

[infra/github] Introduce workflow for rootfs generation

[infra/github] Introduce workflow for rootfs generation #3

Workflow file for this run

# Generate root file system for CI/CD cross build
name: 'Generate RootFS'
on:
pull_request:
branches:
- master
- release/*
paths:
- '.github/workflows/generate-rootfs.yml'
- 'tools/cross/**'
push:
branches:
- master
- release/*
paths:
- '.github/workflows/generate-rootfs.yml'
- 'tools/cross/**'
schedule:
# Every 1st day of the month at midnight (korean time zone, UTC+9:00)
- cron: '0 15 1 * *'
workflow_dispatch:
jobs:
gen-rootfs:
if: github.repository_owner == 'Samsung'
runs-on: ubuntu-22.04
strategy:
matrix:
os: [ focal, jammy, noble ]
arch: [ arm, aarch64 ]
fail-fast: false
steps:
- name: Install qemu
uses: docker/setup-qemu-action@v3
- name: Install debootstrap
run: sudo apt-get update && sudo apt-get install -y debootstrap
- name: Checkout
uses: actions/checkout@v4
- name: Generate RootFS
run: |
pushd tools/cross
sudo ./install_rootfs.sh ${{ matrix.arch }} ${{ matrix.os }} --skipunmount
sudo umount --recursive rootfs || true
popd
- name: Archive RootFS for PR
uses: actions/upload-artifact@v4
with:
name: rootfs_${{ matrix.arch }}_${{ matrix.os }}
# Set short-lived artifacts for PRs only to avoid cluttering the storage.
retention-days: ${{ github.event_name == 'pull_request' && '3' || '60' }}
path: |
tools/cross/rootfs/${{ matrix.arch }}/bin/
tools/cross/rootfs/${{ matrix.arch }}/lib/
tools/cross/rootfs/${{ matrix.arch }}/usr/
tools/cross/rootfs/${{ matrix.arch }}/etc/