Skip to content

Commit

Permalink
feat: Use custom container for package builds
Browse files Browse the repository at this point in the history
This creates a container image with dependencies already installed. It is published to ghcr.io/t2linux/fedora-kernel-build.

Merges #9
  • Loading branch information
sharpenedblade authored Jul 24, 2023
1 parent 1d448b2 commit 875c7e7
Show file tree
Hide file tree
Showing 5 changed files with 58 additions and 14 deletions.
42 changes: 42 additions & 0 deletions .github/workflows/build-container.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
name: Create build container
on:
push:
paths:
- Containerfile

jobs:
build-container:
name: Build container image
runs-on: ubuntu-latest
env:
IMAGE_NAME: fedora-kernel-build
REGISTRY: ghcr.io
steps:
- name: Checkout
uses: actions/checkout@v3

- name: Build container image
id: build-image
uses: redhat-actions/buildah-build@v2
with:
image: ${{ env.IMAGE_NAME }}
tags: latest ${{ github.sha }} 38
containerfiles: |
./Containerfile
- name: Log in to ghcr.io
if: github.ref == 'refs/heads/main'
uses: redhat-actions/podman-login@v1
with:
registry: ${{ env.REGISTRY }}
username: t2linux
password: ${{ secrets.GITHUB_TOKEN }}

- name: Push to ghcr.io
if: github.ref == 'refs/heads/main'
id: push-to-ghcr
uses: redhat-actions/push-to-registry@v2
with:
image: ${{ steps.build-image.outputs.image }}
tags: ${{ steps.build-image.outputs.tags }}
registry: ${{ env.REGISTRY }}
6 changes: 4 additions & 2 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,8 @@ jobs:
docker run -t --privileged \
-v "$PWD":/repo \
-e PACKAGE \
fedora:38 /bin/bash -c "/repo/build-packages.sh"
ghcr.io/t2linux/fedora-kernel-build:latest \
/repo/build-packages.sh
env:
PACKAGE: ${{ matrix.package }}

Expand Down Expand Up @@ -70,7 +71,8 @@ jobs:
docker run -t \
-v $PWD:/repo \
-e RPM_SIGNING_PRIVATE_KEY_B64 \
fedora:38 /bin/bash -c "/repo/sign-packages.sh"
ghcr.io/t2linux/fedora-kernel-build:latest \
/repo/sign-packages.sh
env:
RPM_SIGNING_PRIVATE_KEY_B64: ${{ secrets.RPM_SIGNING_PRIVATE_KEY_B64 }}

Expand Down
12 changes: 12 additions & 0 deletions Containerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
FROM fedora:38
SHELL ["/usr/bin/env", "bash", "-c"]
RUN dnf install -y koji git rpmdevtools rpm-sign mock ccache zstd && \
dnf clean all && \
echo "\
config_opts['plugin_conf']['package_state_enable'] = False \n\
config_opts['macros']['_smp_mflags'] = '-j8' \n\
config_opts['plugin_conf']['ccache_opts']['compress'] = True \n\
config_opts['plugin_conf']['root_cache_opts']['compress_program'] = 'zstd' \n\
config_opts['plugin_conf']['root_cache_opts']['extension'] = '.zst' \n\
config_opts['plugin_conf']['hw_info_enable'] = False\n" > /etc/mock/site-defaults.cfg
WORKDIR /repo
11 changes: 0 additions & 11 deletions build-packages.sh
Original file line number Diff line number Diff line change
@@ -1,17 +1,6 @@
#!/usr/bin/bash
source /repo/util.sh

# Install dependencies
dnf install -y --quiet koji git curl pesign rpmdevtools rpm-sign rpm-build mock zstd

# Optimize mock
echo 'config_opts["plugin_conf"]["package_state_enable"] = False
config_opts["macros"]["%_smp_mflags"] = "-j8"
config_opts["plugin_conf"]["ccache_opts"]["compress"] = True
config_opts["plugin_conf"]["root_cache_opts"]["compress_program"] = "zstd"
config_opts["plugin_conf"]["root_cache_opts"]["extension"] = ".zst"
config_opts["plugin_conf"]["hw_info_enable"] = False' > /etc/mock/site-defaults.cfg

cd /repo

if [ "$PACKAGE" == "kernel" ]; then
Expand Down
1 change: 0 additions & 1 deletion sign-packages.sh
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
#!/usr/bin/bash
source /repo/util.sh
dnf install --quiet -y rpm-sign rpmdevtools

cd /repo/_output
sign_packages $RPM_SIGNING_PRIVATE_KEY_B64 "T2Linux Fedora"

0 comments on commit 875c7e7

Please sign in to comment.