Skip to content

Fixed errors causing primenet.py to crash. (#20) #249

Fixed errors causing primenet.py to crash. (#20)

Fixed errors causing primenet.py to crash. (#20) #249

Workflow file for this run

name: CI
on:
push:
pull_request:
schedule:
- cron: '0 0 1 * *'
jobs:
CUDALucas:
name: CUDALucas
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-20.04, ubuntu-22.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 '/^nohup / s/^/# /' cudalucas.sh
sed -i '/^python3 / s/^/# /' cudalucas.sh
sed -i '/^crontab / s/^/# /' cudalucas.sh
gcc --version
- name: Script
run: bash -e -o pipefail -- cudalucas.sh ANONYMOUS
- uses: actions/upload-artifact@v3
if: always()
with:
name: ${{ matrix.os }}_cudalucas
path: |
cudalucas/
- name: ShellCheck
run: bash -c '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-const-correctness,misc-redundant-expression,misc-unused-*,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-anyofallof' -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]
cxx: [g++, clang++]
fail-fast: false
env:
CXX: ${{ matrix.cxx }}
steps:
- uses: actions/checkout@v4
- name: Install
run: |
sudo apt-get -yqq update
sudo apt-get -yqq install 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 / s/^/# /' gpuowl.sh
sed -i '/^crontab / s/^/# /' gpuowl.sh
$CXX --version
- name: Script
run: bash -e -o pipefail -- gpuowl.sh ANONYMOUS
- uses: actions/upload-artifact@v3
if: always()
with:
name: ${{ matrix.os }}_gpuowl
path: |
gpuowl/
- name: ShellCheck
run: bash -c '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]
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 / 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_v*/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
- name: GCC analyzer
if: ${{ matrix.os == 'ubuntu-22.04' && matrix.cc == 'gcc' }}
run: |
set -x
cd mlucas_v*/obj/ && $CC -c -fdiagnostics-color -g -O3 -march=native -DUSE_THREADS -fanalyzer ../src/*.c |& tee analyzer.log
make clean
echo -e '## GCC analyzer\n```' >> $GITHUB_STEP_SUMMARY
grep 'warning:' analyzer.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
- name: Clang-Tidy
if: ${{ matrix.cc == 'clang' }}
run: |
set -x
cd mlucas_v*/obj/ && clang-tidy --use-color -checks='bugprone-*,cert-*,clang-analyzer-*,concurrency-*,misc-const-correctness,misc-redundant-expression,misc-unused-*,modernize-*,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-anyofallof' -header-filter='.*' ../src/*.c -- -Wall -O3 -march=native -DUSE_THREADS |& tee clang-tidy.log
echo -e '## Clang-Tidy\n```' >> $GITHUB_STEP_SUMMARY
grep 'warning:' clang-tidy.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@v3
if: always()
with:
name: ${{ matrix.os }}_${{ matrix.cc }}_mlucas
path: |
mlucas_v*/
- name: ShellCheck
run: bash -c '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 colorized --py-version 2.6 -d design,C0103,W0311,C0301,C0302,C0209 --load-plugins pylint.extensions.code_style,pylint.extensions.emptystring,pylint.extensions.comparetozero,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 -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 --output-format=github --target-version py37 --select F,E,W,I,D,UP,YTT,S,BLE,B,A,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 E101,E501,W191,D211,D213,D401,UP004,UP009,UP010,UP024,UP030,UP032,UP036,PYI024,PLR09,PLR2004,S324,S603,RUF001,RUF002,RUF003,RUF005 .
continue-on-error: true
Linux:
name: PrimeNet Linux
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-20.04, ubuntu-22.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 https://raw.github.com/tdulcet/Linux-System-Information/master/info.sh -qO - | 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: macos-latest
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: |
python -m pip install --upgrade pip
python -m pip install requests
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
python -c 'import platform; print(platform.mac_ver())'
python3 -X dev -c 'import platform; print(platform.mac_ver())'
python primenet.py --help
python3 -X dev primenet.py --help
Windows:
name: PrimeNet Windows
runs-on: windows-latest
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
wmic cpu get NumberOfCores,NumberOfLogicalProcessors
wmic cpu get MaxClockSpeed
wmic memphysical get MaxCapacity
python -X dev -c "import platform; print(platform.win32_ver())"
python -X dev primenet.py --help