Merge pull request #13 from cgwalters/builder

builder: New container image
This commit is contained in:
Colin Walters 2023-11-04 13:06:23 -04:00 committed by GitHub
commit b8a2ddea30
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 74 additions and 53 deletions

35
.github/workflows/builder.yml vendored Normal file
View File

@ -0,0 +1,35 @@
name: builder
on:
push:
paths:
- builder/**
env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository_owner }}/builder
jobs:
build-image:
runs-on: ubuntu-latest
steps:
- name: Install qemu dependency
run: |
sudo apt-get update
sudo apt-get install -y qemu-user-static
- name: Checkout repository
uses: actions/checkout@v3
- name: Login
run: buildah login --username ${{ github.actor }} --password ${{ secrets.GITHUB_TOKEN }} ${{ env.REGISTRY }}
- name: Build
uses: redhat-actions/buildah-build@v2
with:
image: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
tags: latest
containerfiles: ./builder/Containerfile
archs: s390x, arm64, amd64, ppc64le
oci: true
context: builder
- name: Push
run: buildah push ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}

View File

@ -1,46 +0,0 @@
image: registry.gitlab.com/centos/cloud/sagano-builder/centos:stream9
stages:
- build
.base:
tags:
- platform-engineering
parallel:
matrix:
- TIER:
- tier-0
- tier-1
OS: centos
VERSION: [stream9]
VARIANT: ["", "-rt"]
- TIER:
- tier-0
- tier-1
OS: fedora
VERSION: ["eln"]
VARIANT: ["", "-dev"]
.default-target: fedora-tier-1-eln
test-build:
extends: .base
only:
- merge_requests
stage: build
script:
- set -euo pipefail; rpm-ostree compose image --format=ociarchive --initialize ${OS}-${TIER}${VARIANT}-${VERSION}.yaml dest.oci-archive
build-push:
extends: .base
rules:
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
variables:
COMPOSE_INITIALIZE: "1"
FORCE: ""
stage: build
before_script:
# Log into the registry
- echo "$CI_REGISTRY_PASSWORD" | skopeo login -u "$CI_REGISTRY_USER" --password-stdin $CI_REGISTRY
script:
- set -euo pipefail; rpm-ostree compose image ${COMPOSE_INITIALIZE:+--initialize} ${FORCE:+--force-nocache} --format=registry ${OS}-${TIER}${VARIANT}-${VERSION}.yaml ${CI_REGISTRY_IMAGE}/${OS}-boot-${TIER}${VARIANT}:${VERSION}

View File

@ -1,5 +1,3 @@
# Sagano
# Goals
This project's toplevel goal is to create base *bootable* container images
@ -7,7 +5,9 @@ from Fedora ELN and CentOS Stream packages.
## Status
This project was migrated from https://gitlab.com/centos/cloud/sagano
This is an in-development project not intended for production use yet.
This project was migrated from [a gitlab repo](https://gitlab.com/centos/cloud/sagano)
and currently container images point to that repository. Reworking
the build system is in progress!
@ -15,10 +15,6 @@ the build system is in progress!
See [install.md](./install.md).
## Status
This is an in-development project not intended for production use yet.
## Differences from Fedora CoreOS
Fedora CoreOS today is not small; there are multiple reasons for this, but

5
builder/Containerfile Normal file
View File

@ -0,0 +1,5 @@
# This image contains the baseline tools to build bootable base images.
FROM quay.io/centos/centos:stream9
COPY coreos-continuous.repo /etc/yum.repos.d
COPY . /src
RUN /src/build.sh && cd / && rm /src -rf

21
builder/build.sh Executable file
View File

@ -0,0 +1,21 @@
#!/bin/bash
set -xeuo pipefail
pkginstall() {
dnf -y install "$@"
}
pkginstall dnf-utils
dnf config-manager --set-enabled crb
# Sadly there's no EPEL for s390x so we just hardcode this for now, it's noarch.
dnf -y install https://kojipkgs.fedoraproject.org//packages/distribution-gpg-keys/1.98/1.el9/noarch/distribution-gpg-keys-1.98-1.el9.noarch.rpm
# rpm-ostree for builds, and need skopeo to do the container backend
pkginstall rpm-ostree skopeo
# For derived container builds
pkginstall buildah
# And a rust toolchain
pkginstall cargo openssl-devel
# Build tools
pkginstall selinux-policy-targeted osbuild crypto-policies-scripts sudo

View File

@ -0,0 +1,10 @@
[copr:copr.fedorainfracloud.org:group_CoreOS:continuous]
name=Copr repo for continuous owned by @CoreOS
baseurl=https://download.copr.fedorainfracloud.org/results/@CoreOS/continuous/centos-stream-9-$basearch/
type=rpm-md
skip_if_unavailable=True
gpgcheck=1
gpgkey=https://download.copr.fedorainfracloud.org/results/@CoreOS/continuous/pubkey.gpg
repo_gpgcheck=0
enabled=1
enabled_metadata=1