diff options
| -rw-r--r-- | .gitlab-ci.yml | 6 | ||||
| -rw-r--r-- | README.md | 5 | ||||
| -rw-r--r-- | docker/dockerfile | 12 | ||||
| -rwxr-xr-x | docker/onekey.sh | 9 | ||||
| -rwxr-xr-x | utils/aur/aur-check-update.py (renamed from utils/aur-check-update.py) | 0 | ||||
| -rwxr-xr-x | utils/aur/check-aur.py (renamed from utils/check-aur.py) | 0 | ||||
| -rwxr-xr-x | utils/ci-upload.sh (renamed from ci-upload.sh) | 5 | ||||
| -rwxr-xr-x | utils/deploy.sh (renamed from deploy.sh) | 0 | ||||
| -rwxr-xr-x | utils/pkgbuild.sh (renamed from pkgbuild.sh) | 13 | ||||
| -rwxr-xr-x | utils/repodb.sh (renamed from repodb.sh) | 0 |
10 files changed, 37 insertions, 13 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 870262f..1086eea 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -39,7 +39,7 @@ build: #- cd /home/build/$CI_PROJECT_TITLE - chown -R build:build ../$CI_PROJECT_TITLE - su -c 'echo $GPG_PRIV_KEY | base64 -d | gpg --import' build - - su -c './pkgbuild.sh' build + - su -c './utils/pkgbuild.sh' build - rm -rf build/ # only push to master master trigger push @@ -49,11 +49,9 @@ post: rules: - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH changes: - - .gitlab-ci.yml - - pkgbuild.sh - repo/**/* - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_COMMIT_TITLE =~ /REBUILD/ script: - if [ -n "$TARGET_HOSTS" ]; then echo "$TARGET_HOSTS" | base64 -d >> /etc/hosts; fi; - - bash -c './ci-upload.sh' + - bash -c './utils/ci-upload.sh' @@ -21,7 +21,10 @@ sudo pacman-key --lsign-key 4A0F0C8BC709ACA4341767FB243975C8DB9656B9 ### For developers: -Use commit message starts with `fix(repo)` will let CI/CD rebuild all packages. +Use commit message starts with `fix(repo)` will let CI/CD rebuild all packages, or you can use `REBUILD`/`REBUILD_ALL` in commit title. +`REBUILD_ALL` will ignore [verified_packages](repo/.verified_repos). + +You need to open a pull request for every add package request. ## License diff --git a/docker/dockerfile b/docker/dockerfile index 26b7e49..879f1d4 100644 --- a/docker/dockerfile +++ b/docker/dockerfile @@ -1,12 +1,18 @@ FROM repobuildbase:latest -RUN echo -e '\n[archlinuxcn]\nServer = https://repo.archlinuxcn.org/$arch\n' >> /etc/pacman.conf +ARG REMOTE_ADDRESS + +RUN echo -e '\n[kunoisayami]\nServer = ${REMOTE_ADDRESS}\n' >> /etc/pacman.conf RUN pacman-key --init -RUN pacman --noconfirm --needed -Sy archlinuxcn-keyring +RUN curl -fL https://keys.openpgp.org/vks/v1/by-fingerprint/4A0F0C8BC709ACA4341767FB243975C8DB9656B9 | pacman-key --add - + +RUN pacman-key --finger 4A0F0C8BC709ACA4341767FB243975C8DB9656B9 + +RUN pacman-key --lsign-key 4A0F0C8BC709ACA4341767FB243975C8DB9656B9 -RUN pacman --noconfirm --needed -Su base-devel gnupg git yay +RUN pacman --noconfirm --needed -Syu base-devel gnupg git yay RUN useradd -m build diff --git a/docker/onekey.sh b/docker/onekey.sh index f27153a..99384db 100755 --- a/docker/onekey.sh +++ b/docker/onekey.sh @@ -3,7 +3,12 @@ # end up when failed set -Eeuo pipefail -pushd "$(uname -m)" || ( echo "Can't find your architecture" && exit 0 ) +if [ $# -eq 0 ] && [ -z "$1" ]; then + echo "Please specify REMOTE SERVER ADDRESS" + exit 1 +fi + +pushd "$(uname -m)" || ( echo "Can't find your architecture" && exit 1 ) docker build . -t repobuildbase popd -docker build . -t repobuild +docker build --build-arg "REMOTE_ADDRESS=$1" . -t repobuild diff --git a/utils/aur-check-update.py b/utils/aur/aur-check-update.py index 3188aea..3188aea 100755 --- a/utils/aur-check-update.py +++ b/utils/aur/aur-check-update.py diff --git a/utils/check-aur.py b/utils/aur/check-aur.py index 6749f69..6749f69 100755 --- a/utils/check-aur.py +++ b/utils/aur/check-aur.py diff --git a/ci-upload.sh b/utils/ci-upload.sh index 307912e..69f19cd 100755 --- a/ci-upload.sh +++ b/utils/ci-upload.sh @@ -14,6 +14,11 @@ cleanup() { ARCH=$(uname -m) PKGDEST="${PWD}/packages/$ARCH" +if [ $(find $PKGDEST -name \*.pkg\* | wc -l) -eq 0 ]; then + echo -e "\033[0;31mCould not find any packaged packages, skip upload\033[0m" + exit 0 +fi + curl -d "token=$UPLOAD_TOKEN&action=REQUIRE_CLEAN&arch=$ARCH" -fsSL "$REMOTE_PATH" pushd $PKGDEST diff --git a/deploy.sh b/utils/deploy.sh index 462cfdf..462cfdf 100755 --- a/deploy.sh +++ b/utils/deploy.sh diff --git a/pkgbuild.sh b/utils/pkgbuild.sh index 7be46ab..86965dd 100755 --- a/pkgbuild.sh +++ b/utils/pkgbuild.sh @@ -7,6 +7,7 @@ set -Eeuo pipefail trap cleanup SIGINT SIGTERM ERR EXIT cleanup() { trap - SIGINT SIGTERM ERR EXIT + unset SIGNING_ARG unset UNSUCCESSFUL unset SKIP_VERIFIED unset FOLDER_NAME @@ -40,6 +41,7 @@ CONFDEST="${PWD}/makepkg.d/makepkg.$ARCH.conf" REPO_DIFF="${PWD}/packages/$ARCH/DIFF" SKIP_VERIFIED=1 UNSUCCESSFUL=0 +SIGNING_ARG="" TMPCONF=$(mktemp -t makepkg.$ARCH.conf.XXXXXXXXXX) || exit 1 cat "${PWD}/makepkg.d/makepkg.base.conf" > "$TMPCONF" @@ -77,7 +79,12 @@ if [ $# -gt 0 ] && [ "$1" = "--all" ] || [ -n "$CI_COMMIT_TITLE" ] && [[ $CI_COM ls $PKGBUILD_DIRECTORY_BASE > "$REPO_DIFF" else get_diff_list - echo "Next" +fi + +if [ -n "$CI_DEFAULT_BRANCH" ] && [ -n "$CI_DEFAULT_BRANCH" ] && [[ "$CI_COMMIT_BRANCH" == "$CI_DEFAULT_BRANCH" ]]; then + SIGNING_ARG="-s" +else + echo -e "\033[0;32mSkip signing package\033[0m" fi pushd $PKGBUILD_DIRECTORY_BASE || ( echo -e "\033[0;31mError, can't switch to pkgbuild directory\033[0m" && exit 1 ) @@ -112,7 +119,7 @@ while read -r FOLDER_NAME ; do if [ -d "../$YAYDEP" ]; then pushd "../$YAYDEP" hook "$YAYDEP" - SRCPKGDEST=$SRCDEST SRCDEST=$SRCDEST PKGDEST=$PKGDEST MAKEPKG_CONF="$TMPCONF" makepkg --clean -si --asdeps --noconfirm --needed --noprogressbar + SRCPKGDEST=$SRCDEST SRCDEST=$SRCDEST PKGDEST=$PKGDEST MAKEPKG_CONF="$TMPCONF" makepkg --clean -i $SIGNING_ARG --asdeps --noconfirm --needed --noprogressbar popd else yay -S --noconfirm --needed --asdeps "$YAYDEP" @@ -127,7 +134,7 @@ while read -r FOLDER_NAME ; do | awk 'BEGIN { FS = "\n" } ; { print $1":6:" } ' | gpg --import-ownertrust fi - SRCPKGDEST=$SRCDEST SRCDEST=$SRCDEST PKGDEST=$PKGDEST MAKEPKG_CONF="$TMPCONF" makepkg --clean -s --asdeps --noconfirm --needed --noprogressbar || { echo -e "\033[0;31mSkip folder $FOLDER_NAME\033[0m"; UNSUCCESSFUL=1; } + SRCPKGDEST=$SRCDEST SRCDEST=$SRCDEST PKGDEST=$PKGDEST MAKEPKG_CONF="$TMPCONF" makepkg --clean $SIGNING_ARG --asdeps --noconfirm --needed --noprogressbar || { echo -e "\033[0;31mSkip folder $FOLDER_NAME\033[0m"; UNSUCCESSFUL=1; } popd done < "$REPO_DIFF" diff --git a/repodb.sh b/utils/repodb.sh index 212b137..212b137 100755 --- a/repodb.sh +++ b/utils/repodb.sh |
