Updated scripts for MPrime 30.19 build 15 and CI to add Ubuntu 24.04. #270
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
on: | |
push: | |
pull_request: | |
schedule: | |
- cron: '0 0 1 * *' | |
env: | |
PIP_BREAK_SYSTEM_PACKAGES: 1 | |
jobs: | |
CUDALucas: | |
name: CUDALucas | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [ubuntu-20.04, ubuntu-22.04, ubuntu-24.04] | |
fail-fast: false | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Before script | |
run: | | |
sed -i '/^GPU=/,/^fi/ s/^/# /' cudalucas.sh | |
sed -i 's/ -flto//' cudalucas.sh | |
sed -i '/^if ! COMPUTE=/,/^fi/ s/^/# /' cudalucas.sh | |
sed -i 's/\/$COMPUTE/\/-gencode arch=compute_35,code=sm_35 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_70,code=sm_70/' cudalucas.sh | |
sed -i '/^\.\/CUDALucas / s/^/# /' cudalucas.sh | |
sed -i '/^timeout / s/^/# /' cudalucas.sh | |
sed -i '/^nohup / s/^/# /' cudalucas.sh | |
sed -i '/^python3 -OO / s/^/# /' cudalucas.sh | |
gcc --version | |
- name: Script | |
run: bash -e -o pipefail -- cudalucas.sh ANONYMOUS | |
- uses: actions/upload-artifact@v4 | |
if: always() | |
with: | |
name: ${{ matrix.os }}_cudalucas | |
path: | | |
cudalucas/ | |
- name: ShellCheck | |
run: shopt -s globstar; shellcheck -o avoid-nullary-conditions,check-extra-masked-returns,check-set-e-suppressed,deprecate-which,quote-safe-variables,require-double-brackets -s bash **/*.sh | |
continue-on-error: true | |
- name: Clang-Tidy | |
run: cd cudalucas && clang-tidy --use-color -checks='bugprone-*,cert-*,clang-analyzer-*,concurrency-*,misc-*,-misc-no-recursion,performance-*,portability-*,readability-const-return-type,readability-container-*,readability-duplicate-include,readability-else-after-return,readability-make-member-function-cons,readability-non-const-parameter,readability-redundant-*,readability-simplify-*,readability-string-compare,readability-use-*' -header-filter='.*' *.c *.cu -- -Wall -O3 --cuda-gpu-arch=sm_35 | |
GpuOwl: | |
name: GpuOwl | |
runs-on: ${{ matrix.os }} | |
continue-on-error: ${{ matrix.cxx == 'clang++' && matrix.os == 'ubuntu-22.04' }} | |
strategy: | |
matrix: | |
os: [ubuntu-20.04, ubuntu-22.04, ubuntu-24.04] | |
cxx: [g++, clang++] | |
fail-fast: false | |
env: | |
CXX: ${{ matrix.cxx }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install | |
run: | | |
sudo apt-get update -y | |
sudo apt-get install -y ocl-icd-opencl-dev pocl-opencl-icd | |
- name: Before script | |
run: | | |
sed -i '/^GPU=/,/^fi/ s/^/# /' gpuowl.sh | |
sed -i '/^nohup / s/^/# /' gpuowl.sh | |
sed -i '/^python3 -OO / s/^/# /' gpuowl.sh | |
$CXX --version | |
- name: Script | |
run: bash -e -o pipefail -- gpuowl.sh ANONYMOUS | |
- uses: actions/upload-artifact@v4 | |
if: always() | |
with: | |
name: ${{ matrix.os }}_${{ matrix.cxx }}_gpuowl | |
path: | | |
gpuowl/ | |
- name: ShellCheck | |
run: shopt -s globstar; shellcheck -o avoid-nullary-conditions,check-extra-masked-returns,check-set-e-suppressed,deprecate-which,quote-safe-variables,require-double-brackets -s bash **/*.sh | |
continue-on-error: true | |
Mlucas: | |
name: Mlucas | |
runs-on: ${{ matrix.os }} | |
continue-on-error: ${{ matrix.cc == 'clang' }} | |
strategy: | |
matrix: | |
os: [ubuntu-20.04, ubuntu-22.04, ubuntu-24.04] | |
cc: [gcc, clang] | |
fail-fast: false | |
env: | |
CC: ${{ matrix.cc }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Before script | |
run: | | |
sed -i '/^[[:blank:]]*nohup / s/^/# /' mlucas.sh | |
sed -i '/^python3 -OO / s/^/# /' mlucas.sh | |
$CC --version | |
- name: Script | |
run: | | |
set -x | |
bash -e -o pipefail -- mlucas.sh ANONYMOUS | |
echo -e '## Warnings\n```' >> $GITHUB_STEP_SUMMARY | |
grep 'warning:' Mlucas/obj/build.log | sed 's/\x1B\[\([0-9]\+\(;[0-9]\+\)*\)\?m//g' | awk '{ print $NF }' | sort | uniq -c | sort -nr >> $GITHUB_STEP_SUMMARY | |
echo '```' >> $GITHUB_STEP_SUMMARY | |
- uses: actions/upload-artifact@v4 | |
if: always() | |
with: | |
name: ${{ matrix.os }}_${{ matrix.cc }}_mlucas | |
path: | | |
Mlucas/ | |
- name: ShellCheck | |
run: shopt -s globstar; shellcheck -o avoid-nullary-conditions,check-extra-masked-returns,check-set-e-suppressed,deprecate-which,quote-safe-variables,require-double-brackets -s bash **/*.sh | |
continue-on-error: true | |
Pylint: | |
name: Pylint | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install dependencies | |
run: | | |
python3 -m pip install --upgrade pip | |
python3 -m pip install pylint | |
- name: Script | |
run: pylint -f github --py-version 2.6 -d design,C0103,W0311,C0301,C0302,C0209 --load-plugins pylint.extensions.code_style,pylint.extensions.comparison_placement,pylint.extensions.for_any_all,pylint.extensions.consider_refactoring_into_while_condition,pylint.extensions.consider_ternary_expression,pylint.extensions.dict_init_mutate,pylint.extensions.docstyle,pylint.extensions.check_elif,pylint.extensions.set_membership,pylint.extensions.typing -e R6104,C1804,C1805 -r y *.py mprime-python-port/*.py | |
continue-on-error: true | |
Ruff: | |
name: Ruff | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install dependencies | |
run: | | |
python3 -m pip install --upgrade pip | |
python3 -m pip install ruff | |
- name: Script | |
run: ruff check --output-format=github --target-version py37 --select F,E4,E7,E9,W,I,D,UP,YTT,S,BLE,B,A,COM819,C4,T10,EM,EXE,ISC,ICN,G,PIE,PYI,Q,RSE,RET,SLF,SLOT,SIM,TID,TCH,ARG,PGH,PL,TRY,PERF,FURB,LOG,RUF --preview --ignore W191,D211,D213,D401,UP004,UP009,UP010,UP024,UP030,UP032,UP036,PYI024,PLR09,PLR1702,PLR2004,S324,S404,S603,FURB101,FURB167,RUF001,RUF002,RUF003,RUF005,RUF023 . | |
continue-on-error: true | |
Linux: | |
name: PrimeNet Linux | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [ubuntu-20.04, ubuntu-22.04, ubuntu-24.04] | |
fail-fast: false | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install dependencies | |
run: | | |
python3 -m pip install --upgrade pip | |
python3 -m pip install requests | |
- name: Script | |
run: | | |
set -x | |
wget -qO - https://raw.github.com/tdulcet/Linux-System-Information/master/info.sh | bash -s -- | |
python3 -X dev -c 'import platform; print(platform.freedesktop_os_release())' || true | |
python3 -X dev primenet.py --help | |
macOS: | |
name: PrimeNet macOS | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [macos-13, macos-latest] | |
fail-fast: false | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install dependencies | |
run: | | |
python3 -m pip install --upgrade pip | |
python3 -m pip install requests | |
- name: Script | |
run: | | |
set -x | |
sysctl -n machdep.cpu.brand_string | |
sysctl -n hw.physicalcpu_max hw.logicalcpu_max | |
sysctl -n hw.cpufrequency hw.cpufrequency_max hw.tbfrequency kern.clockrate | |
sysctl -n hw.memsize | |
python3 -X dev -c 'import platform; print(platform.mac_ver())' | |
python3 -X dev primenet.py --help | |
Windows: | |
name: PrimeNet Windows | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [windows-2019, windows-latest] | |
fail-fast: false | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
python -m pip install requests | |
- name: Script | |
run: | | |
wmic cpu get name | |
Get-CimInstance Win32_Processor | Select Name | |
wmic cpu get NumberOfCores,NumberOfLogicalProcessors | |
Get-CimInstance Win32_Processor | Select NumberOfCores,NumberOfLogicalProcessors | |
wmic cpu get MaxClockSpeed | |
Get-CimInstance Win32_Processor | Select MaxClockSpeed | |
wmic memphysical get MaxCapacity | |
Get-CimInstance Win32_PhysicalMemoryArray | Select MaxCapacity | |
python -X dev -c "import platform; print(platform.win32_ver())" | |
python -X dev primenet.py --help |