Compare commits

..

1 Commits

Author SHA1 Message Date
Christian Heusel
8125a81a98 fix: Reduce verbosity if version file is missing
As we don't check for the existance of the version file this would
otherwise emit a useless error to the commandline:

    > ==> Building protobuf for [extra-staging] (x86_64)
    > cat: /var/lib/archbuild/extra-staging-x86_64/root/.arch-chroot: No such file or directory
    > ==> Creating chroot for [extra-staging] (x86_64)...

Fix this by just silencing the error, as the check later also covers the
case for empty `CURRENT_CHROOT_VERSION`.

Fixes #272

Component: archbuild
Signed-off-by: Christian Heusel <christian@heusel.eu>
2025-07-28 18:30:49 +02:00
7 changed files with 12 additions and 105 deletions

View File

@@ -24,7 +24,7 @@ test:
stage: test stage: test
needs: [] needs: []
script: script:
- pacman -Syu --noconfirm m4 make openssh subversion rsync arch-install-scripts git bzr mercurial diffutils coreutils asciidoctor shellcheck nvchecker bats bats-assert bats-support - pacman -Syu --noconfirm m4 make openssh subversion rsync arch-install-scripts git bzr mercurial diffutils coreutils asciidoctor shellcheck nvchecker bats
- make test BATS_EXTRA_ARGS='--formatter junit' - make test BATS_EXTRA_ARGS='--formatter junit'
artifacts: artifacts:
reports: reports:
@@ -34,7 +34,7 @@ coverage:
stage: test stage: test
needs: [] needs: []
script: script:
- pacman -Syu --noconfirm m4 make openssh subversion rsync arch-install-scripts git bzr mercurial diffutils coreutils asciidoctor shellcheck nvchecker bats bats-assert bats-support kcov jq - pacman -Syu --noconfirm m4 make openssh subversion rsync arch-install-scripts git bzr mercurial diffutils coreutils asciidoctor shellcheck nvchecker bats kcov jq
- make coverage - make coverage
coverage: '/Percent covered\s+\d+\.\d+/' coverage: '/Percent covered\s+\d+\.\d+/'
artifacts: artifacts:

View File

@@ -150,7 +150,6 @@ _pkgctl_cmds=(
db db
diff diff
issue issue
license
release release
repo repo
search search

View File

@@ -80,7 +80,7 @@ check_root SOURCE_DATE_EPOCH,SRCDEST,SRCPKGDEST,PKGDEST,LOGDEST,MAKEFLAGS,PACKAG
makechrootpkg_args+=("${@:$OPTIND}") makechrootpkg_args+=("${@:$OPTIND}")
# Automatically recreate the root chroot if a version mismatch is detected # Automatically recreate the root chroot if a version mismatch is detected
CURRENT_CHROOT_VERSION=$(cat "${chroots}/${repo}-${arch}/root/.arch-chroot") CURRENT_CHROOT_VERSION=$(cat "${chroots}/${repo}-${arch}/root/.arch-chroot" 2>/dev/null)
if [[ -f "${chroots}/${repo}-${arch}/root/.arch-chroot" ]] && [[ "$CURRENT_CHROOT_VERSION" != "$CHROOT_VERSION" ]]; then if [[ -f "${chroots}/${repo}-${arch}/root/.arch-chroot" ]] && [[ "$CURRENT_CHROOT_VERSION" != "$CHROOT_VERSION" ]]; then
warning "Recreating chroot '%s' (%s) as it is not at version %s" "${chroots}/${repo}-${arch}/root" "$CURRENT_CHROOT_VERSION" "$CHROOT_VERSION" warning "Recreating chroot '%s' (%s) as it is not at version %s" "${chroots}/${repo}-${arch}/root" "$CURRENT_CHROOT_VERSION" "$CHROOT_VERSION"
clean_first=true clean_first=true

View File

@@ -155,7 +155,7 @@ if (( ${#needsversioning[*]} )); then
if [[ ! -f "${file}" ]]; then if [[ ! -f "${file}" ]]; then
continue continue
fi fi
if ! git ls-files --error-unmatch "$file" >/dev/null; then if ! git ls-files --error-unmatch "$file"; then
die "%s is not under version control" "$file" die "%s is not under version control" "$file"
fi fi
done done

View File

@@ -191,9 +191,7 @@ path = [
".nvchecker.toml", ".nvchecker.toml",
"*.install", "*.install",
"*.sysusers", "*.sysusers",
"*sysusers.conf",
"*.tmpfiles", "*.tmpfiles",
"*tmpfiles.conf",
"*.logrotate", "*.logrotate",
"*.pam", "*.pam",
"*.service", "*.service",

View File

@@ -110,11 +110,6 @@ pkgctl_repo_configure() {
local path realpath pkgbase remote_url project_path hook local path realpath pkgbase remote_url project_path hook
local PACKAGER GPGKEY packager_name packager_email local PACKAGER GPGKEY packager_name packager_email
# Check if we're in a git repo
if ! git rev-parse --git-dir &>/dev/null; then
die "Not in a git repository"
fi
while (( $# )); do while (( $# )); do
case $1 in case $1 in
-h|--help) -h|--help)
@@ -155,8 +150,7 @@ pkgctl_repo_configure() {
# check if invoked without any path from within a packaging repo # check if invoked without any path from within a packaging repo
if (( ${#paths[@]} == 0 )); then if (( ${#paths[@]} == 0 )); then
if [[ -d .git ]] || git rev-parse --git-dir &>/dev/null; then if [[ -f PKGBUILD ]]; then
# We're in a git repository, so use current directory
paths=(".") paths=(".")
else else
pkgctl_repo_configure_usage pkgctl_repo_configure_usage
@@ -232,20 +226,11 @@ pkgctl_repo_configure() {
pushd "${path}" >/dev/null pushd "${path}" >/dev/null
# Check if this is a packaging repository
local is_packaging_repo=0
if [[ -f PKGBUILD ]]; then
is_packaging_repo=1
fi
# Configure remote only for packaging repositories
if (( is_packaging_repo )); then
project_path=$(gitlab_project_name_to_path "${pkgbase}") project_path=$(gitlab_project_name_to_path "${pkgbase}")
remote_url="${GIT_REPO_BASE_URL}/${project_path}.git" remote_url="${GIT_REPO_BASE_URL}/${project_path}.git"
if ! git remote add origin "${remote_url}" &>/dev/null; then if ! git remote add origin "${remote_url}" &>/dev/null; then
git remote set-url origin "${remote_url}" git remote set-url origin "${remote_url}"
fi fi
fi
# move the master branch to main # move the master branch to main
if [[ $(git symbolic-ref --quiet --short HEAD) == master ]]; then if [[ $(git symbolic-ref --quiet --short HEAD) == master ]]; then
@@ -254,7 +239,7 @@ pkgctl_repo_configure() {
fi fi
# configure spec version and variant to avoid using development hooks in production # configure spec version and variant to avoid using development hooks in production
git config devtools.version "${GIT_REPO_SPEC_VERSION:-1.0.0}" git config devtools.version "${GIT_REPO_SPEC_VERSION}"
if [[ ${_DEVTOOLS_LIBRARY_DIR} == /usr/share/devtools ]]; then if [[ ${_DEVTOOLS_LIBRARY_DIR} == /usr/share/devtools ]]; then
git config devtools.variant canonical git config devtools.variant canonical
else else
@@ -264,12 +249,8 @@ pkgctl_repo_configure() {
git config pull.rebase true git config pull.rebase true
git config branch.autoSetupRebase always git config branch.autoSetupRebase always
# Configure branch remote settings only for packaging repositories with remotes
if (( is_packaging_repo )) && git remote | grep -q "^origin$"; then
git config branch.main.remote origin git config branch.main.remote origin
git config branch.main.rebase true git config branch.main.rebase true
fi
git config transfer.fsckobjects true git config transfer.fsckobjects true
git config fetch.fsckobjects true git config fetch.fsckobjects true

View File

@@ -1,71 +0,0 @@
#!/usr/bin/env bats
bats_require_minimum_version 1.5.0
# Load bats libraries
load "/usr/lib/bats/bats-support/load.bash"
load "/usr/lib/bats/bats-assert/load.bash"
export _DEVTOOLS_LIBRARY_DIR="${PWD}/src"
_pkgctl_repo_configure() {
source "${_DEVTOOLS_LIBRARY_DIR}"/lib/repo/configure.sh
pkgctl_repo_configure "$@"
}
@test "repo-configure-valid-packaging" {
local tmpdir
tmpdir=$(mktemp -dt devtools.test.repo-configure.XXXXXX)
pushd "${tmpdir}"
git init
git remote add origin "https://gitlab.archlinux.org/archlinux/packaging/packages/devtools.git"
run _pkgctl_repo_configure
assert_success
popd
rm -rf "${tmpdir}"
}
@test "repo-configure-non-packaging" {
local tmpdir
tmpdir=$(mktemp -dt devtools.test.repo-configure.XXXXXX)
pushd "${tmpdir}"
git init
git remote add origin "https://gitlab.com/kicad/libraries/kicad-packages3D.git"
run _pkgctl_repo_configure
assert_success
popd
rm -rf "${tmpdir}"
}
@test "repo-configure-non-arch" {
local tmpdir
tmpdir=$(mktemp -dt devtools.test.repo-configure.XXXXXX)
pushd "${tmpdir}"
git init
git remote add origin "https://github.com/torvalds/linux.git"
run _pkgctl_repo_configure
assert_success
popd
rm -rf "${tmpdir}"
}
@test "repo-configure-no-git" {
local tmpdir
tmpdir=$(mktemp -dt devtools.test.repo-configure.XXXXXX)
pushd "${tmpdir}"
run ! _pkgctl_repo_configure
assert_failure
assert_output --partial "Not in a git repository"
popd
rm -rf "${tmpdir}"
}
@test "repo-configure-local-git" {
local tmpdir
tmpdir=$(mktemp -dt devtools.test.repo-configure.XXXXXX)
pushd "${tmpdir}"
git init
run _pkgctl_repo_configure
assert_success
popd
rm -rf "${tmpdir}"
}