aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitlab-ci.yml9
-rwxr-xr-xdocker/dockerbuild.sh8
-rw-r--r--docker/dockerfile6
-rwxr-xr-xpkgbuild.sh35
-rwxr-xr-xrepo/.gpg_keys/linux-zen-x86-64-v32
-rw-r--r--repo/.yaydeps/obs-linuxbrowser-bin1
-rw-r--r--repo/.yaydeps/pam_ssh_agent_auth_patched1
7 files changed, 44 insertions, 18 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index de7e558..a9a922e 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -19,17 +19,16 @@ build:
- repo/**/*
script:
- - pacman --noconfirm --needed -Syu base-devel gnupg git
+ - echo -e "\n[archlinuxcn]\nServer = https://repo.archlinuxcn.org/$$arch\n" >> /etc/pacman.conf
+ - pacman --noconfirm --needed -Syu archlinuxcn-keyring base-devel gnupg git yay
- git submodule update --init
- useradd -m build
- echo 'build ALL=(ALL) NOPASSWD:ALL' > /etc/sudoers
#- cp -r ../$CI_PROJECT_TITLE /home/build/
#- cd /home/build/$CI_PROJECT_TITLE
- - chown -R build:build ../$CI_PROJECT_TITLE
- - su -c "bash -c 'cd repo/pod2man && makepkg -si --noconfirm'" build
- - su -c "bash -c 'cd repo/gconf && makepkg -si --noconfirm'" build
+ - chown -R build:build ../$CI_PROJECT_TITLE
- su -c 'echo $GPG_PRIV_KEY | base64 -d | gpg --import' build
- - su -c 'BUILD_ONLY='' ./pkgbuild.sh' build
+ - su -c './pkgbuild.sh' build
- rm -rf build/
# only push to master master trigger push
diff --git a/docker/dockerbuild.sh b/docker/dockerbuild.sh
index 5ae4880..ec933f5 100755
--- a/docker/dockerbuild.sh
+++ b/docker/dockerbuild.sh
@@ -5,16 +5,23 @@ set -Eeuo pipefail
cd /home/build
git clone --depth=3 https://github.com/kunoisayami/repos
+pushd repos
+git submodule update --init
+popd
+
if [ $UID -eq 0 ]; then
chown -R build:build repos
+
echo "$TARGET_HOSTS" | base64 -d >> /etc/hosts
else
+ echo -e "\n[archlinuxcn]\nServer = https://repo.archlinuxcn.org/$$arch\n" | sudo tee -a /etc/pacman.conf
echo "$TARGET_HOSTS" | base64 -d | sudo tee -a /etc/hosts >/dev/null
fi
pushd repos
if [ $UID -eq 0 ]; then
+
su -c "echo $GPG_PRIV_KEY | base64 -d | gpg --import" build
pushd repo/pod2man
@@ -24,6 +31,7 @@ if [ $UID -eq 0 ]; then
su -c 'BUILD_ONLY="" ./pkgbuild.sh' build
su -e -c './ci-upload.sh' build
+
else
echo $GPG_PRIV_KEY | base64 -d | gpg --import
diff --git a/docker/dockerfile b/docker/dockerfile
index 4ae53aa..f831a36 100644
--- a/docker/dockerfile
+++ b/docker/dockerfile
@@ -1,6 +1,10 @@
FROM repobuildbase:latest
-RUN pacman --noconfirm --needed -Syu base-devel gnupg git
+RUN echo -e "\n[archlinuxcn]\nServer = https://repo.archlinuxcn.org/$$arch\n" >> /etc/pacman.conf
+
+RUN pacman --noconfirm --needed -Sy archlinuxcn-keyring
+
+RUN pacman --noconfirm --needed -Su base-devel gnupg git yay
RUN useradd -m build
diff --git a/pkgbuild.sh b/pkgbuild.sh
index c7c3888..be9bd79 100755
--- a/pkgbuild.sh
+++ b/pkgbuild.sh
@@ -7,13 +7,12 @@ set -Eeuo pipefail
trap cleanup SIGINT SIGTERM ERR EXIT
cleanup() {
trap - SIGINT SIGTERM ERR EXIT
- unset PACKAGE_NAME
+ unset FOLDER_NAME
unset PKGDEST
unset SRCDEST
unset CONFDEST
unset REPO_DEST
rm -f "$TMPCONF"
- rm -f "$REPO_PENDING"
rm -f "$REPO_DIFF"
unset TMPCONF
unset REPO_PENDING
@@ -27,7 +26,6 @@ PKGBUILD_DIRECTORY_BASE="repo"
PKGDEST="${PWD}/packages/$ARCH"
SRCDEST="${PWD}/build"
CONFDEST="${PWD}/makepkg.d/makepkg.$ARCH.conf"
-REPO_PENDING="${PWD}/packages/$ARCH/PENDING"
REPO_DIFF="${PWD}/packages/$ARCH/DIFF"
TMPCONF=$(mktemp -t makepkg.$ARCH.conf.XXXXXXXXXX) || exit 1
@@ -35,7 +33,6 @@ cat "${PWD}/makepkg.d/makepkg.base.conf" > "$TMPCONF"
cat "$CONFDEST" >> "$TMPCONF"
touch "$REPO_DIFF"
-touch "$REPO_PENDING"
function get_diff_list {
git diff --name-only HEAD^ | while read line; do
@@ -61,24 +58,38 @@ fi
pushd $PKGBUILD_DIRECTORY_BASE || ( echo "Error, can't switch to pkgbuild directory" && exit 1 )
-while read PACKAGE_NAME ; do
- #PACKAGE_NAME=$(printf $folder | sed 's/.$//')
- pushd "$PACKAGE_NAME" || continue
+while read FOLDER_NAME ; do
+ pushd "$FOLDER_NAME" || continue
+ # Check PKGBUILD architecture
if ! ( pcregrep -M 'arch=\([^\)]*\)' PKGBUILD | grep -E "$ARCH|any" >/dev/null ); then
popd
continue
fi
- SRCPKGDEST=$SRCDEST SRCDEST=$SRCDEST PKGDEST=$PKGDEST MAKEPKG_CONF="$TMPCONF" makepkg --clean -s --asdeps --noconfirm --needed --noprogressbar
- echo "$PACKAGE_NAME" >> "$REPO_PENDING"
+
+ if [ -r ../.yaydeps/"$FOLDER_NAME" ]; then
+ while read YAYDEP ; do
+ if [ -d "../$YAYDEP" ]; then
+ pushd "../$YAYDEP"
+ SRCPKGDEST=$SRCDEST SRCDEST=$SRCDEST PKGDEST=$PKGDEST MAKEPKG_CONF="$TMPCONF" makepkg --clean -si --asdeps --noconfirm --needed --noprogressbar
+ popd
+ else
+ yay -S --noconfirm --needed --asdeps "$YAYDEP"
+ fi
+ done < ../.yaydeps/"$FOLDER_NAME"
+ fi
+
+ if [ -r ../.gpg_keys/"$FOLDER_NAME" ]; then
+ . ../.gpg_keys/"$FOLDER_NAME"
+ fi
+
+ SRCPKGDEST=$SRCDEST SRCDEST=$SRCDEST PKGDEST=$PKGDEST MAKEPKG_CONF="$TMPCONF" makepkg --clean -s --asdeps --noconfirm --needed --noprogressbar || echo "Skip $FOLDER_NAME"
popd
done < "$REPO_DIFF"
popd
if [ -z "${BUILD_ONLY+x}" ]; then
- ./repodb.sh < "$REPO_PENDING"
-else
- echo "Add package to database is skipped"
+ echo "This option is depreacted, this script isn't process repository database now"
fi
date +%s > "$PKGDEST/LASTBUILD"
diff --git a/repo/.gpg_keys/linux-zen-x86-64-v3 b/repo/.gpg_keys/linux-zen-x86-64-v3
new file mode 100755
index 0000000..f3cd26a
--- /dev/null
+++ b/repo/.gpg_keys/linux-zen-x86-64-v3
@@ -0,0 +1,2 @@
+#!/bin/bash
+gpg --recv-keys --keyserver pgp.mit.edu 3B94A80E50A477C7 \ No newline at end of file
diff --git a/repo/.yaydeps/obs-linuxbrowser-bin b/repo/.yaydeps/obs-linuxbrowser-bin
new file mode 100644
index 0000000..d1b719d
--- /dev/null
+++ b/repo/.yaydeps/obs-linuxbrowser-bin
@@ -0,0 +1 @@
+gconf \ No newline at end of file
diff --git a/repo/.yaydeps/pam_ssh_agent_auth_patched b/repo/.yaydeps/pam_ssh_agent_auth_patched
new file mode 100644
index 0000000..b40da9a
--- /dev/null
+++ b/repo/.yaydeps/pam_ssh_agent_auth_patched
@@ -0,0 +1 @@
+pod2man \ No newline at end of file