diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index cdcfaac..ba51f97 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -12,22 +12,22 @@ lint: interruptible: true script: - | - sudo apk add shellcheck atools doas abuild + sudo apk add shellcheck atools sudo abuild export PATH="$PATH:$CI_PROJECT_DIR/.gitlab/bin" lint allow_failure: true only: - merge_requests tags: - - apk-$CI_MERGE_REQUEST_TARGET_BRANCH_NAME + - apk-$CI_MERGE_REQUEST_TARGET_BRANCH_NAME-x86_64 .build: stage: build interruptible: true script: - | - sudo apk add alpine-sdk lua-aports doas - doas addgroup $USER abuild + sudo apk add alpine-sdk lua-aports sudo + sudo addgroup $USER abuild export PATH="$PATH:$CI_PROJECT_DIR/.gitlab/bin" sudo -Eu $USER build.sh artifacts: @@ -36,19 +36,16 @@ lint: - keys/ - logs/ expire_in: 7 days - when: always only: - merge_requests - tags: - - apk-$CI_MERGE_REQUEST_TARGET_BRANCH_NAME .cross: stage: build interruptible: true script: - | - sudo apk add alpine-sdk lua-aports doas gzip xz qemu-$CI_QEMU_TARGET_ARCH - doas addgroup $USER abuild + sudo apk add alpine-sdk lua-aports sudo gzip xz qemu-$CI_QEMU_TARGET_ARCH + sudo addgroup $USER abuild export PATH="$PATH:$CI_PROJECT_DIR/.gitlab/bin" 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/. @@ -59,18 +56,32 @@ lint: - keys/ - logs/ expire_in: 7 days - when: always - when: manual only: - merge_requests - tags: - - apk-$CI_MERGE_REQUEST_TARGET_BRANCH_NAME build-x86_64: extends: .build + when: always + tags: + - apk-$CI_MERGE_REQUEST_TARGET_BRANCH_NAME-x86_64 + +build-ppc64le: + extends: .build + when: manual + tags: + - apk-$CI_MERGE_REQUEST_TARGET_BRANCH_NAME-ppc64le + +build-s390x: + extends: .build + when: manual + tags: + - apk-$CI_MERGE_REQUEST_TARGET_BRANCH_NAME-s390x build-armv7: extends: .cross + when: manual + tags: + - apk-$CI_MERGE_REQUEST_TARGET_BRANCH_NAME-x86_64 variables: CI_ALPINE_TARGET_ARCH: armv7 CI_QEMU_TARGET_ARCH: arm diff --git a/.gitlab/bin/build.sh b/.gitlab/bin/build.sh index 83e9ac6..3d0294f 100755 --- a/.gitlab/bin/build.sh +++ b/.gitlab/bin/build.sh @@ -113,12 +113,12 @@ set_repositories_for() { repos="$repos $MIRROR/$release/$repo $REPODEST/$repo" [ "$repo" = "$target_repo" ] && break done - doas sh -c "printf '%s\n' $repos >> /etc/apk/repositories" - doas apk update || true + sudo sh -c "printf '%s\n' $repos >> /etc/apk/repositories" + sudo 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 + sudo sh -c "printf '%s\n' $repos >> $HOME/sysroot-$CI_ALPINE_TARGET_ARCH/etc/apk/repositories" + sudo cp -R /etc/apk/keys/* $HOME/sysroot-$CI_ALPINE_TARGET_ARCH/etc/apk/keys/. + sudo apk --root=$HOME/sysroot-$CI_ALPINE_TARGET_ARCH update || true fi } @@ -140,21 +140,21 @@ setup_system() { repos="$repos $ALPINE_MIRROR/$release/$repo" done repos="$repos $MIRROR/$release/cross" - doas sh -c "printf '%s\n' $repos > /etc/apk/repositories" - doas apk -U upgrade -a || doas apk fix || die "Failed to up/downgrade system" + sudo sh -c "printf '%s\n' $repos > /etc/apk/repositories" + sudo apk -U upgrade -a || sudo apk fix || die "Failed to up/downgrade system" if [ "$CI_ALPINE_TARGET_ARCH" != "$ARCH" ]; then - doas apk add gcc-$CI_ALPINE_TARGET_ARCH + sudo apk add gcc-$CI_ALPINE_TARGET_ARCH fi gitlab_key_to_rsa $ABUILD_KEY rsa-private $HOME/.abuild/$ABUILD_KEY_NAME.rsa gitlab_key_to_rsa $ABUILD_KEY_PUB rsa-public $HOME/.abuild/$ABUILD_KEY_NAME.rsa.pub chmod 700 $HOME/.abuild/$ABUILD_KEY_NAME.rsa echo "PACKAGER_PRIVKEY=$HOME/.abuild/$ABUILD_KEY_NAME.rsa" >> $HOME/.abuild/abuild.conf - doas cp $HOME/.abuild/$ABUILD_KEY_NAME.rsa.pub /etc/apk/keys/$ABUILD_KEY_NAME.rsa.pub + sudo cp $HOME/.abuild/$ABUILD_KEY_NAME.rsa.pub /etc/apk/keys/$ABUILD_KEY_NAME.rsa.pub # patch abuild for crosscompiling - doas patch -p1 -d / -i $CI_PROJECT_DIR/.gitlab/patches/abuild-cross.patch + sudo patch -p1 -d / -i $CI_PROJECT_DIR/.gitlab/patches/abuild-cross.patch - doas sed -i -E 's/export JOBS=[0-9]+$/export JOBS=$(nproc)/' /etc/abuild.conf + sudo sed -i -E 's/export JOBS=[0-9]+$/export JOBS=$(nproc)/' /etc/abuild.conf ( . /etc/abuild.conf && echo "Building with $JOBS jobs" ) mkdir -p "$REPODEST" git config --global init.defaultBranch master @@ -203,7 +203,7 @@ sysinfo || true setup_system || die "Failed to setup system" # git no longer allows to execute in repositories owned by different users -doas chown -R $USER: . +sudo chown -R $USER: . fetch_flags="-qn" debugging && fetch_flags="-v" diff --git a/.gitlab/bin/lint b/.gitlab/bin/lint index f9e1c03..c1edcfb 100755 --- a/.gitlab/bin/lint +++ b/.gitlab/bin/lint @@ -23,7 +23,7 @@ debug() { } # git no longer allows to execute in repositories owned by different users -doas chown -R gitlab-runner: . +sudo chown -R gitlab-runner: . fetch_flags="-qn" debugging && fetch_flags="-v" diff --git a/.gitlab/bin/push.sh b/.gitlab/bin/push.sh index 684321c..e93101a 100755 --- a/.gitlab/bin/push.sh +++ b/.gitlab/bin/push.sh @@ -21,7 +21,7 @@ chmod 700 "$HOME"/.abuild/$ABUILD_KEY_NAME.rsa echo "PACKAGER_PRIVKEY=$HOME/.abuild/$ABUILD_KEY_NAME.rsa" > $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/. +sudo cp $HOME/.abuild/$ABUILD_KEY_NAME.rsa.pub /etc/apk/keys/. if [ -d $HOME/repo-apk ]; then git -C $HOME/repo-apk fetch