mirror of
https://gitlab.archlinux.org/archlinux/devtools.git
synced 2025-09-13 01:46:19 +02:00
Compare commits
3 Commits
fedc192811
...
33a9d63e7c
Author | SHA1 | Date | |
---|---|---|---|
![]() |
33a9d63e7c | ||
![]() |
3f0ebbc6d2 | ||
![]() |
d9ac6029d9 |
@@ -24,7 +24,7 @@ test:
|
||||
stage: test
|
||||
needs: []
|
||||
script:
|
||||
- pacman -Syu --noconfirm m4 make openssh subversion rsync arch-install-scripts git bzr mercurial diffutils coreutils asciidoctor shellcheck nvchecker bats
|
||||
- pacman -Syu --noconfirm m4 make openssh subversion rsync arch-install-scripts git bzr mercurial diffutils coreutils asciidoctor shellcheck nvchecker bats bats-assert bats-support
|
||||
- make test BATS_EXTRA_ARGS='--formatter junit'
|
||||
artifacts:
|
||||
reports:
|
||||
@@ -34,7 +34,7 @@ coverage:
|
||||
stage: test
|
||||
needs: []
|
||||
script:
|
||||
- pacman -Syu --noconfirm m4 make openssh subversion rsync arch-install-scripts git bzr mercurial diffutils coreutils asciidoctor shellcheck nvchecker bats kcov jq
|
||||
- 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
|
||||
- make coverage
|
||||
coverage: '/Percent covered\s+\d+\.\d+/'
|
||||
artifacts:
|
||||
|
@@ -188,6 +188,7 @@ path = [
|
||||
"README.md",
|
||||
"keys/**",
|
||||
".SRCINFO",
|
||||
".gitignore",
|
||||
".nvchecker.toml",
|
||||
"*.install",
|
||||
"*.sysusers",
|
||||
|
@@ -110,6 +110,11 @@ pkgctl_repo_configure() {
|
||||
local path realpath pkgbase remote_url project_path hook
|
||||
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
|
||||
case $1 in
|
||||
-h|--help)
|
||||
@@ -150,7 +155,8 @@ pkgctl_repo_configure() {
|
||||
|
||||
# check if invoked without any path from within a packaging repo
|
||||
if (( ${#paths[@]} == 0 )); then
|
||||
if [[ -f PKGBUILD ]]; then
|
||||
if [[ -d .git ]] || git rev-parse --git-dir &>/dev/null; then
|
||||
# We're in a git repository, so use current directory
|
||||
paths=(".")
|
||||
else
|
||||
pkgctl_repo_configure_usage
|
||||
@@ -226,11 +232,20 @@ pkgctl_repo_configure() {
|
||||
|
||||
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}")
|
||||
remote_url="${GIT_REPO_BASE_URL}/${project_path}.git"
|
||||
if ! git remote add origin "${remote_url}" &>/dev/null; then
|
||||
git remote set-url origin "${remote_url}"
|
||||
fi
|
||||
fi
|
||||
|
||||
# move the master branch to main
|
||||
if [[ $(git symbolic-ref --quiet --short HEAD) == master ]]; then
|
||||
@@ -239,7 +254,7 @@ pkgctl_repo_configure() {
|
||||
fi
|
||||
|
||||
# configure spec version and variant to avoid using development hooks in production
|
||||
git config devtools.version "${GIT_REPO_SPEC_VERSION}"
|
||||
git config devtools.version "${GIT_REPO_SPEC_VERSION:-1.0.0}"
|
||||
if [[ ${_DEVTOOLS_LIBRARY_DIR} == /usr/share/devtools ]]; then
|
||||
git config devtools.variant canonical
|
||||
else
|
||||
@@ -249,8 +264,12 @@ pkgctl_repo_configure() {
|
||||
|
||||
git config pull.rebase true
|
||||
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.rebase true
|
||||
fi
|
||||
|
||||
git config transfer.fsckobjects true
|
||||
git config fetch.fsckobjects true
|
||||
|
71
test/case/repo-configure.bats
Normal file
71
test/case/repo-configure.bats
Normal file
@@ -0,0 +1,71 @@
|
||||
#!/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}"
|
||||
}
|
Reference in New Issue
Block a user