Skip to content

Merge remote-tracking branch 'upstream/master' #198

Merge remote-tracking branch 'upstream/master'

Merge remote-tracking branch 'upstream/master' #198

Workflow file for this run

name: Build
on:
push:
paths-ignore:
- '**/*.md'
pull_request:
paths-ignore:
- 'doc/**'
- 'contrib/**'
- '**/*.md'
jobs:
build:
name: ${{ matrix.name }}
env:
CMAKEJOBS: "4"
MAKEJOBS: "-j4"
SDK_URL: https://bitcoincore.org/depends-sources/sdks
strategy:
fail-fast: false
matrix:
name:
- linux-32-bit
- linux-64-bit
- windows-64-bit
- macos-intel-64-bit
- macos-arm-64-bit
- linux-arm-32-bit
- linux-arm-64-bit
- linux-power-64-bit
- linux-power-le-64-bit
- linux-riscv-64-bit
- linux-s390x
include:
- name: linux-32-bit
host: i686-pc-linux-gnu
os: ubuntu-24.04
packages: ""
check-security: false
check-symbols: false
dep-opts: ""
config-opts: "LDFLAGS=-static-libstdc++"
goal: build
- name: linux-64-bit
host: x86_64-pc-linux-gnu
os: ubuntu-24.04
packages: ""
check-security: false
check-symbols: false
dep-opts: ""
config-opts: "LDFLAGS=-static-libstdc++"
goal: build
- name: windows-64-bit
host: x86_64-w64-mingw32
arch: "i386"
os: ubuntu-24.04
packages: cmake curl g++ git make pkg-config nsis g++-mingw-w64-x86-64-posix build-essential bsdmainutils wine-binfmt binfmt-support wine64 wine32
postinstall: |
sudo update-alternatives --set x86_64-w64-mingw32-gcc /usr/bin/x86_64-w64-mingw32-gcc-posix
sudo update-alternatives --set x86_64-w64-mingw32-g++ /usr/bin/x86_64-w64-mingw32-g++-posix
sudo update-binfmts --import /usr/share/binfmts/wine
check-security: false
check-symbols: false
dep-opts: ""
config-opts: "LDFLAGS=-static-libgcc"
goal: build
- name: macos-intel-64-bit
host: x86_64-apple-darwin
os: ubuntu-24.04
packages: clang lld llvm g++ zip curl bsdmainutils cmake libz-dev python3-setuptools libtinfo6 xorriso
check-security: false
check-symbols: false
dep-opts: ""
config-opts: ""
goal: deploy
sdk: 15.0-15A240d
- name: macos-arm-64-bit
host: arm64-apple-darwin
os: ubuntu-24.04
packages: clang lld llvm g++ zip curl bsdmainutils cmake libz-dev python3-setuptools libtinfo6 xorriso
check-security: false
check-symbols: false
dep-opts: ""
config-opts: ""
goal: deploy
sdk: 15.0-15A240d
- name: linux-arm-32-bit
host: arm-linux-gnueabihf
os: ubuntu-24.04
packages: g++-arm-linux-gnueabihf binutils-arm-linux-gnueabihf
check-security: false
check-symbols: false
dep-opts: ""
config-opts: "LDFLAGS=-static-libstdc++"
goal: build
- name: linux-arm-64-bit
host: aarch64-linux-gnu
os: ubuntu-24.04
packages: g++-aarch64-linux-gnu binutils-aarch64-linux-gnu
check-security: false
check-symbols: false
dep-opts: ""
config-opts: "LDFLAGS=-static-libstdc++"
goal: build
- name: linux-power-64-bit
host: powerpc64-linux-gnu
os: ubuntu-24.04
packages: g++-powerpc64-linux-gnu binutils-powerpc64-linux-gnu
check-security: false
check-symbols: false
dep-opts: ""
config-opts: "LDFLAGS=-static-libstdc++"
goal: build
- name: linux-power-le-64-bit
host: powerpc64le-linux-gnu
os: ubuntu-24.04
packages: g++-powerpc64le-linux-gnu binutils-powerpc64le-linux-gnu
check-security: false
check-symbols: false
dep-opts: ""
config-opts: "LDFLAGS=-static-libstdc++"
goal: build
- name: linux-riscv-64-bit
host: riscv64-linux-gnu
os: ubuntu-24.04
packages: g++-riscv64-linux-gnu binutils-riscv64-linux-gnu
check-security: false
check-symbols: false
dep-opts: ""
config-opts: "LDFLAGS=-static-libstdc++"
goal: build
- name: linux-s390x
host: s390x-linux-gnu
os: ubuntu-24.04
packages: g++-s390x-linux-gnu binutils-s390x-linux-gnu
check-security: false
check-symbols: false
dep-opts: ""
config-opts: "LDFLAGS=-static-libstdc++"
goal: build
runs-on: ${{ matrix.os }}
steps:
- name: Add architecture
if: ${{ matrix.arch }}
run: |
sudo dpkg --add-architecture "${{ matrix.arch }}"
- name: Install packages
run: |
sudo apt-get update
sudo apt-get install automake bison cmake curl libtool make patch pkg-config python3 xz-utils g++-multilib binutils bsdmainutils
sudo apt-get install ${{ matrix.packages }}
- name: Post install
if: ${{ matrix.postinstall }}
run: ${{ matrix.postinstall }}
- name: Checkout
uses: actions/checkout@v4
- name: SDK cache
if: ${{ matrix.sdk }}
uses: actions/cache@v4
env:
cache-name: sdk
with:
path: ./depends/sdk-sources
key: ${{ matrix.name }}-${{ env.cache-name }}
- name: Install SDK
if: ${{ matrix.sdk }}
run: |
mkdir -p ./depends/sdk-sources
mkdir -p ./depends/SDKs
curl --location --fail $SDK_URL/Xcode-${{ matrix.sdk }}-extracted-SDK-with-libcxx-headers.tar.gz -o depends/sdk-sources/Xcode-${{ matrix.sdk }}-extracted-SDK-with-libcxx-headers.tar.gz
tar -C depends/SDKs -xf depends/sdk-sources/Xcode-${{ matrix.sdk }}-extracted-SDK-with-libcxx-headers.tar.gz
- name: Dependency cache
uses: actions/cache@v4
env:
cache-name: depends
with:
path: ./depends/built
key: ${{ matrix.name }}-${{ env.cache-name }}-${{ hashFiles('depends/packages/*') }}
- name: Build depends
run: |
make $MAKEJOBS -C depends HOST=${{ matrix.host }} ${{ matrix.dep-opts }}
- name: Build Groestlcoin
run: |
cmake -B ${{ matrix.goal }} --toolchain `pwd`/depends/${{ matrix.host }}/toolchain.cmake -DREDUCE_EXPORTS=ON
cmake --build ${{ matrix.goal }} -j $CMAKEJOBS
cmake --install ${{ matrix.goal }} --prefix `pwd`/depends/${{ matrix.host }}
- name: Check security
if: ${{ matrix.check-security }}
run: cmake --build build --target check-security
- name: Check symbols
if: ${{ matrix.check-symbols }}
run: cmake --build build --target check-symbols
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: groestlcoin-${{ github.sha }}-${{ matrix.name }}
path: |
depends/${{ matrix.host }}/bin/groestlcoin*
dist/Groestlcoin-Qt.app
if-no-files-found: error
retention-days: 7
- name: Download artifacts
uses: actions/download-artifact@v4
with:
name: groestlcoin-${{ github.sha }}-${{ matrix.name }}