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
|
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
|
- 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'
|
- 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 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
|
- make coverage
|
||||||
coverage: '/Percent covered\s+\d+\.\d+/'
|
coverage: '/Percent covered\s+\d+\.\d+/'
|
||||||
artifacts:
|
artifacts:
|
||||||
|
@@ -188,6 +188,7 @@ path = [
|
|||||||
"README.md",
|
"README.md",
|
||||||
"keys/**",
|
"keys/**",
|
||||||
".SRCINFO",
|
".SRCINFO",
|
||||||
|
".gitignore",
|
||||||
".nvchecker.toml",
|
".nvchecker.toml",
|
||||||
"*.install",
|
"*.install",
|
||||||
"*.sysusers",
|
"*.sysusers",
|
||||||
|
@@ -109,6 +109,11 @@ pkgctl_repo_configure() {
|
|||||||
local -r command=${_DEVTOOLS_COMMAND:-${BASH_SOURCE[0]##*/}}
|
local -r command=${_DEVTOOLS_COMMAND:-${BASH_SOURCE[0]##*/}}
|
||||||
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
|
||||||
@@ -150,7 +155,8 @@ 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 [[ -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=(".")
|
paths=(".")
|
||||||
else
|
else
|
||||||
pkgctl_repo_configure_usage
|
pkgctl_repo_configure_usage
|
||||||
@@ -226,10 +232,19 @@ pkgctl_repo_configure() {
|
|||||||
|
|
||||||
pushd "${path}" >/dev/null
|
pushd "${path}" >/dev/null
|
||||||
|
|
||||||
project_path=$(gitlab_project_name_to_path "${pkgbase}")
|
# Check if this is a packaging repository
|
||||||
remote_url="${GIT_REPO_BASE_URL}/${project_path}.git"
|
local is_packaging_repo=0
|
||||||
if ! git remote add origin "${remote_url}" &>/dev/null; then
|
if [[ -f PKGBUILD ]]; then
|
||||||
git remote set-url origin "${remote_url}"
|
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
|
fi
|
||||||
|
|
||||||
# move the master branch to main
|
# move the master branch to main
|
||||||
@@ -239,7 +254,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}"
|
git config devtools.version "${GIT_REPO_SPEC_VERSION:-1.0.0}"
|
||||||
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
|
||||||
@@ -249,8 +264,12 @@ pkgctl_repo_configure() {
|
|||||||
|
|
||||||
git config pull.rebase true
|
git config pull.rebase true
|
||||||
git config branch.autoSetupRebase always
|
git config branch.autoSetupRebase always
|
||||||
git config branch.main.remote origin
|
|
||||||
git config branch.main.rebase true
|
# 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 transfer.fsckobjects true
|
||||||
git config fetch.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