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/chromaprint-fftw" vcs="Git" />
<mapping directory="$PROJECT_DIR$/pkg/crema" vcs="Git" /> <mapping directory="$PROJECT_DIR$/pkg/crema" vcs="Git" />
<mapping directory="$PROJECT_DIR$/pkg/davs2" 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/decklink-sdk" vcs="Git" />
<mapping directory="$PROJECT_DIR$/pkg/discord_arch_electron" vcs="Git" /> <mapping directory="$PROJECT_DIR$/pkg/discord_arch_electron" vcs="Git" />
<mapping directory="$PROJECT_DIR$/pkg/fedora-firefox-wayland-bin" 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 && \ printf '\n[multilib]\nInclude = /etc/pacman.d/mirrorlist\n' >> /etc/pacman.conf && \
\ \
pacman -Syu --noconfirm && \ pacman -Syu --noconfirm && \
pacman -S --needed --noconfirm svn && \ pacman -S --needed --noconfirm svn \
pacman -S --needed --noconfirm multilib-devel multilib-devel
# 1. Set packager # 1. Set packager
# 2. Store built packages in /out/ # 2. Store built packages in /out/

View File

@ -27,7 +27,8 @@ function start-docker() {
} }
function update-build-image() { 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() { function build-pkg() {
@ -91,9 +92,6 @@ before continuing with the next line.";
is-installed "docker-compose" || return $? is-installed "docker-compose" || return $?
} }
update-build-image || return $?
# Read content of PKGLIST file to an array # Read content of PKGLIST file to an array
# For each line: build and push all space separated packages # For each line: build and push all space separated packages
mapfile -t STAGES < "${PKGLIST}" mapfile -t STAGES < "${PKGLIST}"
@ -102,6 +100,8 @@ before continuing with the next line.";
# trim leading/tailing whitespaces # trim leading/tailing whitespaces
line="$(echo "${line}" | xargs)" || return $? line="$(echo "${line}" | xargs)" || return $?
space_separated_to_array line pkgs 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 # shellcheck disable=SC2154
build-and-push "${pkgs[@]}" || exit $? build-and-push "${pkgs[@]}" || exit $?
done done

View File

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

View File

@ -9,9 +9,6 @@ function main(){
# Write-permission for user "build" # Write-permission for user "build"
sudo chown "build:wheel" /out 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}" PKG=/pkg/"${1}"
shift; # remove first arg shift; # remove first arg
echo "Looking for PKGBUILD in ${PKG} ..." echo "Looking for PKGBUILD in ${PKG} ..."

View File

@ -1,5 +1,5 @@
#!/bin/bash #!/bin/bash
git pull || exit $? 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' 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