Skip to content

Merge pull request #56 from ixfd64/params-macros #246

Merge pull request #56 from ixfd64/params-macros

Merge pull request #56 from ixfd64/params-macros #246

Workflow file for this run

name: mfakto CI
on:
push:
paths-ignore:
- '**/*.txt'
- 'COPYING'
- '.gitignore'
pull_request:
paths-ignore:
- '**/*.txt'
- 'COPYING'
- '.gitignore'
types:
- 'opened'
- 'reopened'
- 'synchronize'
- 'ready_for_review'
jobs:
Linux:
name: Linux
runs-on: ubuntu-24.04
env:
CC: gcc
CPP: g++
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: |
sudo apt-get install -y ocl-icd-opencl-dev pocl-opencl-icd
- name: Build
run: |
make -C src -O -j "$(nproc)" CC=${CC} CPP=${CPP}
- name: Test
run: |
./mfakto -d 11
- name: Upload build artifacts
uses: actions/upload-artifact@v4
with:
name: mfakto-linux64
path: |
*.cl
Changelog-mfakto.txt
COPYING
datatypes.h
mfakto
mfakto.ini
README-SpecialVersions.txt
README.txt
tf_debug.h
todo.txt
- name: Create artifacts and release assets
if: startsWith(github.ref, 'refs/tags/')
run: |
tar cvjf mfakto-linux64.tar.bz2 *.cl Changelog-mfakto.txt COPYING datatypes.h mfakto mfakto.ini README-SpecialVersions.txt README.txt tf_debug.h todo.txt
- name: Release
uses: softprops/action-gh-release@v2
if: startsWith(github.ref, 'refs/tags/')
with:
files: |
mfakto-linux64.tar.bz2
WindowsMSVC:
name: Windows MSVC
runs-on: windows-2022
steps:
- uses: actions/checkout@v4
- uses: ilammy/msvc-dev-cmd@v1
- name: Install dependencies
run: |
vcpkg integrate install --vcpkg-root=c:\vcpkg
- name: Build
run: |
msbuild mfaktoVS12.vcxproj /property:Configuration=Release
- name: Create artifacts and release assets
run: |
Copy-Item -Path Changelog-mfakto.txt, COPYING, README-SpecialVersions.txt, README.txt, todo.txt -Destination x64/Release/
Compress-Archive -DestinationPath mfakto-windows-msvc.zip -CompressionLevel Optimal -Path x64/Release/*
- name: Upload build artifacts
uses: actions/upload-artifact@v4
with:
name: mfakto-windows-msvc
path: x64/Release/
- name: Release
uses: softprops/action-gh-release@v2
if: startsWith(github.ref, 'refs/tags/')
with:
files: |
mfakto-windows-msvc.zip
WindowsMSYS2:
name: Windows MSYS2
runs-on: windows-2022
env:
CC: gcc
CPP: g++
steps:
- uses: actions/checkout@v4
- name: Configure paths
run: |
echo "C:\msys64\mingw64\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
echo "C:\msys64\usr\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
- name: Install dependencies
run: |
pacman -S --needed --noconfirm mingw-w64-x86_64-opencl-icd mingw-w64-x86_64-opencl-headers
- name: Build
run: |
make -C src -O -j $env:NUMBER_OF_PROCESSORS CC=$env:CC CPP=$env:CPP AMD_APP_INCLUDE="-IC:\msys64\mingw64\include" AMD_APP_LIB="-LC:\msys64\mingw64\lib"
- name: Upload build artifacts
uses: actions/upload-artifact@v4
with:
name: mfakto-windows-msys2
path: |
*.cl
Changelog-mfakto.txt
COPYING
datatypes.h
mfakto.exe
mfakto.ini
README-SpecialVersions.txt
README.txt
tf_debug.h
todo.txt
- name: Create artifacts and release assets
if: startsWith(github.ref, 'refs/tags/')
run: |
Compress-Archive -DestinationPath mfakto-windows-msys2.zip -CompressionLevel Optimal -Path *.cl, Changelog-mfakto.txt, COPYING, datatypes.h, mfakto.exe, mfakto.ini, README-SpecialVersions.txt, README.txt, tf_debug.h, todo.txt
- name: Release
uses: softprops/action-gh-release@v2
if: startsWith(github.ref, 'refs/tags/')
with:
files: |
mfakto-windows-msys2.zip
macOS:
name: macOS
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [macos-14, macos-15-intel]
fail-fast: false
env:
CC: clang
CPP: clang++
# needed for Homebrew 4.6.4 and above
HOMEBREW_DEVELOPER: '1'
# Used by CI workflow file. For mapping from "runs-on" / "os" to architecture, see:
# https://docs.github.com/en/actions/how-tos/write-workflows/choose-where-workflows-run/choose-the-runner-for-a-job#standard-github-hosted-runners-for-public-repositories
SELFARCH: ${{ matrix.os == 'macos-15-intel' && 'X64' || 'ARM64' }}
# Just because we use a new builder doesn't mean we don't want the build to run on an older OS
MACOSX_DEPLOYMENT_TARGET: 11.0.0
steps:
- uses: actions/checkout@v4
# - name: Install dependencies
# run: |
# brew install pocl
# workaround for PoCL 7.0[.x] issues - see https://github.com/actions/runner-images/issues/12775#issuecomment-3226624291
- name: Install PoCL 6.0.1
run: |
pocl_commit="165dae39781a8150f265d2fae6ea036964dbaad8"
pocl_rb_link="https://raw.githubusercontent.com/Homebrew/homebrew-core/$pocl_commit/Formula/p/pocl.rb"
mkdir -p /tmp/pocl
curl -fsSL "$pocl_rb_link" -o /tmp/pocl/pocl.rb
brew install --formula /tmp/pocl/pocl.rb
- name: Build with PoCL
run: |
make -C src -j "$(sysctl -n hw.ncpu)" CC=${CC} CPP=${CPP} AMD_APP_INCLUDE="$(pkg-config --cflags pocl)" AMD_APP_LIB="$(pkg-config --libs pocl)"
- name: Test
run: |
./mfakto -d 11
- name: Clean up build
run: |
make -C src clean
- name: Build for native OpenCL
run: |
make -C src -j "$(sysctl -n hw.ncpu)" CC=${CC} CPP=${CPP}
- name: Upload build artifacts
uses: actions/upload-artifact@v4
with:
name: mfakto-macos-${{ env.SELFARCH }}
path: |
*.cl
Changelog-mfakto.txt
COPYING
datatypes.h
mfakto
mfakto.ini
README-SpecialVersions.txt
README.txt
tf_debug.h
todo.txt
- name: Create artifacts and release assets
if: startsWith(github.ref, 'refs/tags/')
run: |
tar cvjf mfakto-macos-${{ env.SELFARCH }}.tar.bz2 *.cl Changelog-mfakto.txt COPYING datatypes.h mfakto mfakto.ini README-SpecialVersions.txt README.txt tf_debug.h todo.txt
- name: Release
uses: softprops/action-gh-release@v2
if: startsWith(github.ref, 'refs/tags/')
with:
files: |
mfakto-macos-${{ env.SELFARCH }}.tar.bz2