updates and build process changes

build process:
- never run "pacman -Sy" as pacman does not support partial upgrades, instead use "pacman -Syu"
- after each build-stage: run "docker build" with cache disabled to make sure the build step "pacman -Syu" is run
This commit is contained in:
Daniel Langbein 2021-09-19 18:59:43 +02:00
parent 9d16934bca
commit 85163477df
9 changed files with 16 additions and 15 deletions

1
.idea/vcs.xml generated
View File

@ -13,6 +13,7 @@
<mapping directory="$PROJECT_DIR$/pkg/chromaprint-fftw" vcs="Git" />
<mapping directory="$PROJECT_DIR$/pkg/crema" vcs="Git" />
<mapping directory="$PROJECT_DIR$/pkg/davs2" vcs="Git" />
<mapping directory="$PROJECT_DIR$/pkg/de-p1st-image-width-limit" vcs="Git" />
<mapping directory="$PROJECT_DIR$/pkg/decklink-sdk" vcs="Git" />
<mapping directory="$PROJECT_DIR$/pkg/discord_arch_electron" vcs="Git" />
<mapping directory="$PROJECT_DIR$/pkg/fedora-firefox-wayland-bin" vcs="Git" />

View File

@ -23,8 +23,8 @@ RUN printf '\n[options]\nDisableDownloadTimeout\n' >> /etc/pacman.conf && \
printf '\n[multilib]\nInclude = /etc/pacman.d/mirrorlist\n' >> /etc/pacman.conf && \
\
pacman -Syu --noconfirm && \
pacman -S --needed --noconfirm svn && \
pacman -S --needed --noconfirm multilib-devel
pacman -S --needed --noconfirm svn \
multilib-devel
# 1. Set packager
# 2. Store built packages in /out/

View File

@ -27,7 +27,8 @@ function start-docker() {
}
function update-build-image() {
sudo docker-compose build --pull
# "--no-cache" to always run the "pacman -Syu" build step
sudo docker-compose build --pull --no-cache
}
function build-pkg() {
@ -91,9 +92,6 @@ before continuing with the next line.";
is-installed "docker-compose" || return $?
}
update-build-image || return $?
# Read content of PKGLIST file to an array
# For each line: build and push all space separated packages
mapfile -t STAGES < "${PKGLIST}"
@ -102,6 +100,8 @@ before continuing with the next line.";
# trim leading/tailing whitespaces
line="$(echo "${line}" | xargs)" || return $?
space_separated_to_array line pkgs
# Rebuild the docker image with refreshed mirrors => this fetches packages that were built in a previous build stage
update-build-image || return $?
# shellcheck disable=SC2154
build-and-push "${pkgs[@]}" || exit $?
done

View File

@ -52,8 +52,11 @@ function build-pkg() {
function push-pkg() {
arch-repo-push-new || return $? # Push remote repository
echo "Running 'pacman -Sy' to update de-p1st mirror database ..."
sudo pacman -Sy || return $?
echo "Running 'pacman -Syu' to update de-p1st mirror database ..."
# Theoretically "-Sy" would be enough to update the mirrors,
# but pacman does not support partial updates!
sudo pacman -Syu || return $?
}
function build-and-push() {

View File

@ -9,9 +9,6 @@ function main(){
# Write-permission for user "build"
sudo chown "build:wheel" /out
# Refresh mirrors, e.g. to fetch packages that were built in the previous build stage
sudo pacman -Sy
PKG=/pkg/"${1}"
shift; # remove first arg
echo "Looking for PKGBUILD in ${PKG} ..."

View File

@ -1,5 +1,5 @@
#!/bin/bash
git pull || exit $?
git submodule foreach 'git checkout master' || exit $?
git submodule foreach 'git checkout master || git checkout main' || exit $?
git submodule foreach 'if git pull | grep '\''^Updating'\''; then printf " %s" "$(basename $sm_path)" >> $toplevel/build-pkg/pkglist.tmp; fi'

@ -1 +1 @@
Subproject commit b7171006c0752af066c64eb520c1c5b3eb62e486
Subproject commit 19310af76b80fcdfce8087d0a0961491dac75118

@ -1 +1 @@
Subproject commit af7ac0ec4eda146420677cb68098a43fdbaa2ec0
Subproject commit c9aa41fc3a224e6466a96894efa9b4f94e0ac539

@ -1 +1 @@
Subproject commit 9b3b6c0b91ecbdd45aa5ebed89e1345097b42c8b
Subproject commit 4e648a8a3b118d4b9903a454615eb7e4d53dcbb9