From 3bcdcc5dbf858f6040fc863e34aa61df6d58632e Mon Sep 17 00:00:00 2001 From: Carter Li Date: Tue, 16 Sep 2025 16:12:59 +0800 Subject: [PATCH] CI: merge amd64 and aarch64 code with matrix --- .github/workflows/ci.yml | 87 ++++++++-------------------------------- 1 file changed, 17 insertions(+), 70 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5c9ea2492..ab1473027 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -61,12 +61,19 @@ jobs: - name: run tests run: ctest --output-on-failure - linux-amd64: - name: Linux-amd64 - runs-on: ubuntu-22.04 + linux-amd64-aarch64: + name: Linux-${{ matrix.arch }} + runs-on: ${{ matrix.runs-on }} permissions: security-events: write contents: read + strategy: + matrix: + include: + - arch: amd64 + runs-on: ubuntu-22.04 + - arch: aarch64 + runs-on: ubuntu-22.04-arm outputs: ffversion: ${{ steps.ffversion.outputs.ffversion }} steps: @@ -83,25 +90,27 @@ jobs: run: cat /proc/cpuinfo - name: install required packages - run: sudo apt-get update && sudo apt-get install -y libvulkan-dev libwayland-dev libxrandr-dev libxcb-randr0-dev libdconf-dev libdbus-1-dev libmagickcore-dev libsqlite3-dev librpm-dev libegl-dev libglx-dev ocl-icd-opencl-dev libpulse-dev libdrm-dev libelf-dev libddcutil-dev directx-headers-dev + run: sudo apt-get update && sudo apt-get install -y libvulkan-dev libwayland-dev libxrandr-dev libxcb-randr0-dev libdconf-dev libdbus-1-dev libmagickcore-dev libsqlite3-dev librpm-dev libegl-dev libglx-dev ocl-icd-opencl-dev libpulse-dev libdrm-dev libelf-dev libddcutil-dev libchafa-dev directx-headers-dev rpm ninja-build - name: install linuxbrew packages run: | /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" - /home/linuxbrew/.linuxbrew/bin/brew install imagemagick chafa --ignore-dependencies + /home/linuxbrew/.linuxbrew/bin/brew install imagemagick --ignore-dependencies - name: Initialize CodeQL + if: matrix.arch == 'amd64' uses: github/codeql-action/init@v3 with: languages: c - name: configure project - run: PKG_CONFIG_PATH=/home/linuxbrew/.linuxbrew/lib/pkgconfig:$PKG_CONFIG_PATH cmake -DSET_TWEAK=Off -DBUILD_TESTS=On -DENABLE_EMBEDDED_PCIIDS=On -DENABLE_EMBEDDED_AMDGPUIDS=On -DCMAKE_INSTALL_PREFIX=/usr . + run: PKG_CONFIG_PATH=/home/linuxbrew/.linuxbrew/lib/pkgconfig:$PKG_CONFIG_PATH cmake -GNinja -DSET_TWEAK=Off -DBUILD_TESTS=On -DENABLE_EMBEDDED_PCIIDS=On -DENABLE_EMBEDDED_AMDGPUIDS=On -DCMAKE_INSTALL_PREFIX=/usr . - name: build project run: cmake --build . --target package --verbose -j4 - name: perform CodeQL analysis + if: matrix.arch == 'amd64' uses: github/codeql-action/analyze@v3 - name: list features @@ -129,68 +138,7 @@ jobs: - name: upload artifacts uses: actions/upload-artifact@v4 with: - name: fastfetch-linux-amd64 - path: ./fastfetch-*.* - - linux-aarch64: - name: Linux-aarch64 - runs-on: ubuntu-22.04-arm - permissions: - security-events: write - contents: read - steps: - - name: checkout repository - uses: actions/checkout@v5 - - - name: uname -a - run: uname -a - - - name: cat /etc/os-release - run: cat /etc/os-release - - - name: cat /proc/cpuinfo - run: cat /proc/cpuinfo - - - name: install required packages - run: sudo apt-get update && sudo apt-get install -y libvulkan-dev libwayland-dev libxrandr-dev libxcb-randr0-dev libdconf-dev libdbus-1-dev libmagickcore-dev libsqlite3-dev librpm-dev libegl-dev libglx-dev ocl-icd-opencl-dev libpulse-dev libdrm-dev libelf-dev directx-headers-dev libchafa-dev libddcutil-dev rpm - - - name: install linuxbrew packages - run: | - /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" - /home/linuxbrew/.linuxbrew/bin/brew install imagemagick chafa --ignore-dependencies - - - name: configure project - run: PKG_CONFIG_PATH=/home/linuxbrew/.linuxbrew/lib/pkgconfig:$PKG_CONFIG_PATH cmake -DSET_TWEAK=Off -DBUILD_TESTS=On -DENABLE_EMBEDDED_PCIIDS=On -DENABLE_EMBEDDED_AMDGPUIDS=On -DCMAKE_INSTALL_PREFIX=/usr . - - - name: build project - run: cmake --build . --target package --verbose -j4 - - - name: list features - run: ./fastfetch --list-features - - - name: run fastfetch - run: time ./fastfetch -c presets/ci.jsonc --stat false - - - name: run fastfetch --format json - run: time ./fastfetch -c presets/ci.jsonc --format json - - - name: run flashfetch - run: time ./flashfetch - - - name: print dependencies - run: ldd fastfetch - - - name: run tests - run: ctest --output-on-failure - - - name: get fastfetch version - id: ffversion - run: echo "ffversion=$(./fastfetch --version-raw)" >> $GITHUB_OUTPUT - - - name: upload artifacts - uses: actions/upload-artifact@v4 - with: - name: fastfetch-linux-aarch64 + name: fastfetch-linux-${{ matrix.arch }} path: ./fastfetch-*.* linux-armv7l: @@ -847,8 +795,7 @@ jobs: name: Release runs-on: ubuntu-latest needs: - - linux-amd64 - - linux-aarch64 + - linux-amd64-aarch64 - linux-armv7l - linux-armv6l - linux-riscv64