Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[release/1.6 backport] rpm: minimal RHEL support #356

Open
wants to merge 3 commits into
base: release/1.6
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ def generatePackageStep(opts, arch) {
'''
checkout scm
sh 'make clean'
sh "make CREATE_ARCHIVE=1 ${opts.image}"
sh "make CREATE_ARCHIVE=1 ARCH=${arch} ${opts.image}"
archiveArtifacts(artifacts: 'archive/*.tar.gz', onlyIfSuccessful: true)
} finally {
deleteDir()
Expand Down
10 changes: 7 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@

include common/common.mk

ARCH=$(shell uname -m)
BUILD_IMAGE=ubuntu:focal
BUILD_TYPE=$(shell ./scripts/deb-or-rpm $(BUILD_IMAGE))
BUILD_BASE=$(shell ./scripts/determine-base $(BUILD_IMAGE))
Expand Down Expand Up @@ -67,8 +68,8 @@ endif
# make quay.io/centos/centos:stream8
#
# It is a shorthand for "make BUILD_IMAGE=mydistro:version build"
.PHONY: docker.io/% quay.io/%
docker.io/% quay.io/%:
.PHONY: docker.io/% quay.io/% registry.access.redhat.com/%
docker.io/% quay.io/% registry.access.redhat.com/%:
$(MAKE) BUILD_IMAGE="$@" build

.PHONY: checkout
Expand All @@ -84,7 +85,7 @@ build:
@echo ""
@echo "containerd : $(REF) (commit: $(shell git -C "src/github.com/containerd/containerd" log -1 --pretty='%h'))"
@echo "runc : $$(./scripts/determine-runc-version) (commit: $$(git -C "src/github.com/opencontainers/runc" log -1 --pretty='%h'))"
@echo "architecture : $(shell uname -m)"
@echo "architecture : $(ARCH)"
@echo "build image : $(BUILD_IMAGE)"
@echo "golang image : $(GOLANG_IMAGE)"
@echo "--------------------------------------------------------------------"
Expand All @@ -96,6 +97,9 @@ build:

@set -x; DOCKER_BUILDKIT=1 docker build \
--pull \
--secret id=rh-user,env=RH_USER \
--secret id=rh-pass,env=RH_PASS \
--platform linux/$(ARCH) \
--build-arg GOLANG_IMAGE="$(GOLANG_IMAGE)" \
--build-arg BUILD_IMAGE="$(BUILD_IMAGE)" \
--build-arg BASE="$(BUILD_BASE)" \
Expand Down
13 changes: 13 additions & 0 deletions dockerfiles/rpm.dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,19 @@ FROM ${BUILD_IMAGE} AS redhat-base
RUN yum install -y yum-utils rpm-build git

FROM redhat-base AS rhel-base
RUN --mount=type=secret,id=rh-user --mount=type=secret,id=rh-pass <<-EOT
rm -f /etc/rhsm-host

if [ ! -f /run/secrets/rh-user ] || [ ! -f /run/secrets/rh-pass ]; then
echo "Either RH_USER or RH_PASS is not set. Running build without subscription."
else
subscription-manager register \
--username="$(cat /run/secrets/rh-user)" \
--password="$(cat /run/secrets/rh-pass)"

subscription-manager repos --enable codeready-builder-for-rhel-$(source /etc/os-release && echo "${VERSION_ID%.*}"-$(arch)-rpms)
fi
EOT

FROM redhat-base AS centos-base
# Using a wildcard: CentOS 7 uses "CentOS-RepoName", CentOS 8 uses "CentOS-Linux-RepoName"
Expand Down