- Create miner/README.md documenting standalone C++ mining tools - Update miner/core and miner/proxy READMEs with EUPL-1.2 license - Add GitHub Actions workflow for multi-platform miner releases - Add Makefile targets: build-miner, build-miner-core, build-miner-proxy - Update main README with standalone miner usage instructions The miner/ directory contains standalone CPU/GPU miner and stratum proxy that can be used independently without the GUI. Pre-built binaries will be published alongside Go releases. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
251 lines
7 KiB
YAML
251 lines
7 KiB
YAML
name: Miner Release
|
|
|
|
on:
|
|
push:
|
|
tags:
|
|
- 'miner-v*'
|
|
workflow_dispatch:
|
|
inputs:
|
|
version:
|
|
description: 'Version tag (e.g., 0.1.0)'
|
|
required: true
|
|
default: '0.1.0'
|
|
|
|
env:
|
|
BUILD_TYPE: Release
|
|
|
|
jobs:
|
|
build-linux:
|
|
name: Linux ${{ matrix.arch }}
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
matrix:
|
|
include:
|
|
- arch: x64
|
|
cmake_arch: x86_64
|
|
- arch: arm64
|
|
cmake_arch: aarch64
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
with:
|
|
submodules: recursive
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y \
|
|
build-essential \
|
|
cmake \
|
|
libuv1-dev \
|
|
libssl-dev \
|
|
libhwloc-dev \
|
|
git
|
|
|
|
- name: Build miner core
|
|
working-directory: miner/core
|
|
run: |
|
|
mkdir -p build && cd build
|
|
cmake .. \
|
|
-DCMAKE_BUILD_TYPE=$BUILD_TYPE \
|
|
-DWITH_OPENCL=OFF \
|
|
-DWITH_CUDA=OFF
|
|
cmake --build . --config $BUILD_TYPE -j$(nproc)
|
|
|
|
- name: Build miner proxy
|
|
working-directory: miner/proxy
|
|
run: |
|
|
mkdir -p build && cd build
|
|
cmake .. -DCMAKE_BUILD_TYPE=$BUILD_TYPE
|
|
cmake --build . --config $BUILD_TYPE -j$(nproc)
|
|
|
|
- name: Package binaries
|
|
run: |
|
|
mkdir -p dist
|
|
cp miner/core/build/miner dist/
|
|
cp miner/proxy/build/miner-proxy dist/
|
|
chmod +x dist/*
|
|
cd dist
|
|
tar -czvf ../miner-linux-${{ matrix.arch }}.tar.gz *
|
|
|
|
- name: Upload artifact
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: miner-linux-${{ matrix.arch }}
|
|
path: miner-linux-${{ matrix.arch }}.tar.gz
|
|
|
|
build-macos:
|
|
name: macOS ${{ matrix.arch }}
|
|
runs-on: macos-latest
|
|
strategy:
|
|
matrix:
|
|
include:
|
|
- arch: x64
|
|
cmake_osx_arch: x86_64
|
|
- arch: arm64
|
|
cmake_osx_arch: arm64
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
with:
|
|
submodules: recursive
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
brew install cmake libuv openssl hwloc
|
|
|
|
- name: Build miner core
|
|
working-directory: miner/core
|
|
env:
|
|
OSX_ARCH: ${{ matrix.cmake_osx_arch }}
|
|
run: |
|
|
mkdir -p build && cd build
|
|
cmake .. \
|
|
-DCMAKE_BUILD_TYPE=$BUILD_TYPE \
|
|
-DCMAKE_OSX_ARCHITECTURES=$OSX_ARCH \
|
|
-DWITH_OPENCL=OFF \
|
|
-DWITH_CUDA=OFF \
|
|
-DOPENSSL_ROOT_DIR=$(brew --prefix openssl)
|
|
cmake --build . --config $BUILD_TYPE -j$(sysctl -n hw.ncpu)
|
|
|
|
- name: Build miner proxy
|
|
working-directory: miner/proxy
|
|
env:
|
|
OSX_ARCH: ${{ matrix.cmake_osx_arch }}
|
|
run: |
|
|
mkdir -p build && cd build
|
|
cmake .. \
|
|
-DCMAKE_BUILD_TYPE=$BUILD_TYPE \
|
|
-DCMAKE_OSX_ARCHITECTURES=$OSX_ARCH \
|
|
-DOPENSSL_ROOT_DIR=$(brew --prefix openssl)
|
|
cmake --build . --config $BUILD_TYPE -j$(sysctl -n hw.ncpu)
|
|
|
|
- name: Package binaries
|
|
run: |
|
|
mkdir -p dist
|
|
cp miner/core/build/miner dist/
|
|
cp miner/proxy/build/miner-proxy dist/
|
|
chmod +x dist/*
|
|
cd dist
|
|
tar -czvf ../miner-macos-${{ matrix.arch }}.tar.gz *
|
|
|
|
- name: Upload artifact
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: miner-macos-${{ matrix.arch }}
|
|
path: miner-macos-${{ matrix.arch }}.tar.gz
|
|
|
|
build-windows:
|
|
name: Windows x64
|
|
runs-on: windows-latest
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
with:
|
|
submodules: recursive
|
|
|
|
- name: Setup MSVC
|
|
uses: microsoft/setup-msbuild@v2
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
vcpkg install libuv:x64-windows openssl:x64-windows
|
|
|
|
- name: Build miner core
|
|
working-directory: miner/core
|
|
run: |
|
|
mkdir build
|
|
cd build
|
|
cmake .. `
|
|
-DCMAKE_BUILD_TYPE=$env:BUILD_TYPE `
|
|
-DCMAKE_TOOLCHAIN_FILE="$env:VCPKG_INSTALLATION_ROOT/scripts/buildsystems/vcpkg.cmake" `
|
|
-DWITH_OPENCL=OFF `
|
|
-DWITH_CUDA=OFF
|
|
cmake --build . --config $env:BUILD_TYPE
|
|
|
|
- name: Build miner proxy
|
|
working-directory: miner/proxy
|
|
run: |
|
|
mkdir build
|
|
cd build
|
|
cmake .. `
|
|
-DCMAKE_BUILD_TYPE=$env:BUILD_TYPE `
|
|
-DCMAKE_TOOLCHAIN_FILE="$env:VCPKG_INSTALLATION_ROOT/scripts/buildsystems/vcpkg.cmake"
|
|
cmake --build . --config $env:BUILD_TYPE
|
|
|
|
- name: Package binaries
|
|
run: |
|
|
mkdir dist
|
|
Copy-Item miner/core/build/$env:BUILD_TYPE/miner.exe dist/
|
|
Copy-Item miner/proxy/build/$env:BUILD_TYPE/miner-proxy.exe dist/
|
|
Compress-Archive -Path dist/* -DestinationPath miner-windows-x64.zip
|
|
|
|
- name: Upload artifact
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: miner-windows-x64
|
|
path: miner-windows-x64.zip
|
|
|
|
release:
|
|
name: Create Release
|
|
needs: [build-linux, build-macos, build-windows]
|
|
runs-on: ubuntu-latest
|
|
if: startsWith(github.ref, 'refs/tags/')
|
|
|
|
steps:
|
|
- name: Download all artifacts
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
path: artifacts
|
|
|
|
- name: List artifacts
|
|
run: ls -la artifacts/*/
|
|
|
|
- name: Create Release
|
|
uses: softprops/action-gh-release@v1
|
|
with:
|
|
draft: false
|
|
prerelease: false
|
|
files: |
|
|
artifacts/miner-linux-x64/miner-linux-x64.tar.gz
|
|
artifacts/miner-linux-arm64/miner-linux-arm64.tar.gz
|
|
artifacts/miner-macos-x64/miner-macos-x64.tar.gz
|
|
artifacts/miner-macos-arm64/miner-macos-arm64.tar.gz
|
|
artifacts/miner-windows-x64/miner-windows-x64.zip
|
|
body: |
|
|
## Miner Suite
|
|
|
|
### Downloads
|
|
|
|
| Platform | Architecture | Download |
|
|
|----------|--------------|----------|
|
|
| Linux | x64 | `miner-linux-x64.tar.gz` |
|
|
| Linux | ARM64 | `miner-linux-arm64.tar.gz` |
|
|
| macOS | Intel | `miner-macos-x64.tar.gz` |
|
|
| macOS | Apple Silicon | `miner-macos-arm64.tar.gz` |
|
|
| Windows | x64 | `miner-windows-x64.zip` |
|
|
|
|
### Included Binaries
|
|
|
|
- `miner` - CPU/GPU cryptocurrency miner
|
|
- `miner-proxy` - Stratum proxy for mining farms
|
|
|
|
### Quick Start
|
|
|
|
```bash
|
|
# Extract
|
|
tar -xzf miner-linux-x64.tar.gz
|
|
|
|
# Run miner
|
|
./miner -o pool.example.com:3333 -u YOUR_WALLET -p x
|
|
|
|
# Run proxy
|
|
./miner-proxy -o pool.example.com:3333 -u YOUR_WALLET -b 0.0.0.0:3333
|
|
```
|
|
|
|
See [miner/README.md](miner/README.md) for full documentation.
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|