Restructure project layout for better CI/CD integration
- 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:
parent
5e8730df43
commit
aaf662d5b1
87 changed files with 1334 additions and 570 deletions
28
Dockerfile
Executable file
28
Dockerfile
Executable file
|
|
@ -0,0 +1,28 @@
|
|||
# Build from the current git into a c9s-bootc container image.
|
||||
# Use e.g. --build-arg=base=quay.io/fedora/fedora-bootc:41 to target
|
||||
# Fedora or another base image instead.
|
||||
#
|
||||
ARG base=quay.io/centos-bootc/centos-bootc:stream9
|
||||
|
||||
FROM $base as build
|
||||
# This installs our package dependencies, and we want to cache it independently of the rest.
|
||||
# Basically we don't want changing a .rs file to blow out the cache of packages.
|
||||
RUN <<EORUN
|
||||
set -xeuo pipefail
|
||||
dnf -y install cargo git openssl-devel
|
||||
EORUN
|
||||
# Now copy the source
|
||||
COPY . /build
|
||||
WORKDIR /build
|
||||
# See https://www.reddit.com/r/rust/comments/126xeyx/exploring_the_problem_of_faster_cargo_docker/
|
||||
# We aren't using the full recommendations there, just the simple bits.
|
||||
RUN --mount=type=cache,target=/build/target --mount=type=cache,target=/var/roothome \
|
||||
make && make install-all DESTDIR=/out
|
||||
|
||||
FROM $base
|
||||
# Clean out the default to ensure we're using our updated content
|
||||
RUN rpm -e bootupd
|
||||
COPY --from=build /out/ /
|
||||
# Sanity check this too
|
||||
RUN bootc container lint --fatal-warnings
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue