gitlab-ci: migrate to persistent repo runner
This commit is contained in:
parent
483012e1fe
commit
6ed69b6ae5
4 changed files with 23 additions and 62 deletions
|
@ -50,7 +50,7 @@ lint:
|
||||||
sudo apk add alpine-sdk lua-aports doas gzip xz qemu-$CI_QEMU_TARGET_ARCH
|
sudo apk add alpine-sdk lua-aports doas gzip xz qemu-$CI_QEMU_TARGET_ARCH
|
||||||
doas addgroup $USER abuild
|
doas addgroup $USER abuild
|
||||||
export PATH="$PATH:$CI_PROJECT_DIR/.gitlab/bin"
|
export PATH="$PATH:$CI_PROJECT_DIR/.gitlab/bin"
|
||||||
build-rootfs.sh alpine$CI_MERGE_REQUEST_TARGET_BRANCH_NAME $CI_ALPINE_TARGET_ARCH --rootfsdir $HOME/sysroot-$CI_ALPINE_TARGET_ARCH
|
build-rootfs.sh alpine${CI_MERGE_REQUEST_TARGET_BRANCH_NAME/v} $CI_ALPINE_TARGET_ARCH --rootfsdir $HOME/sysroot-$CI_ALPINE_TARGET_ARCH
|
||||||
cp /etc/apk/repositories $HOME/sysroot-$CI_ALPINE_TARGET_ARCH/etc/apk/.
|
cp /etc/apk/repositories $HOME/sysroot-$CI_ALPINE_TARGET_ARCH/etc/apk/.
|
||||||
sudo -Eu $USER CHOST=$CI_TARGET_ALPINE_ARCH build.sh
|
sudo -Eu $USER CHOST=$CI_TARGET_ALPINE_ARCH build.sh
|
||||||
artifacts:
|
artifacts:
|
||||||
|
@ -86,4 +86,4 @@ push:
|
||||||
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
|
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
|
||||||
when: manual
|
when: manual
|
||||||
tags:
|
tags:
|
||||||
- apk-$CI_MERGE_REQUEST_TARGET_BRANCH_NAME
|
- repo
|
||||||
|
|
|
@ -39,9 +39,6 @@ __UbuntuPackages="build-essential"
|
||||||
|
|
||||||
__AlpinePackages="alpine-base"
|
__AlpinePackages="alpine-base"
|
||||||
__AlpinePackages+=" build-base"
|
__AlpinePackages+=" build-base"
|
||||||
__AlpinePackages+=" linux-headers"
|
|
||||||
__AlpinePackages+=" python3"
|
|
||||||
__AlpinePackages+=" libedit"
|
|
||||||
|
|
||||||
# symlinks fixer
|
# symlinks fixer
|
||||||
__UbuntuPackages+=" symlinks"
|
__UbuntuPackages+=" symlinks"
|
||||||
|
@ -52,24 +49,12 @@ __UbuntuPackages+=" liblttng-ust-dev"
|
||||||
__UbuntuPackages+=" libunwind8-dev"
|
__UbuntuPackages+=" libunwind8-dev"
|
||||||
__UbuntuPackages+=" libnuma-dev"
|
__UbuntuPackages+=" libnuma-dev"
|
||||||
|
|
||||||
__AlpinePackages+=" gettext-dev"
|
|
||||||
__AlpinePackages+=" icu-dev"
|
|
||||||
__AlpinePackages+=" libunwind-dev"
|
|
||||||
__AlpinePackages+=" lttng-ust-dev"
|
|
||||||
__AlpinePackages+=" compiler-rt"
|
|
||||||
__AlpinePackages+=" numactl-dev"
|
|
||||||
|
|
||||||
# runtime libraries' dependencies
|
# runtime libraries' dependencies
|
||||||
__UbuntuPackages+=" libcurl4-openssl-dev"
|
__UbuntuPackages+=" libcurl4-openssl-dev"
|
||||||
__UbuntuPackages+=" libkrb5-dev"
|
__UbuntuPackages+=" libkrb5-dev"
|
||||||
__UbuntuPackages+=" libssl-dev"
|
__UbuntuPackages+=" libssl-dev"
|
||||||
__UbuntuPackages+=" zlib1g-dev"
|
__UbuntuPackages+=" zlib1g-dev"
|
||||||
|
|
||||||
__AlpinePackages+=" curl-dev"
|
|
||||||
__AlpinePackages+=" krb5-dev"
|
|
||||||
__AlpinePackages+=" openssl-dev"
|
|
||||||
__AlpinePackages+=" zlib-dev"
|
|
||||||
|
|
||||||
__FreeBSDBase="12.3-RELEASE"
|
__FreeBSDBase="12.3-RELEASE"
|
||||||
__FreeBSDPkg="1.17.0"
|
__FreeBSDPkg="1.17.0"
|
||||||
__FreeBSDABI="12"
|
__FreeBSDABI="12"
|
||||||
|
@ -150,7 +135,6 @@ while :; do
|
||||||
riscv64)
|
riscv64)
|
||||||
__BuildArch=riscv64
|
__BuildArch=riscv64
|
||||||
__AlpineArch=riscv64
|
__AlpineArch=riscv64
|
||||||
__AlpinePackages="${__AlpinePackages// lldb-dev/}"
|
|
||||||
__QEMUArch=riscv64
|
__QEMUArch=riscv64
|
||||||
__UbuntuArch=riscv64
|
__UbuntuArch=riscv64
|
||||||
__UbuntuRepo="http://deb.debian.org/debian-ports"
|
__UbuntuRepo="http://deb.debian.org/debian-ports"
|
||||||
|
@ -348,39 +332,6 @@ while :; do
|
||||||
shift
|
shift
|
||||||
done
|
done
|
||||||
|
|
||||||
case "$__AlpineVersion" in
|
|
||||||
3.14) __AlpinePackages+=" llvm11-libs" ;;
|
|
||||||
3.15) __AlpinePackages+=" llvm12-libs" ;;
|
|
||||||
3.16) __AlpinePackages+=" llvm13-libs" ;;
|
|
||||||
3.17) __AlpinePackages+=" llvm15-libs" ;;
|
|
||||||
edge) __AlpineLlvmLibsLookup=1 ;;
|
|
||||||
*)
|
|
||||||
if [[ "$__AlpineArch" =~ s390x|ppc64le ]]; then
|
|
||||||
echo boo
|
|
||||||
__AlpineVersion=3.15 # minimum version that supports lldb-dev
|
|
||||||
__AlpinePackages+=" llvm12-libs"
|
|
||||||
elif [[ "$__AlpineArch" == "x86" ]]; then
|
|
||||||
__AlpineVersion=3.17 # minimum version that supports lldb-dev
|
|
||||||
__AlpinePackages+=" llvm15-libs"
|
|
||||||
elif [[ "$__AlpineArch" == "riscv64" ]]; then
|
|
||||||
__AlpineLlvmLibsLookup=1
|
|
||||||
__AlpineVersion=edge # minimum version with APKINDEX.tar.gz (packages archive)
|
|
||||||
else
|
|
||||||
__AlpineVersion=3.13 # 3.13 to maximize compatibility
|
|
||||||
__AlpinePackages+=" llvm10-libs"
|
|
||||||
|
|
||||||
if [[ "$__AlpineArch" == "armv7" ]]; then
|
|
||||||
__AlpinePackages="${__AlpinePackages//numactl-dev/}"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
esac
|
|
||||||
|
|
||||||
if [[ "$__AlpineVersion" =~ 3\.1[345] ]]; then
|
|
||||||
# compiler-rt--static was merged in compiler-rt package in alpine 3.16
|
|
||||||
# for older versions, we need compiler-rt--static, so replace the name
|
|
||||||
__AlpinePackages="${__AlpinePackages/compiler-rt/compiler-rt-static}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ "$__BuildArch" == "armel" ]]; then
|
if [[ "$__BuildArch" == "armel" ]]; then
|
||||||
__LLDB_Package="lldb-3.5-dev"
|
__LLDB_Package="lldb-3.5-dev"
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -81,7 +81,6 @@ build_aport() {
|
||||||
local repo="$1" aport="$2"
|
local repo="$1" aport="$2"
|
||||||
cd "$APORTSDIR/$repo/$aport"
|
cd "$APORTSDIR/$repo/$aport"
|
||||||
export CHOST=$CI_ALPINE_TARGET_ARCH
|
export CHOST=$CI_ALPINE_TARGET_ARCH
|
||||||
abuild deps | true
|
|
||||||
if abuild -r 2>&1 | report "build-$aport"; then
|
if abuild -r 2>&1 | report "build-$aport"; then
|
||||||
checkapk | report "checkapk-$aport" || true
|
checkapk | report "checkapk-$aport" || true
|
||||||
aport_ok="$aport_ok $repo/$aport"
|
aport_ok="$aport_ok $repo/$aport"
|
||||||
|
@ -110,7 +109,12 @@ set_repositories_for() {
|
||||||
[ "$repo" = "$target_repo" ] && break
|
[ "$repo" = "$target_repo" ] && break
|
||||||
done
|
done
|
||||||
doas sh -c "printf '%s\n' $repos >> /etc/apk/repositories"
|
doas sh -c "printf '%s\n' $repos >> /etc/apk/repositories"
|
||||||
doas apk update
|
doas apk update || true
|
||||||
|
if [ "$CI_ALPINE_TARGET_ARCH" != "$ARCH" ]; then
|
||||||
|
doas sh -c "printf '%s\n' $repos >> $HOME/sysroot-$CI_ALPINE_TARGET_ARCH/etc/apk/repositories"
|
||||||
|
doas cp -R /etc/apk/keys/* $HOME/sysroot-$CI_ALPINE_TARGET_ARCH/etc/apk/keys/.
|
||||||
|
doas apk --root=$HOME/sysroot-$CI_ALPINE_TARGET_ARCH update || true
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
apply_offset_limit() {
|
apply_offset_limit() {
|
||||||
|
|
|
@ -19,13 +19,19 @@ gitlab_key_to_rsa $SSH_KEY rsa-private $HOME/.ssh/id_rsa
|
||||||
chmod 700 "$HOME"/.ssh/id_rsa
|
chmod 700 "$HOME"/.ssh/id_rsa
|
||||||
chmod 700 "$HOME"/.abuild/$ABUILD_KEY_NAME.rsa
|
chmod 700 "$HOME"/.abuild/$ABUILD_KEY_NAME.rsa
|
||||||
|
|
||||||
echo "PACKAGER_PRIVKEY=$HOME/.abuild/$ABUILD_KEY_NAME.rsa" >> $HOME/.abuild/abuild.conf
|
echo "PACKAGER_PRIVKEY=$HOME/.abuild/$ABUILD_KEY_NAME.rsa" > $HOME/.abuild/abuild.conf
|
||||||
echo "REPODEST=$CI_PROJECT_DIR/repo-apk" >> $HOME/.abuild/abuild.conf
|
echo "REPODEST=$HOME/repo-apk" >> $HOME/.abuild/abuild.conf
|
||||||
doas cp $HOME/.abuild/$ABUILD_KEY_NAME.rsa.pub /etc/apk/keys/.
|
doas cp $HOME/.abuild/$ABUILD_KEY_NAME.rsa.pub /etc/apk/keys/.
|
||||||
|
|
||||||
git clone git@lab.ilot.io:ayakael/repo-apk -b $BASEBRANCH
|
if [ -d $HOME/repo-apk ]; then
|
||||||
|
git -C $HOME/repo-apk checkout $BASEBRANCH
|
||||||
|
git -C $HOME/repo-apk pull --rebase
|
||||||
|
else
|
||||||
|
git clone git@lab.ilot.io:ayakael/repo-apk -b $BASEBRANCH $HOME/repo-apk
|
||||||
|
fi
|
||||||
|
|
||||||
for i in $(find packages -type f -name "*.apk"); do
|
for i in $(find packages -type f -name "*.apk"); do
|
||||||
install -vDm644 $i ${i/packages/repo-apk}
|
install -vDm644 $i ${i/packages/$HOME\/repo-apk}
|
||||||
done
|
done
|
||||||
|
|
||||||
fetch_flags="-qn"
|
fetch_flags="-qn"
|
||||||
|
@ -33,17 +39,17 @@ git fetch $fetch_flags "$CI_MERGE_REQUEST_PROJECT_URL" \
|
||||||
"+refs/heads/$BASEBRANCH:refs/heads/$BASEBRANCH"
|
"+refs/heads/$BASEBRANCH:refs/heads/$BASEBRANCH"
|
||||||
|
|
||||||
for repo in $(changed_repos); do
|
for repo in $(changed_repos); do
|
||||||
rm $CI_PROJECT_DIR/repo-apk/$repo/*/APKINDEX.tar.gz | true
|
rm $HOME/repo-apk/$repo/*/APKINDEX.tar.gz | true
|
||||||
mkdir -p $repo/DUMMY
|
mkdir -p $repo/DUMMY
|
||||||
echo "pkgname=DUMMY" > $repo/DUMMY/APKBUILD
|
echo "pkgname=DUMMY" > $repo/DUMMY/APKBUILD
|
||||||
cd $repo/DUMMY
|
cd $repo/DUMMY
|
||||||
for i in $(find $CI_PROJECT_DIR/repo-apk/$repo -maxdepth 1 -mindepth 1 -printf '%P '); do
|
for i in $(find $HOME/repo-apk/$repo -maxdepth 1 -mindepth 1 -printf '%P '); do
|
||||||
CHOST=$i abuild index
|
CHOST=$i abuild index
|
||||||
done
|
done
|
||||||
cd "$CI_PROJECT_DIR"
|
cd "$CI_PROJECT_DIR"
|
||||||
rm -R $repo/DUMMY
|
rm -R $repo/DUMMY
|
||||||
done
|
done
|
||||||
|
|
||||||
git -C repo-apk add .
|
git -C $HOME/repo-apk add .
|
||||||
git -C repo-apk commit -m "Update from $CI_MERGE_REQUEST_IID - $CI_MERGE_REQUEST_TITLE"
|
git -C $HOME/repo-apk commit -m "Update from $CI_MERGE_REQUEST_IID - $CI_MERGE_REQUEST_TITLE"
|
||||||
git -C repo-apk push
|
git -C $HOME/repo-apk push
|
||||||
|
|
Loading…
Add table
Reference in a new issue