28778eaf8c
Fedora 36 is EOL. Build roots for it were taken offline this morning so builds against it will fail now.
587 lines
20 KiB
YAML
587 lines
20 KiB
YAML
name: Build
|
|
|
|
on:
|
|
push:
|
|
branches: ["*"]
|
|
pull_request:
|
|
workflow_dispatch:
|
|
|
|
env:
|
|
BUILD_TYPE: Release
|
|
|
|
jobs:
|
|
|
|
# Windows build
|
|
win:
|
|
runs-on: windows-2022
|
|
name: 🪟 Windows MINGW64
|
|
defaults:
|
|
run:
|
|
shell: msys2 {0}
|
|
env:
|
|
CCACHE_DIR: "${{ github.workspace }}/.ccache"
|
|
CCACHE_MAXSIZE: "1000M"
|
|
CCACHE_COMPRESS: "true"
|
|
steps:
|
|
- name: 🧰 Checkout
|
|
uses: actions/checkout@v3
|
|
with:
|
|
submodules: recursive
|
|
|
|
- name: 📜 Setup ccache
|
|
uses: hendrikmuhs/ccache-action@v1.2
|
|
id: cache-ccache
|
|
with:
|
|
key: ${{ runner.os }}-${{ secrets.CACHE_VERSION }}-build-${{ github.run_id }}
|
|
restore-keys: ${{ runner.os }}-${{ secrets.CACHE_VERSION }}-build
|
|
max-size: 50M
|
|
|
|
- name: 📜 Restore CMakeCache
|
|
uses: actions/cache@v3
|
|
with:
|
|
path: |
|
|
build/CMakeCache.txt
|
|
key: ${{ runner.os }}-${{ secrets.CACHE_VERSION }}-build-${{ hashFiles('**/CMakeLists.txt') }}
|
|
|
|
- name: 🟦 Install msys2
|
|
uses: msys2/setup-msys2@v2
|
|
with:
|
|
msystem: mingw64
|
|
pacboy: >-
|
|
gcc:p
|
|
lld:p
|
|
cmake:p
|
|
make:p
|
|
ccache:p
|
|
glfw:p
|
|
file:p
|
|
mbedtls:p
|
|
freetype:p
|
|
dlfcn:p
|
|
libbacktrace:p
|
|
|
|
- name: 📜 Set version variable
|
|
run: |
|
|
echo "IMHEX_VERSION=`cat VERSION`" >> $GITHUB_ENV
|
|
|
|
# Windows cmake build
|
|
- name: 🛠️ Build
|
|
run: |
|
|
mkdir -p build
|
|
cd build
|
|
|
|
cmake -G "MinGW Makefiles" \
|
|
-DCMAKE_BUILD_TYPE=$BUILD_TYPE \
|
|
-DCMAKE_INSTALL_PREFIX="$PWD/install" \
|
|
-DCREATE_PACKAGE=ON \
|
|
-DCMAKE_C_COMPILER_LAUNCHER=ccache \
|
|
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache \
|
|
-DCMAKE_C_FLAGS="-fuse-ld=lld" \
|
|
-DCMAKE_CXX_FLAGS="-fuse-ld=lld" \
|
|
-DIMHEX_PATTERNS_PULL_MASTER=ON \
|
|
-DIMHEX_COMMIT_HASH_SHORT="${GITHUB_SHA::7}" \
|
|
-DIMHEX_COMMIT_HASH_LONG="${GITHUB_SHA}" \
|
|
-DIMHEX_COMMIT_BRANCH="${GITHUB_REF##*/}" \
|
|
..
|
|
mingw32-make -j4 install
|
|
cpack
|
|
mv ImHex-*.msi ../imhex-${{env.IMHEX_VERSION}}-Windows-x86_64.msi
|
|
|
|
echo "ImHex checks for the existence of this file to determine if it is running in portable mode. You should not delete this file" > $PWD/install/PORTABLE
|
|
|
|
- name: ⬆️ Upload Windows Installer
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: Windows Installer x86_64
|
|
path: |
|
|
imhex-*.msi
|
|
|
|
- name: ⬆️ Upload Portable ZIP
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: Windows Portable x86_64
|
|
path: |
|
|
build/install/*
|
|
|
|
- name: ⬇️ Download Mesa3D for NoGPU version
|
|
shell: bash
|
|
run: |
|
|
echo "NoGPU version Powered by Mesa 3D : https://fdossena.com/?p=mesa%2Findex.frag" > build/install/MESA.md
|
|
curl https://werwolv.net/downloads/mesa/MesaForWindows-x64-latest.7z -L -o mesa.7z
|
|
7z e mesa.7z
|
|
mv opengl32.dll build/install
|
|
|
|
- name: ⬆️ Upload NoGPU Portable ZIP
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: Windows Portable NoGPU x86_64
|
|
path: |
|
|
build/install/*
|
|
|
|
# MacOS build
|
|
macos:
|
|
runs-on: macos-11
|
|
|
|
strategy:
|
|
matrix:
|
|
include:
|
|
- suffix: "-NoGPU"
|
|
custom_glfw: true
|
|
- suffix: ""
|
|
custom_glfw: false
|
|
|
|
name: 🍎 macOS 11.0${{matrix.suffix}}
|
|
|
|
steps:
|
|
- name: 🧰 Checkout
|
|
uses: actions/checkout@v3
|
|
with:
|
|
submodules: recursive
|
|
|
|
- name: 📜 Set version variable
|
|
run: |
|
|
echo "IMHEX_VERSION=`cat VERSION`" >> $GITHUB_ENV
|
|
|
|
- name: 📜 Setup ccache
|
|
uses: hendrikmuhs/ccache-action@v1.2
|
|
with:
|
|
key: ${{ runner.os }}-${{ matrix.suffix }}-${{ secrets.CACHE_VERSION }}-build-${{ github.run_id }}
|
|
restore-keys: ${{ runner.os }}-${{ matrix.suffix }}-${{ secrets.CACHE_VERSION }}-build
|
|
max-size: 50M
|
|
|
|
- name: 📜 Restore CMakeCache
|
|
uses: actions/cache@v3
|
|
with:
|
|
path: |
|
|
build/CMakeCache.txt
|
|
key: ${{ runner.os }}-${{ matrix.suffix }}-${{ secrets.CACHE_VERSION }}-build-${{ hashFiles('**/CMakeLists.txt') }}
|
|
|
|
- name: ⬇️ Install dependencies
|
|
run: |
|
|
brew bundle --no-lock --file dist/Brewfile
|
|
rm -rf /usr/local/Cellar/capstone
|
|
|
|
- name: ⬇️ Install classic glfw
|
|
if: ${{! matrix.custom_glfw}}
|
|
run: |
|
|
brew install glfw
|
|
|
|
- name: 🧰 Checkout glfw
|
|
if: ${{matrix.custom_glfw}}
|
|
uses: actions/checkout@v3
|
|
with:
|
|
repository: glfw/glfw
|
|
path: glfw
|
|
|
|
- name: ⬇️ Patch and install custom glfw
|
|
if: ${{matrix.custom_glfw}}
|
|
run: |
|
|
cd glfw
|
|
git apply ../dist/macOS/0001-glfw-SW.patch
|
|
|
|
mkdir build
|
|
cd build
|
|
|
|
cmake \
|
|
-DBUILD_SHARED_LIBS=ON \
|
|
-DCMAKE_C_COMPILER_LAUNCHER=ccache \
|
|
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache \
|
|
-DCMAKE_OBJC_COMPILER_LAUNCHER=ccache \
|
|
-DCMAKE_OBJCXX_COMPILER_LAUNCHER=ccache \
|
|
-DIMHEX_COMMIT_HASH_SHORT="${GITHUB_SHA::7}" \
|
|
-DIMHEX_COMMIT_HASH_LONG="${GITHUB_SHA}" \
|
|
-DIMHEX_COMMIT_BRANCH="${GITHUB_REF##*/}" \
|
|
..
|
|
make -j 4 install
|
|
|
|
# MacOS cmake build
|
|
- name: 🛠️ Build
|
|
run: |
|
|
mkdir -p build
|
|
cd build
|
|
CC=$(brew --prefix gcc@12)/bin/gcc-12 \
|
|
CXX=$(brew --prefix gcc@12)/bin/g++-12 \
|
|
OBJC=$(brew --prefix llvm)/bin/clang \
|
|
OBJCXX=$(brew --prefix llvm)/bin/clang++ \
|
|
PKG_CONFIG_PATH="$(brew --prefix openssl)/lib/pkgconfig":"$(brew --prefix)/lib/pkgconfig" \
|
|
MACOSX_DEPLOYMENT_TARGET="10.10" \
|
|
cmake \
|
|
-DCMAKE_BUILD_TYPE=$BUILD_TYPE \
|
|
-DCREATE_BUNDLE=ON \
|
|
-DCREATE_PACKAGE=ON \
|
|
-DCMAKE_C_COMPILER_LAUNCHER=ccache \
|
|
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache \
|
|
-DCMAKE_OBJC_COMPILER_LAUNCHER=ccache \
|
|
-DCMAKE_OBJCXX_COMPILER_LAUNCHER=ccache \
|
|
-DIMHEX_PATTERNS_PULL_MASTER=ON \
|
|
-DIMHEX_COMMIT_HASH_SHORT="${GITHUB_SHA::7}" \
|
|
-DIMHEX_COMMIT_HASH_LONG="${GITHUB_SHA}" \
|
|
-DIMHEX_COMMIT_BRANCH="${GITHUB_REF##*/}" \
|
|
-DCMAKE_OSX_DEPLOYMENT_TARGET="10.10" \
|
|
-DCPACK_PACKAGE_FILE_NAME="imhex-${{env.IMHEX_VERSION}}-macOS${{matrix.suffix}}-x86_64" \
|
|
..
|
|
make -j4 package
|
|
|
|
- name: ⬆️ Upload DMG
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: macOS DMG${{matrix.suffix}} x86_64
|
|
path: build/*.dmg
|
|
|
|
# Ubuntu build
|
|
ubuntu:
|
|
runs-on: ubuntu-22.04
|
|
name: 🐧 Ubuntu 22.04
|
|
steps:
|
|
|
|
- name: 🧰 Checkout
|
|
uses: actions/checkout@v3
|
|
with:
|
|
submodules: recursive
|
|
|
|
- name: 📜 Setup ccache
|
|
uses: hendrikmuhs/ccache-action@v1.2
|
|
with:
|
|
key: ${{ runner.os }}-${{ secrets.CACHE_VERSION }}-build-${{ github.run_id }}
|
|
restore-keys: ${{ runner.os }}-${{ secrets.CACHE_VERSION }}-build
|
|
max-size: 50M
|
|
|
|
- name: 📜 Restore CMakeCache
|
|
uses: actions/cache@v3
|
|
with:
|
|
path: |
|
|
build/CMakeCache.txt
|
|
key: ${{ runner.os }}-${{ secrets.CACHE_VERSION }}-build-${{ hashFiles('**/CMakeLists.txt') }}
|
|
|
|
- name: ⬇️ Install dependencies
|
|
run: |
|
|
sudo apt update
|
|
sudo bash dist/get_deps_debian.sh
|
|
|
|
# Ubuntu cmake build
|
|
- name: 🛠️ Build
|
|
run: |
|
|
mkdir -p build
|
|
cd build
|
|
CC=gcc-12 CXX=g++-12 cmake \
|
|
-DCMAKE_BUILD_TYPE=$BUILD_TYPE \
|
|
-DCMAKE_INSTALL_PREFIX="/usr" \
|
|
-DCMAKE_C_COMPILER_LAUNCHER=ccache \
|
|
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache \
|
|
-DIMHEX_PATTERNS_PULL_MASTER=ON \
|
|
-DIMHEX_COMMIT_HASH_SHORT="${GITHUB_SHA::7}" \
|
|
-DIMHEX_COMMIT_HASH_LONG="${GITHUB_SHA}" \
|
|
-DIMHEX_COMMIT_BRANCH="${GITHUB_REF##*/}" \
|
|
-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON \
|
|
..
|
|
make -j 4 install DESTDIR=DebDir
|
|
|
|
- name: 📜 Set version variable
|
|
run: |
|
|
echo "IMHEX_VERSION=`cat VERSION`" >> $GITHUB_ENV
|
|
|
|
- name: 📦 Bundle DEB
|
|
run: |
|
|
cp -r build/DEBIAN build/DebDir
|
|
dpkg-deb -Zgzip --build build/DebDir
|
|
mv build/DebDir.deb imhex-${{env.IMHEX_VERSION}}-Ubuntu-22.04-x86_64.deb
|
|
|
|
- name: ⬆️ Upload DEB
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: Ubuntu 22.04 DEB x86_64
|
|
path: '*.deb'
|
|
|
|
# AppImage build
|
|
appimage:
|
|
runs-on: ubuntu-22.04
|
|
name: ⬇️ AppImage
|
|
steps:
|
|
|
|
- name: 🧰 Checkout
|
|
uses: actions/checkout@v3
|
|
with:
|
|
submodules: recursive
|
|
|
|
- name: 📜 Setup ccache
|
|
uses: hendrikmuhs/ccache-action@v1.2
|
|
with:
|
|
key: ${{ runner.os }}-appimage-${{ secrets.CACHE_VERSION }}-build-${{ github.run_id }}
|
|
restore-keys: ${{ runner.os }}-appimage-${{ secrets.CACHE_VERSION }}-build
|
|
max-size: 50M
|
|
|
|
- name: 📜 Restore CMakeCache
|
|
uses: actions/cache@v3
|
|
with:
|
|
path: |
|
|
build-appimage/CMakeCache.txt
|
|
key: ${{ runner.os }}-appimage-${{ secrets.CACHE_VERSION }}-build-${{ hashFiles('**/CMakeLists.txt') }}
|
|
|
|
- name: ⬇️ Install dependencies
|
|
run: |
|
|
sudo apt update
|
|
sudo bash dist/get_deps_debian.sh
|
|
|
|
sudo apt install -y python3-pip python3-setuptools desktop-file-utils libgdk-pixbuf2.0-dev fuse
|
|
sudo wget https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage -O /usr/local/bin/appimagetool
|
|
sudo chmod +x /usr/local/bin/appimagetool
|
|
sudo pip3 install git+https://github.com/iTrooz/appimage-builder@dpkg-package-versions
|
|
|
|
- name: 📜 Set version variable
|
|
run: |
|
|
echo "IMHEX_VERSION=`cat VERSION`" >> $GITHUB_ENV
|
|
|
|
# AppImage cmake build
|
|
- name: 🛠️ Build
|
|
run: |
|
|
mkdir -p build-appimage
|
|
cd build-appimage
|
|
CC=gcc-12 CXX=g++-12 cmake \
|
|
-DCMAKE_BUILD_TYPE=$BUILD_TYPE \
|
|
-DCMAKE_INSTALL_PREFIX="/usr" \
|
|
-DCMAKE_C_COMPILER_LAUNCHER=ccache \
|
|
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache \
|
|
-DIMHEX_PATTERNS_PULL_MASTER=ON \
|
|
-DIMHEX_COMMIT_HASH_SHORT="${GITHUB_SHA::7}" \
|
|
-DIMHEX_COMMIT_HASH_LONG="${GITHUB_SHA}" \
|
|
-DIMHEX_COMMIT_BRANCH="${GITHUB_REF##*/}" \
|
|
-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON \
|
|
-DIMHEX_PLUGINS_IN_SHARE=ON \
|
|
-DIMHEX_USE_BUNDLED_CA=ON \
|
|
..
|
|
make -j 4 install DESTDIR=AppDir
|
|
|
|
- name: 📦 Bundle AppImage
|
|
run: |
|
|
cd build-appimage
|
|
export VERSION=${{env.IMHEX_VERSION}}
|
|
appimage-builder --recipe ../dist/AppImageBuilder.yml
|
|
|
|
- name: ⬆️ Upload AppImage
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: Linux AppImage x86_64
|
|
path: 'build-appimage/*.AppImage'
|
|
|
|
- name: ⬆️ Upload AppImage zsync
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: Linux AppImage zsync x86_64
|
|
path: 'build-appimage/*.AppImage.zsync'
|
|
|
|
# ArchLinux build
|
|
archlinux-build:
|
|
name: 🐧 ArchLinux
|
|
runs-on: ubuntu-latest
|
|
|
|
container:
|
|
image: archlinux:base-devel
|
|
|
|
steps:
|
|
- name: ⬇️ Update all packages
|
|
run: |
|
|
pacman -Syyu --noconfirm
|
|
|
|
- name: ⬇️ Install setup dependencies
|
|
run: |
|
|
pacman -Syu git ccache --noconfirm
|
|
|
|
- name: 🧰 Checkout
|
|
uses: actions/checkout@v3
|
|
with:
|
|
submodules: recursive
|
|
|
|
- name: ⬇️ Install ImHex dependencies
|
|
run: |
|
|
dist/get_deps_archlinux.sh --noconfirm
|
|
|
|
- name: 📜 Setup ccache
|
|
uses: hendrikmuhs/ccache-action@v1.2
|
|
with:
|
|
key: archlinux-${{ secrets.CACHE_VERSION }}-build-${{ github.run_id }}
|
|
restore-keys: archlinux-${{ secrets.CACHE_VERSION }}-build
|
|
max-size: 50M
|
|
|
|
- name: 📜 Restore CMakeCache
|
|
uses: actions/cache@v3
|
|
with:
|
|
path: |
|
|
build/CMakeCache.txt
|
|
key: archlinux-${{ secrets.CACHE_VERSION }}-build-${{ hashFiles('**/CMakeLists.txt') }}
|
|
|
|
# ArchLinux cmake build
|
|
- name: 🛠️ Build
|
|
run: |
|
|
mkdir -p build
|
|
cd build
|
|
CC=gcc CXX=g++ cmake \
|
|
-DCMAKE_BUILD_TYPE=$BUILD_TYPE \
|
|
-DCMAKE_INSTALL_PREFIX="/usr" \
|
|
-DCMAKE_C_COMPILER_LAUNCHER=ccache \
|
|
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache \
|
|
-DUSE_SYSTEM_CURL=ON \
|
|
-DUSE_SYSTEM_FMT=ON \
|
|
-DUSE_SYSTEM_YARA=ON \
|
|
-DUSE_SYSTEM_NLOHMANN_JSON=ON \
|
|
-DUSE_SYSTEM_CAPSTONE=OFF \
|
|
-DIMHEX_PATTERNS_PULL_MASTER=ON \
|
|
-DIMHEX_COMMIT_HASH_SHORT="${GITHUB_SHA::7}" \
|
|
-DIMHEX_COMMIT_HASH_LONG="${GITHUB_SHA}" \
|
|
-DIMHEX_COMMIT_BRANCH="${GITHUB_REF##*/}" \
|
|
-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON \
|
|
..
|
|
make -j 4 install DESTDIR=installDir
|
|
|
|
- name: 📜 Set version variable
|
|
run: |
|
|
echo "IMHEX_VERSION=`cat VERSION`" >> $GITHUB_ENV
|
|
|
|
- name: ✒️ Prepare PKGBUILD
|
|
run: |
|
|
cp dist/Arch/PKGBUILD build
|
|
sed -i 's/%version%/${{env.IMHEX_VERSION}}/g' build/PKGBUILD
|
|
|
|
# makepkg doesn't want to run as root, so I had to chmod 777 all over
|
|
- name: 📦 Package ArchLinux .pkg.tar.zst
|
|
run: |
|
|
cd build
|
|
|
|
# the name is a small trick to make makepkg recognize it as the source
|
|
# else, it would try to download the file from the release
|
|
tar -cvf imhex-${{env.IMHEX_VERSION}}-ArchLinux-x86_64.pkg.tar.zst -C installDir .
|
|
|
|
chmod -R 777 .
|
|
|
|
sudo -u nobody makepkg
|
|
|
|
# Replace the old file
|
|
rm imhex-${{env.IMHEX_VERSION}}-ArchLinux-x86_64.pkg.tar.zst
|
|
mv *.pkg.tar.zst imhex-${{env.IMHEX_VERSION}}-ArchLinux-x86_64.pkg.tar.zst
|
|
|
|
- name: ⬆️ Upload imhex-archlinux.pkg.tar.zst
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: ArchLinux .pkg.tar.zst x86_64
|
|
path: |
|
|
build/imhex-${{env.IMHEX_VERSION}}-ArchLinux-x86_64.pkg.tar.zst
|
|
|
|
# RPM distro builds
|
|
rpm-build:
|
|
strategy:
|
|
matrix:
|
|
include:
|
|
- name: Fedora
|
|
mock_release: rawhide
|
|
release_num: rawhide
|
|
mock_config: fedora-rawhide
|
|
- name: Fedora
|
|
mock_release: f38
|
|
release_num: 38
|
|
mock_config: fedora-38
|
|
- name: Fedora
|
|
mock_release: f37
|
|
release_num: 37
|
|
mock_config: fedora-37
|
|
- name: RHEL-AlmaLinux
|
|
mock_release: epel9
|
|
release_num: 9
|
|
mock_config: "alma+epel-9"
|
|
|
|
name: 🐧 ${{ matrix.name }} ${{ matrix.release_num }}
|
|
runs-on: ubuntu-latest
|
|
|
|
container:
|
|
image: "fedora:latest"
|
|
options: --privileged
|
|
|
|
steps:
|
|
- name: ⬇️ Install git-core
|
|
run: dnf install --disablerepo="*" --enablerepo="fedora" git-core -y
|
|
|
|
- name: 🧰 Checkout
|
|
uses: actions/checkout@v3
|
|
with:
|
|
path: ImHex
|
|
submodules: recursive
|
|
|
|
- name: 📜 Setup DNF Cache
|
|
uses: actions/cache@v3
|
|
with:
|
|
path: /var/cache/dnf
|
|
key: ${{ matrix.mock_release }}-${{secrets.CACHE_VERSION }}-dnf-${{ github.run_id }}
|
|
restore-keys: |
|
|
${{ matrix.mock_release }}-${{secrets.CACHE_VERSION }}-dnf-
|
|
|
|
- name: ⬇️ Update all packages and install dependencies
|
|
run: |
|
|
dnf upgrade --disablerepo="*" --enablerepo="fedora,updates" -y
|
|
dnf install --disablerepo="*" --enablerepo="fedora,updates" -y \
|
|
fedpkg \
|
|
ccache
|
|
|
|
- name: 📜 Setup ccache
|
|
uses: hendrikmuhs/ccache-action@v1.2.5
|
|
with:
|
|
key: rpm-${{ matrix.mock_release }}-${{ secrets.CACHE_VERSION }}-build-${{ github.run_id }}
|
|
restore-keys: rpm-${{ matrix.mock_release }}-${{ secrets.CACHE_VERSION }}-build
|
|
max-size: 1G
|
|
|
|
- name: 📜 Set version variable
|
|
run: |
|
|
echo "IMHEX_VERSION=`cat ImHex/VERSION`" >> $GITHUB_ENV
|
|
|
|
- name: 🗜️ Create tarball from sources with dependencies
|
|
run: tar --exclude-vcs -czf $GITHUB_WORKSPACE/imhex-$IMHEX_VERSION.tar.gz ImHex
|
|
|
|
- name: ✒️ Modify spec file
|
|
run: |
|
|
sed -i \
|
|
-e 's/Version: [0-9]*\.[0-9]*\.[0-9]*$/Version: ${{env.IMHEX_VERSION}}/g' \
|
|
-e 's/IMHEX_OFFLINE_BUILD=ON/IMHEX_OFFLINE_BUILD=OFF/g' \
|
|
-e '/IMHEX_OFFLINE_BUILD=OFF/a -D IMHEX_PATTERNS_PULL_MASTER=ON \\' \
|
|
-e '/BuildRequires: cmake/a BuildRequires: git-core' \
|
|
-e '/%files/a %{_datadir}/%{name}/' \
|
|
$GITHUB_WORKSPACE/ImHex/dist/rpm/imhex.spec
|
|
|
|
- name: 📜 Fix ccache on EL9
|
|
if: matrix.mock_release == 'epel9'
|
|
run: sed -i '/\. \/opt\/rh\/gcc-toolset-12\/enable/a PATH=/usr/lib64/ccache:$PATH' $GITHUB_WORKSPACE/ImHex/dist/rpm/imhex.spec
|
|
|
|
- name: 🟩 Copy spec file to build root
|
|
run: mv $GITHUB_WORKSPACE/ImHex/dist/rpm/imhex.spec $GITHUB_WORKSPACE/imhex.spec
|
|
|
|
- name: 📜 Enable ccache for mock
|
|
run: |
|
|
cat <<EOT > $GITHUB_WORKSPACE/mock.cfg
|
|
include('${{ matrix.mock_config }}-x86_64.cfg')
|
|
config_opts['plugin_conf']['ccache_enable'] = True
|
|
config_opts['plugin_conf']['ccache_opts']['max_cache_size'] = '1G'
|
|
config_opts['plugin_conf']['ccache_opts']['compress'] = True
|
|
config_opts['plugin_conf']['ccache_opts']['dir'] = "$GITHUB_WORKSPACE/.ccache"
|
|
EOT
|
|
|
|
- name: 📜 Setup Mock Cache
|
|
uses: actions/cache@v3
|
|
with:
|
|
path: /var/cache/mock
|
|
key: ${{ matrix.mock_release }}-${{ secrets.CACHE_VERSION }}-mock-${{ github.run_id }}
|
|
restore-keys: |
|
|
${{ matrix.mock_release }}-${{ secrets.CACHE_VERSION }}-mock-
|
|
|
|
# Fedora cmake build (in imhex.spec)
|
|
- name: 📦 Build RPM
|
|
run: |
|
|
fedpkg --path $GITHUB_WORKSPACE --release ${{ matrix.mock_release }} mockbuild --enable-network -N --root $GITHUB_WORKSPACE/mock.cfg extra_args -- -v
|
|
|
|
- name: 🟩 Move and rename finished RPM
|
|
run: |
|
|
mv $GITHUB_WORKSPACE/results_imhex/${{env.IMHEX_VERSION}}/*/imhex-${{env.IMHEX_VERSION}}-0.*.x86_64.rpm \
|
|
$GITHUB_WORKSPACE/imhex-${{env.IMHEX_VERSION}}-${{matrix.name}}-${{matrix.release_num}}-x86_64.rpm
|
|
|
|
- name: ⬆️ Upload RPM
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: ${{ matrix.name }} ${{ matrix.release_num }} RPM x86_64
|
|
path: |
|
|
imhex-${{env.IMHEX_VERSION}}-${{matrix.name}}-${{matrix.release_num}}-x86_64.rpm
|