refactor package directory, enhance build script
All checks were successful
ci/woodpecker/push/build Pipeline was successful
All checks were successful
ci/woodpecker/push/build Pipeline was successful
- update makedeb - use bin, git, normal, leafee98 to classify packages - only build package from leafee98 and bin in ci - add script to build all packages locally - add more log about running hook in build.sh
This commit is contained in:
parent
c6a80b741b
commit
82734470d2
6
.gitignore
vendored
6
.gitignore
vendored
|
@ -1,8 +1,8 @@
|
||||||
/secrets.env
|
/secrets.env
|
||||||
|
|
||||||
/packages/*/*
|
/packages/*/*/*
|
||||||
!/packages/*/DEBBUILD
|
!/packages/*/*/DEBBUILD
|
||||||
!/packages/*/materials
|
!/packages/*/*/materials
|
||||||
|
|
||||||
!/script/*
|
!/script/*
|
||||||
!/makedeb
|
!/makedeb
|
||||||
|
|
|
@ -2,28 +2,25 @@ steps:
|
||||||
- name: build_all
|
- name: build_all
|
||||||
image: debian-pack:0.4
|
image: debian-pack:0.4
|
||||||
secrets:
|
secrets:
|
||||||
- WEBDAV_USER
|
|
||||||
- WEBDAV_PASS
|
- WEBDAV_PASS
|
||||||
- WEBDAV_HOST
|
- WEBDAV_USER
|
||||||
- WEBDAV_REPOPATH
|
environment:
|
||||||
|
- WEBDAV_UPLOAD_TARGET=https://dufs.leafee98.com/apt/income
|
||||||
|
- APT_BASE=https://dufs.leafee98.com/apt
|
||||||
commands:
|
commands:
|
||||||
- rm -f /tmp/apt-file-exists-cache.json
|
- rm -f /tmp/apt-file-exists-cache.json
|
||||||
- hook_str="$(realpath ./script/package_exists.py)
|
- ./script/build.sh
|
||||||
|
--makedeb-path makedeb/makedeb
|
||||||
|
--package-exists-hook "
|
||||||
|
$(realpath ./script/package_exists.py)
|
||||||
--filename {}
|
--filename {}
|
||||||
--cache-file /tmp/apt-file-exists-cache.json
|
--cache-file /tmp/apt-file-exists-cache.json
|
||||||
--package-arch amd64
|
--package-arch amd64
|
||||||
--apt-base https://dufs.leafee98.com/apt/"
|
--apt-base $APT_BASE
|
||||||
- ./script/build_all.sh
|
"
|
||||||
--makedeb-path makedeb/makedeb
|
--upload-to-webdav "$WEBDAV_UPLOAD_TARGET"
|
||||||
--package-exists-hook "$hook_str"
|
|
||||||
--upload-to-webdav "https://dufs.leafee98.com/apt/income"
|
|
||||||
--webdav-user "$WEBDAV_USER"
|
--webdav-user "$WEBDAV_USER"
|
||||||
--webdav-pass "$WEBDAV_PASS"
|
--webdav-pass "$WEBDAV_PASS"
|
||||||
--package packages/apt-repo-updater
|
--package-dir packages/bin
|
||||||
--package packages/dufs-bin
|
--package-dir packages/leafee98
|
||||||
--package packages/filebrowser-bin
|
|
||||||
--package packages/forgejo-bin
|
|
||||||
--package packages/neovim-bin
|
|
||||||
--package packages/plik-bin
|
|
||||||
--package packages/static-deployer-git
|
|
||||||
|
|
||||||
|
|
2
makedeb
2
makedeb
|
@ -1 +1 @@
|
||||||
Subproject commit 3065562dab1aa1fffc8e0fe3b8885acc93e3c9ad
|
Subproject commit 9aedecc62e9585ba1d9b88efe083b52105e0947f
|
|
@ -14,8 +14,9 @@ function msg_warn {
|
||||||
|
|
||||||
function usage {
|
function usage {
|
||||||
echo "$_PROGRAM_NAME:"
|
echo "$_PROGRAM_NAME:"
|
||||||
echo " --package <dir-name> add a dir to build, allow use it multi times"
|
echo " --package <dir-name> add a dir to build, can use multi times"
|
||||||
echo " --package-dir <dir> all dir in this directory is a package"
|
echo " --package-dir <dir> all dir in this directory is a package,"
|
||||||
|
echo " can use multi times"
|
||||||
echo " --makedeb-path <path> specify the path of makedeb"
|
echo " --makedeb-path <path> specify the path of makedeb"
|
||||||
echo " --upload-to-webdav https://webdav_host/path/dir"
|
echo " --upload-to-webdav https://webdav_host/path/dir"
|
||||||
echo " upload built file to a webdav server"
|
echo " upload built file to a webdav server"
|
||||||
|
@ -46,8 +47,13 @@ function run_hook {
|
||||||
local exe_str="$1"
|
local exe_str="$1"
|
||||||
local place_holder="$2"
|
local place_holder="$2"
|
||||||
local package_name="$3"
|
local package_name="$3"
|
||||||
|
local log_exe_str="${4-}"
|
||||||
|
|
||||||
local final_exe_str="${exe_str/$place_holder/$package_name}"
|
local final_exe_str="${exe_str/$place_holder/$package_name}"
|
||||||
echo $final_exe_str
|
|
||||||
|
if [[ -n "${log_exe_str}" ]] ; then
|
||||||
|
msg_info "Running: $final_exe_str"
|
||||||
|
fi
|
||||||
|
|
||||||
$final_exe_str
|
$final_exe_str
|
||||||
}
|
}
|
||||||
|
@ -77,7 +83,12 @@ while (( "$#" >= 1 )); do
|
||||||
--upload-to-webdav) UPLOAD_TO_WEBDAV="$2" ; shift ;;
|
--upload-to-webdav) UPLOAD_TO_WEBDAV="$2" ; shift ;;
|
||||||
--webdav-user) WEBDAV_USER="$2" ; shift ;;
|
--webdav-user) WEBDAV_USER="$2" ; shift ;;
|
||||||
--webdav-pass) WEBDAV_PASS="$2" ; shift ;;
|
--webdav-pass) WEBDAV_PASS="$2" ; shift ;;
|
||||||
--package-exists-hook) PACKAGE_EXISTS_HOOK="$2" ; shift ;;
|
--package-exists-hook)
|
||||||
|
PACKAGE_EXISTS_HOOK="$2"
|
||||||
|
# strip white space, see https://stackoverflow.com/a/3352015
|
||||||
|
PACKAGE_EXISTS_HOOK="${PACKAGE_EXISTS_HOOK#"${PACKAGE_EXISTS_HOOK%%[![:space:]]*}"}"
|
||||||
|
PACKAGE_EXISTS_HOOK="${PACKAGE_EXISTS_HOOK%"${PACKAGE_EXISTS_HOOK##*[![:space:]]}"}"
|
||||||
|
shift ;;
|
||||||
--)
|
--)
|
||||||
shift
|
shift
|
||||||
MAKEDEB_ARGS=("$@")
|
MAKEDEB_ARGS=("$@")
|
||||||
|
@ -114,6 +125,10 @@ if [[ "${#_PACKGES_TO_BUILD[@]}" -eq 0 ]] ; then
|
||||||
msg_info "No package to build, exiting..."
|
msg_info "No package to build, exiting..."
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [[ -n "$PACKAGE_EXISTS_HOOK" ]] ; then
|
||||||
|
msg_info "hook for checking if package exists: $PACKAGE_EXISTS_HOOK"
|
||||||
|
fi
|
||||||
|
|
||||||
for package in "${_PACKGES_TO_BUILD[@]}" ; do
|
for package in "${_PACKGES_TO_BUILD[@]}" ; do
|
||||||
(
|
(
|
||||||
msg_info "$_DELIMITER"
|
msg_info "$_DELIMITER"
|
||||||
|
@ -130,7 +145,8 @@ for package in "${_PACKGES_TO_BUILD[@]}" ; do
|
||||||
|
|
||||||
if [[ -n "${PACKAGE_EXISTS_HOOK}" ]] ; then
|
if [[ -n "${PACKAGE_EXISTS_HOOK}" ]] ; then
|
||||||
ret=0
|
ret=0
|
||||||
run_hook "$PACKAGE_EXISTS_HOOK" "{}" "$package_name" || ret="$?"
|
msg_info "Checking if package $package_name exists..."
|
||||||
|
run_hook "$PACKAGE_EXISTS_HOOK" "{}" "$package_name" log_exe_str || ret="$?"
|
||||||
|
|
||||||
if [[ $ret -eq 0 ]] ; then
|
if [[ $ret -eq 0 ]] ; then
|
||||||
msg_info "Package ${package_name} already built, skip"
|
msg_info "Package ${package_name} already built, skip"
|
||||||
|
@ -138,6 +154,8 @@ for package in "${_PACKGES_TO_BUILD[@]}" ; do
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
msg_info "Start building..."
|
||||||
|
|
||||||
"$MAKEDEB_PATH" --noextract "${MAKEDEB_ARGS[@]}" && ret=$? || ret=$?
|
"$MAKEDEB_PATH" --noextract "${MAKEDEB_ARGS[@]}" && ret=$? || ret=$?
|
||||||
if [[ $ret -ne 0 ]] ; then
|
if [[ $ret -ne 0 ]] ; then
|
||||||
msg_warn "Error occurred when running makedeb, skip this package"
|
msg_warn "Error occurred when running makedeb, skip this package"
|
24
script/local_build.sh
Executable file
24
script/local_build.sh
Executable file
|
@ -0,0 +1,24 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
WEBDAV_UPLOAD_TARGET=https://dufs.leafee98.com/apt/income
|
||||||
|
APT_BASE=https://dufs.leafee98.com/apt
|
||||||
|
|
||||||
|
./script/build.sh \
|
||||||
|
--makedeb-path makedeb/makedeb \
|
||||||
|
--package-exists-hook "
|
||||||
|
$(realpath ./script/package_exists.py)
|
||||||
|
--filename {}
|
||||||
|
--cache-file /tmp/apt-file-exists-cache.json
|
||||||
|
--package-arch amd64
|
||||||
|
--apt-base $APT_BASE \
|
||||||
|
"\
|
||||||
|
--package-dir packages/bin \
|
||||||
|
--package-dir packages/leafee98 \
|
||||||
|
--package-dir packages/git \
|
||||||
|
--package-dir packages/normal \
|
||||||
|
-- \
|
||||||
|
-f
|
||||||
|
# --upload-to-webdav "$WEBDAV_UPLOAD_TARGET" \
|
||||||
|
# --webdav-user "$WEBDAV_USER" \
|
||||||
|
# --webdav-pass "$WEBDAV_PASS" \
|
||||||
|
|
Loading…
Reference in a new issue