Skip to content

shadow: Fix patch #1434

shadow: Fix patch

shadow: Fix patch #1434

Workflow file for this run

name: Container
on: [push, pull_request, workflow_dispatch]
jobs:
build-rootfs:
name: Build cbuildrt rootfs
runs-on: ubuntu-24.04
container: fedora:40
steps:
- name: Install prerequisites
run: |
dnf -y install dnf-plugins-core wget docker skopeo rsync openssl stunnel
dnf -y copr enable ganto/umoci
dnf -y install umoci
- name: Install rsync-ssl
run: |
wget https://raw.githubusercontent.com/WayneD/rsync/c3f7414c450faaf6a8281cc4a4403529aeb7d859/rsync-ssl
sudo install -D rsync-ssl /usr/local/bin/rsync-ssl
- name: Checkout
uses: actions/checkout@v2
- name: Build container
run: |
docker build -t managarm-buildenv docker/
- name: Build OCI runtime bundle
run: |
set -x
skopeo copy docker-daemon:managarm-buildenv:latest oci:buildenv-image:latest
umoci unpack --rootless --image buildenv-image:latest buildenv-bundle/
rm -rf buildenv-image/
- name: Finalize cbuildrt rootfs
run: |
set -x
# Perform some post-processing.
mkdir buildenv-bundle/rootfs/dev/pts
mkdir buildenv-bundle/rootfs/dev/shm
ln -s /proc/self/fd/0 buildenv-bundle/rootfs/dev/stdin
ln -s /proc/self/fd/1 buildenv-bundle/rootfs/dev/stdout
ln -s /proc/self/fd/2 buildenv-bundle/rootfs/dev/stderr
ln -s /proc/self/fd buildenv-bundle/rootfs/dev/fd
touch buildenv-bundle/rootfs/dev/{full,null,zero}
touch buildenv-bundle/rootfs/dev/tty
touch buildenv-bundle/rootfs/dev/{random,urandom}
# Make directories for bind mounts.
mkdir -p buildenv-bundle/rootfs/var/lib/managarm-buildenv/{src,build}
# Pack the resulting rootfs.
tar -czf managarm-buildenv.tar.gz -C buildenv-bundle/ rootfs
- name: Upload rootfs to mirrors.managarm.org
if: github.repository_owner == 'managarm' && github.ref == 'refs/heads/master'
env:
RSYNC_PASSWORD: ${{ secrets.RSYNC_CBUILDRT_ROOTFS_PASSWD }}
run: |
sha256sum managarm-buildenv.tar.gz > managarm-buildenv.sum
rsync-ssl -a --delete managarm-buildenv.{sum,tar.gz} buildenv@rsync.managarm.org::wbuildenv/