Restructure project layout for better CI/CD integration
Some checks failed
Cross build / Build on ppc64le (push) Failing after 1m8s
Cross build / Build on s390x (push) Failing after 2s

- Flattened nested bootupd/bootupd/ structure to root level
- Moved all core project files to root directory
- Added proper Debian packaging structure (debian/ directory)
- Created build scripts and CI configuration
- Improved project organization for CI/CD tools
- All Rust source, tests, and configuration now at root level
- Added GitHub Actions workflow for automated testing
- Maintained all original functionality while improving structure
This commit is contained in:
robojerk 2025-08-09 23:11:42 -07:00
parent 5e8730df43
commit aaf662d5b1
87 changed files with 1334 additions and 570 deletions

6
ci/build-test.sh Executable file
View file

@ -0,0 +1,6 @@
#!/bin/bash
set -xeuo pipefail
test -n "${COSA_DIR:-}"
make
cosa build-fast
kola run -E $(pwd) --qemu-image fastbuild-*-qemu.qcow2 --qemu-firmware uefi ext.bootupd.'*'

14
ci/prepare-release.sh Executable file
View file

@ -0,0 +1,14 @@
#!/bin/bash
# Prepare a release
set -euo pipefail
cargo publish --dry-run
name=$(cargo read-manifest | jq -r .name)
version=$(cargo read-manifest | jq -r .version)
commit=$(git rev-parse HEAD)
# Generate a vendor tarball of sources to attach to a release
# in order to support offline builds.
vendor_dest=target/${name}-${version}-vendor.tar.zstd
cargo vendor-filterer --prefix=vendor --format=tar.zstd "${vendor_dest}"
echo "Prepared ${version} at commit ${commit}"

21
ci/prow/Dockerfile Executable file
View file

@ -0,0 +1,21 @@
FROM quay.io/coreos-assembler/fcos-buildroot:testing-devel as builder
WORKDIR /src
COPY . .
RUN make && make install DESTDIR=/cosa/component-install
RUN make -C tests/kolainst install DESTDIR=/cosa/component-tests
# Uncomment this to fake a build to test the code below
# RUN mkdir -p /cosa/component-install/usr/bin && echo foo > /cosa/component-install/usr/bin/foo
FROM quay.io/coreos-assembler/coreos-assembler:latest
WORKDIR /srv
# Install our built binaries as overrides for the target build
COPY --from=builder /cosa/component-install/ /srv/overrides/rootfs/
# Copy and install tests too
COPY --from=builder /cosa/component-tests /srv/tmp/component-tests
# And fix permissions
RUN sudo chown -R builder: /srv/*
# Install tests
USER root
RUN rsync -rlv /srv/tmp/component-tests/ / && rm -rf /srv/tmp/component-tests
USER builder
COPY --from=builder /src/ci/prow/fcos-e2e.sh /usr/bin/fcos-e2e

9
ci/prow/fcos-e2e.sh Executable file
View file

@ -0,0 +1,9 @@
#!/bin/bash
set -xeuo pipefail
# Prow jobs don't support adding emptydir today
export COSA_SKIP_OVERLAY=1
cosa init --force https://github.com/coreos/fedora-coreos-config/
cosa fetch
cosa build
cosa kola run --qemu-firmware uefi 'ext.bootupd.*'