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
6
ci/build-test.sh
Executable file
6
ci/build-test.sh
Executable 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
14
ci/prepare-release.sh
Executable 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
21
ci/prow/Dockerfile
Executable 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
9
ci/prow/fcos-e2e.sh
Executable 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.*'
|
||||
Loading…
Add table
Add a link
Reference in a new issue