Merge remote-tracking branch 'upstream/master' #203
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: 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 }} |