forked from sig_core/toolkit
add nplb to repoclosure list and altarch stuff
This commit is contained in:
parent
bcc1dd7c22
commit
62256a72b5
7
iso/py/build-iso
Normal file
7
iso/py/build-iso
Normal file
@ -0,0 +1,7 @@
|
||||
#!/usr/bin/env python3
|
||||
# builds ISO's
|
||||
|
||||
import argparse
|
||||
from common import *
|
||||
from util import Checks
|
||||
from util import IsoBuild
|
@ -43,6 +43,16 @@
|
||||
has_modules:
|
||||
- 'AppStream'
|
||||
- 'PowerTools'
|
||||
iso_map:
|
||||
hosts:
|
||||
x86_64: ''
|
||||
aarch64: ''
|
||||
ppc64le: ''
|
||||
s390x: ''
|
||||
images:
|
||||
- dvd1
|
||||
- minimal
|
||||
- boot
|
||||
repoclosure_map:
|
||||
arches:
|
||||
x86_64: '--arch=x86_64 --arch=athlon --arch=i686 --arch=i586 --arch=i486 --arch=i386 --arch=noarch'
|
||||
@ -68,4 +78,12 @@
|
||||
NFV:
|
||||
- BaseOS
|
||||
- AppStream
|
||||
extra_files:
|
||||
git_repo: 'https://git.rockylinux.org/staging/src/rocky-release.git'
|
||||
branch: 'r8'
|
||||
list:
|
||||
- 'SOURCES/COMMUNITY-CHARTER'
|
||||
- 'SOURCES/EULA'
|
||||
- 'SOURCES/LICENSE'
|
||||
- 'SOURCES/RPM-GPG-KEY-rockyofficial'
|
||||
...
|
||||
|
@ -50,6 +50,16 @@
|
||||
has_modules:
|
||||
- 'AppStream'
|
||||
- 'CRB'
|
||||
iso_map:
|
||||
hosts:
|
||||
x86_64: ''
|
||||
aarch64: ''
|
||||
ppc64le: ''
|
||||
s390x: ''
|
||||
images:
|
||||
- dvd1
|
||||
- minimal
|
||||
- boot
|
||||
repoclosure_map:
|
||||
arches:
|
||||
x86_64: '--arch=x86_64 --arch=athlon --arch=i686 --arch=i586 --arch=i486 --arch=i386 --arch=noarch'
|
||||
@ -57,6 +67,7 @@
|
||||
ppc64le: '--arch=ppc64le --arch=noarch'
|
||||
s390x: '--arch=s390x --arch=noarch'
|
||||
repos:
|
||||
nplb: []
|
||||
BaseOS: []
|
||||
AppStream:
|
||||
- BaseOS
|
||||
@ -83,4 +94,13 @@
|
||||
- BaseOS
|
||||
- AppStream
|
||||
- HighAvailability
|
||||
extra_files:
|
||||
git_repo: 'https://git.rockylinux.org/staging/src/rocky-release.git'
|
||||
branch: 'r9'
|
||||
list:
|
||||
- 'SOURCES/COMMUNITY-CHARTER'
|
||||
- 'SOURCES/EULA'
|
||||
- 'SOURCES/LICENSE'
|
||||
- 'SOURCES/RPM-GPG-KEY-Rocky-9'
|
||||
- 'SOURCES/RPM-GPG-KEY-Rocky-9-Testing'
|
||||
...
|
||||
|
@ -2,7 +2,11 @@
|
||||
'8':
|
||||
rockyrpi:
|
||||
project_id: ''
|
||||
additional_dirs:
|
||||
- 'images'
|
||||
'9':
|
||||
rockyrpi:
|
||||
project_id: ''
|
||||
additional_dirs:
|
||||
- 'images'
|
||||
...
|
||||
|
@ -1,3 +1,7 @@
|
||||
"""
|
||||
Imports all of our classes for this local module
|
||||
"""
|
||||
|
||||
from .check import (
|
||||
Checks,
|
||||
)
|
||||
@ -6,6 +10,11 @@ from .dnf_utils import (
|
||||
RepoSync,
|
||||
)
|
||||
|
||||
from .iso_utils import (
|
||||
IsoBuild,
|
||||
LiveBuild
|
||||
)
|
||||
|
||||
__all__ = [
|
||||
'Checks',
|
||||
'RepoSync'
|
||||
|
@ -69,6 +69,7 @@ class RepoSync:
|
||||
self.repos = rlvars['all_repos']
|
||||
self.multilib = rlvars['provide_multilib']
|
||||
self.repo = repo
|
||||
self.extra_files = rlvars['extra_files']
|
||||
|
||||
# each el can have its own designated container to run stuff in,
|
||||
# otherwise we'll just default to the default config.
|
||||
@ -176,6 +177,7 @@ class RepoSync:
|
||||
self.sync(self.repo, sync_root, work_root, log_root, self.arch)
|
||||
|
||||
if self.fullrun:
|
||||
self.deploy_extra_files()
|
||||
self.symlink_to_latest()
|
||||
|
||||
if self.repoclosure:
|
||||
@ -894,6 +896,12 @@ class RepoSync:
|
||||
for issue in bad_exit_list:
|
||||
self.log.error(issue)
|
||||
|
||||
def deploy_extra_files(self):
|
||||
"""
|
||||
deploys extra files based on info of rlvars
|
||||
"""
|
||||
pass
|
||||
|
||||
class SigRepoSync:
|
||||
"""
|
||||
This helps us do reposync operations for SIG's. Do not use this for the
|
||||
|
152
iso/py/util/iso_utils.py
Normal file
152
iso/py/util/iso_utils.py
Normal file
@ -0,0 +1,152 @@
|
||||
"""
|
||||
Builds ISO's for Rocky Linux.
|
||||
|
||||
Louis Abel <label AT rockylinux.org>
|
||||
"""
|
||||
|
||||
import logging
|
||||
import sys
|
||||
import os
|
||||
import os.path
|
||||
import subprocess
|
||||
import shlex
|
||||
import time
|
||||
import re
|
||||
from common import Color
|
||||
|
||||
class IsoBuild:
|
||||
"""
|
||||
This helps us build the generic ISO's for a Rocky Linux release. In
|
||||
particular, this is for the boot and dvd images.
|
||||
|
||||
Live images are built in another class.
|
||||
"""
|
||||
def __init__(
|
||||
self,
|
||||
rlvars,
|
||||
config,
|
||||
major,
|
||||
host=None,
|
||||
image=None,
|
||||
arch=None,
|
||||
logger=None
|
||||
):
|
||||
self.arch = arch
|
||||
self.image = image
|
||||
self.host = host
|
||||
# Relevant config items
|
||||
self.major_version = major
|
||||
self.date_stamp = config['date_stamp']
|
||||
self.compose_root = config['compose_root']
|
||||
self.compose_base = config['compose_root'] + "/" + major
|
||||
self.iso_base = config['compose_root'] + "/" + major + "/isos"
|
||||
self.current_arch = config['arch']
|
||||
self.extra_files = rlvars['extra_files']
|
||||
|
||||
# Relevant major version items
|
||||
self.revision = rlvars['revision'] + "-" + rlvars['rclvl']
|
||||
self.arches = rlvars['allowed_arches']
|
||||
|
||||
self.staging_dir = os.path.join(
|
||||
config['staging_root'],
|
||||
config['category_stub'],
|
||||
self.revision
|
||||
)
|
||||
|
||||
self.compose_latest_dir = os.path.join(
|
||||
config['compose_root'],
|
||||
major,
|
||||
"latest-Rocky-{}".format(major)
|
||||
)
|
||||
|
||||
self.compose_latest_sync = os.path.join(
|
||||
self.compose_latest_dir,
|
||||
"compose"
|
||||
)
|
||||
|
||||
self.compose_log_dir = os.path.join(
|
||||
self.compose_latest_dir,
|
||||
"work/logs"
|
||||
)
|
||||
|
||||
# This is temporary for now.
|
||||
if logger is None:
|
||||
self.log = logging.getLogger("iso")
|
||||
self.log.setLevel(logging.INFO)
|
||||
handler = logging.StreamHandler(sys.stdout)
|
||||
handler.setLevel(logging.INFO)
|
||||
formatter = logging.Formatter(
|
||||
'%(asctime)s :: %(name)s :: %(message)s',
|
||||
'%Y-%m-%d %H:%M:%S'
|
||||
)
|
||||
handler.setFormatter(formatter)
|
||||
self.log.addHandler(handler)
|
||||
|
||||
self.log.info('iso build init')
|
||||
self.log.info(self.revision)
|
||||
|
||||
def run(self):
|
||||
work_root = os.path.join(
|
||||
self.compose_latest_dir,
|
||||
'work'
|
||||
)
|
||||
sync_root = self.compose_latest_sync
|
||||
|
||||
log_root = os.path.join(
|
||||
work_root,
|
||||
"logs"
|
||||
)
|
||||
|
||||
self.iso_build(
|
||||
sync_root,
|
||||
work_root,
|
||||
log_root,
|
||||
self.arch,
|
||||
self.host
|
||||
)
|
||||
|
||||
self.log.info('Compose repo directory: %s' % sync_root)
|
||||
self.log.info('ISO Build Logs: %s' % log_root)
|
||||
self.log.info('ISO Build completed.')
|
||||
|
||||
def iso_build(self, sync_root, work_root, log_root, arch, host):
|
||||
"""
|
||||
Calls out the ISO builds to the individual hosts listed in the map.
|
||||
Each architecture is expected to build their own ISOs, similar to
|
||||
runroot operations of koji and pungi.
|
||||
|
||||
It IS possible to run locally, but that would mean this only builds
|
||||
ISOs for the architecture of the running machine. Please keep this in
|
||||
mind when stating host=local.
|
||||
"""
|
||||
# Check for local build, build accordingly
|
||||
# Check for arch specific build, build accordingly
|
||||
# local AND arch cannot be used together, local supersedes. print
|
||||
# warning.
|
||||
local_only = False
|
||||
if 'local' in self.host:
|
||||
local_only = True
|
||||
|
||||
arch = self.arch.copy()
|
||||
if local_only and self.arch:
|
||||
self.log.warn('You cannot set local build AND an architecture.')
|
||||
self.log.warn('The architecture %s will be set' % self.current_arch)
|
||||
arch = self.current_arch
|
||||
|
||||
def iso_build_local(self, sync_root, work_root, log_root):
|
||||
"""
|
||||
Local iso builds only. Architecture is locked.
|
||||
"""
|
||||
print()
|
||||
|
||||
def iso_build_remote(self, sync_root, work_root, log_root, arch):
|
||||
"""
|
||||
Remote ISO builds. Architecture is all or single.
|
||||
"""
|
||||
print()
|
||||
|
||||
|
||||
class LiveBuild:
|
||||
"""
|
||||
This helps us build the live images for Rocky Linux.
|
||||
"""
|
Loading…
Reference in New Issue
Block a user