ci/cd: move Fedora to 43 and speed up its dnf installs
Fedora 41 is EOL, so its mirrors moved to the slow archive: the first dnf transaction took ~7 minutes in the last CD run. Use the current fedora:43 image (all dependency names verified against F41 and F43) and skip weak dependencies / download in parallel in both dnf calls.
This commit is contained in:
@@ -10,7 +10,7 @@ permissions:
|
|||||||
contents: write
|
contents: write
|
||||||
|
|
||||||
# One matrix, seven platforms, the same environments CI tests in (see
|
# One matrix, seven platforms, the same environments CI tests in (see
|
||||||
# .github/workflows/ci.yml): Debian 12 / Fedora 41 / Arch / openKylin x64
|
# .github/workflows/ci.yml): Debian 12 / Fedora 43 / Arch / openKylin x64
|
||||||
# and arm64 containers plus the macOS and Windows hosts. Every package is
|
# and arm64 containers plus the macOS and Windows hosts. Every package is
|
||||||
# built from scratch — no vcpkg/cargo caches: a restored vcpkg_installed
|
# built from scratch — no vcpkg/cargo caches: a restored vcpkg_installed
|
||||||
# or target tree has masked packaging problems before (stale ports,
|
# or target tree has masked packaging problems before (stale ports,
|
||||||
@@ -44,7 +44,7 @@ jobs:
|
|||||||
runner: warp-ubuntu-latest-x64-32x
|
runner: warp-ubuntu-latest-x64-32x
|
||||||
triplet: x64-linux
|
triplet: x64-linux
|
||||||
artifact: linux-fedora
|
artifact: linux-fedora
|
||||||
container: '{"image":"fedora:41","options":"--shm-size=8g"}'
|
container: '{"image":"fedora:43","options":"--shm-size=8g"}'
|
||||||
- name: Arch
|
- name: Arch
|
||||||
platform: linux
|
platform: linux
|
||||||
distro: arch
|
distro: arch
|
||||||
@@ -95,7 +95,7 @@ jobs:
|
|||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
case "${{ matrix.distro }}" in
|
case "${{ matrix.distro }}" in
|
||||||
fedora) dnf install -y git curl wget which ;;
|
fedora) dnf install -y --setopt=install_weak_deps=False --setopt=max_parallel_downloads=16 git curl wget which ;;
|
||||||
arch) pacman -Sy --noconfirm git curl wget which ;;
|
arch) pacman -Sy --noconfirm git curl wget which ;;
|
||||||
debian|openkylin) apt-get update && apt-get install -y git curl ca-certificates wget ;;
|
debian|openkylin) apt-get update && apt-get install -y git curl ca-certificates wget ;;
|
||||||
esac
|
esac
|
||||||
@@ -184,7 +184,11 @@ jobs:
|
|||||||
if: matrix.distro == 'fedora'
|
if: matrix.distro == 'fedora'
|
||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
dnf install -y \
|
# Fedora 41 is EOL (its mirrors moved to the slow archive), so
|
||||||
|
# the matrix uses the current release; weak dependencies (docs,
|
||||||
|
# fonts, optional tooling) are skipped and downloads run wide.
|
||||||
|
dnf install -y --setopt=install_weak_deps=False \
|
||||||
|
--setopt=max_parallel_downloads=16 \
|
||||||
gcc gcc-c++ clang clang-devel cmake pkgconf-pkg-config nasm \
|
gcc gcc-c++ clang clang-devel cmake pkgconf-pkg-config nasm \
|
||||||
git curl zip unzip tar python3 patch xz which \
|
git curl zip unzip tar python3 patch xz which \
|
||||||
pipewire-devel jack-audio-connection-kit-devel \
|
pipewire-devel jack-audio-connection-kit-devel \
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ permissions:
|
|||||||
contents: read
|
contents: read
|
||||||
|
|
||||||
# One matrix, seven platforms: the three Linux-family packaging distros
|
# One matrix, seven platforms: the three Linux-family packaging distros
|
||||||
# (Debian 12, Fedora 41, Arch), openKylin on x64 and arm64, macOS and
|
# (Debian 12, Fedora 43, Arch), openKylin on x64 and arm64, macOS and
|
||||||
# Windows. The environments match .github/workflows/cd.yml exactly (same
|
# Windows. The environments match .github/workflows/cd.yml exactly (same
|
||||||
# container images, same dependency lists, same runner sizes), so a
|
# container images, same dependency lists, same runner sizes), so a
|
||||||
# "passes CI, fails CD" dependency drift is caught here first.
|
# "passes CI, fails CD" dependency drift is caught here first.
|
||||||
@@ -48,7 +48,7 @@ jobs:
|
|||||||
arch: x64
|
arch: x64
|
||||||
runner: warp-ubuntu-latest-x64-8x
|
runner: warp-ubuntu-latest-x64-8x
|
||||||
triplet: x64-linux
|
triplet: x64-linux
|
||||||
container: '{"image":"fedora:41","options":"--shm-size=8g"}'
|
container: '{"image":"fedora:43","options":"--shm-size=8g"}'
|
||||||
- name: Arch
|
- name: Arch
|
||||||
platform: linux
|
platform: linux
|
||||||
distro: arch
|
distro: arch
|
||||||
@@ -95,7 +95,7 @@ jobs:
|
|||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
case "${{ matrix.distro }}" in
|
case "${{ matrix.distro }}" in
|
||||||
fedora) dnf install -y git curl wget which ;;
|
fedora) dnf install -y --setopt=install_weak_deps=False --setopt=max_parallel_downloads=16 git curl wget which ;;
|
||||||
arch) pacman -Sy --noconfirm git curl wget which ;;
|
arch) pacman -Sy --noconfirm git curl wget which ;;
|
||||||
debian|openkylin) apt-get update && apt-get install -y git curl ca-certificates wget ;;
|
debian|openkylin) apt-get update && apt-get install -y git curl ca-certificates wget ;;
|
||||||
esac
|
esac
|
||||||
@@ -187,7 +187,11 @@ jobs:
|
|||||||
if: matrix.distro == 'fedora'
|
if: matrix.distro == 'fedora'
|
||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
dnf install -y \
|
# Fedora 41 is EOL (its mirrors moved to the slow archive), so
|
||||||
|
# the matrix uses the current release; weak dependencies (docs,
|
||||||
|
# fonts, optional tooling) are skipped and downloads run wide.
|
||||||
|
dnf install -y --setopt=install_weak_deps=False \
|
||||||
|
--setopt=max_parallel_downloads=16 \
|
||||||
gcc gcc-c++ clang clang-devel cmake pkgconf-pkg-config nasm \
|
gcc gcc-c++ clang clang-devel cmake pkgconf-pkg-config nasm \
|
||||||
git curl zip unzip tar python3 patch xz which \
|
git curl zip unzip tar python3 patch xz which \
|
||||||
pipewire-devel jack-audio-connection-kit-devel \
|
pipewire-devel jack-audio-connection-kit-devel \
|
||||||
|
|||||||
Reference in New Issue
Block a user