1
0
Fork 0
forked from lthn/blockchain
blockchain/.github/workflows/build-linux.yml
2025-08-30 17:46:00 +01:00

118 lines
No EOL
3.5 KiB
YAML

name: build-linux
on:
workflow_call:
inputs:
chain-network:
description: "The network to use, can either be testnet, stagenet or mainnet"
default: testnet
required: false
type: string
build-cli:
description: "Should the CLI be built"
default: true
required: false
type: boolean
build-gui:
description: "Should the GUI be built"
default: true
required: false
type: boolean
release:
description: "Make a release"
default: true
required: false
type: boolean
jobs:
build:
name: Linux
runs-on: ubuntu-22.04
steps:
- name: Checkout Project
uses: actions/checkout@v4.2.2
with:
fetch-depth: 0
submodules: recursive
- name: install dependencies
run: sudo apt-get install -y autotools-dev libicu-dev libbz2-dev git screen checkinstall zlib1g-dev ccache miniupnpc
- name: ccache caching
uses: actions/cache@v4
with:
path: ${{ github.workspace }}/build/ccache
key: ccache-${{ inputs.chain-network }}-${{ runner.os }}
- name: Install boost
uses: MarkusJx/install-boost@6d8df42f57de83c5b326b5b83e7b35d650030103
id: install-boost
with:
boost_version: 1.84.0
boost_install_dir: ${{ github.workspace }}/build/boost_1_84_0
platform_version: 22.04
toolset: gcc
arch: x86
- name: Install Qt
if: ${{ inputs.build-gui }}
uses: jurplel/install-qt-action@v3
with:
dir: '${{ github.workspace }}/build/qt/'
aqtversion: '==3.1.*'
version: '6.8.3'
host: 'linux'
target: 'desktop'
arch: 'linux_gcc_64'
modules: 'qt5compat qtwebengine qtwebchannel qtpositioning'
- name: Build CLI
if: ${{ inputs.build-cli }}
uses: ./.github/actions/cmake-build
with:
jobs: '4'
build-type: 'Release'
chain-network: ${{ inputs.chain-network }}
boost-root: ${{ steps.install-boost.outputs.BOOST_ROOT }}
target: 'daemon simplewallet connectivity_tool'
static: 'true'
arch: 'x86-64'
- name: CLI Artifacts
if: ${{ inputs.build-cli }}
uses: ./.github/actions/sign-and-upload-release
with:
chain-network: ${{ inputs.chain-network }}
release-tag: ${{ github.ref_name }}
release: "${{ inputs.release }}"
assets: |
zanod
simplewallet
connectivity_tool
asset-type: 'cli'
asset-directory: ${{ github.workspace }}/build/release/src
- name: Build GUI
if: ${{ inputs.build-gui }}
uses: ./.github/actions/cmake-build
with:
jobs: '4'
build-type: 'Release'
chain-network: ${{ inputs.chain-network }}
boost-root: ${{ steps.install-boost.outputs.BOOST_ROOT }}
target: 'Zano'
build-gui: 'true'
static: 'true'
arch: 'x86-64'
- name: GUI Artifacts
if: ${{ inputs.build-gui }}
uses: ./.github/actions/sign-and-upload-release
with:
chain-network: ${{ inputs.chain-network }}
release-tag: ${{ github.ref_name }}
release: "${{ inputs.release }}"
assets: |
Zano
asset-type: 'gui'
asset-directory: ${{ github.workspace }}/build/release/src