Merge pull request #3048 from patricklodder/1.14.6-fixate #2
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: Continuous Integration | |
on: | |
push: | |
paths-ignore: | |
- '**/*.md' | |
pull_request: | |
paths-ignore: | |
- 'doc/**' | |
- 'contrib/**' | |
- '**/*.md' | |
jobs: | |
build: | |
name: ${{ matrix.name }} | |
env: | |
MAKEJOBS: "-j3" | |
CHECK_DOC: "0" | |
CCACHE_SIZE: "100M" | |
CCACHE_TEMPDIR: /tmp/.ccache-temp | |
CCACHE_COMPRESS: "1" | |
PYTHON_DEBUG: "1" | |
CACHE_NONCE: "1" | |
WINEDEBUG: fixme-all | |
SDK_URL: https://depends.dogecoincore.org | |
strategy: | |
fail-fast: false | |
matrix: | |
name: | |
- aarch64-linux | |
- aarch64-linux-experimental | |
- aarch64-linux-sha512-experimental | |
- armhf-linux | |
- i686-linux | |
- i686-win | |
- x86_64-linux-dbg | |
- x86_64-linux-nowallet | |
- x86_64-macos | |
- x86_64-win | |
- x86_64-linux-experimental | |
include: | |
- name: i686-linux | |
host: i686-pc-linux-gnu | |
os: ubuntu-18.04 | |
packages: g++-multilib bc python3-zmq | |
run-bench: true | |
run-tests: true | |
check-security: true | |
check-symbols: true | |
dep-opts: "NO_QT=1" | |
config-opts: "--enable-zmq --enable-glibc-back-compat LDFLAGS=-static-libstdc++" | |
goal: install | |
- name: armhf-linux | |
host: arm-linux-gnueabihf | |
os: ubuntu-18.04 | |
packages: g++-arm-linux-gnueabihf | |
run-bench: false | |
run-tests: false | |
check-security: true | |
check-symbols: false | |
dep-opts: "NO_QT=1" | |
config-opts: "--enable-glibc-back-compat --disable-tests LDFLAGS=-static-libstdc++" | |
goal: install | |
- name: aarch64-linux-experimental | |
host: aarch64-linux-gnu | |
os: ubuntu-18.04 | |
packages: g++-aarch64-linux-gnu | |
run-tests: false | |
check-security: true | |
check-symbols: false | |
dep-opts: "NO_QT=1" | |
config-opts: "--with-armv8-crypto --enable-zmq --enable-glibc-back-compat --disable-tests LDFLAGS=-static-libstdc++" | |
goal: install | |
- name: aarch64-linux-sha512-experimental | |
host: aarch64-linux-gnu | |
os: ubuntu-20.04 | |
packages: g++-aarch64-linux-gnu | |
run-tests: false | |
check-security: true | |
check-symbols: false | |
dep-opts: "NO_QT=1" | |
config-opts: "--with-armv82-crypto --enable-zmq --enable-glibc-back-compat --disable-tests LDFLAGS=-static-libstdc++" | |
goal: install | |
- name: aarch64-linux | |
host: aarch64-linux-gnu | |
os: ubuntu-18.04 | |
packages: g++-aarch64-linux-gnu | |
run-bench: false | |
run-tests: false | |
check-security: true | |
check-symbols: false | |
dep-opts: "NO_QT=1" | |
config-opts: "--enable-zmq --enable-glibc-back-compat --disable-tests LDFLAGS=-static-libstdc++" | |
goal: install | |
- name: x86_64-linux-nowallet | |
host: x86_64-unknown-linux-gnu | |
os: ubuntu-18.04 | |
packages: python3 | |
run-bench: true | |
run-tests: true | |
check-security: true | |
check-symbols: true | |
dep-opts: "NO_WALLET=1" | |
config-opts: "--enable-gui=qt5 --enable-glibc-back-compat --disable-wallet LDFLAGS=-static-libstdc++" | |
goal: install | |
- name: x86_64-linux-dbg | |
host: x86_64-unknown-linux-gnu | |
os: ubuntu-18.04 | |
packages: bc python3-zmq | |
run-bench: true | |
run-tests: true | |
check-security: true | |
check-symbols: false | |
dep-opts: "DEBUG=1" | |
config-opts: "--enable-gui=qt5 --enable-zmq --enable-glibc-back-compat CPPFLAGS=-DDEBUG_LOCKORDER" | |
goal: install | |
- name: i686-win | |
host: i686-w64-mingw32 | |
arch: "i386" | |
os: ubuntu-18.04 | |
packages: python3 nsis g++-mingw-w64-i686 wine-stable bc wine-binfmt | |
postinstall: | | |
sudo dpkg -s mono-runtime && sudo apt-get remove mono-runtime || echo "Very nothing to uninstall." | |
sudo update-alternatives --set i686-w64-mingw32-gcc /usr/bin/i686-w64-mingw32-gcc-posix | |
sudo update-alternatives --set i686-w64-mingw32-g++ /usr/bin/i686-w64-mingw32-g++-posix | |
sudo update-binfmts --import /usr/share/binfmts/wine | |
run-bench: false | |
run-tests: true | |
check-security: true | |
check-symbols: false | |
dep-opts: "" | |
config-opts: "--enable-gui=qt5" | |
goal: install | |
- name: x86_64-win | |
host: x86_64-w64-mingw32 | |
arch: "i386" | |
os: ubuntu-18.04 | |
packages: python3 nsis g++-mingw-w64-x86-64 wine64 bc wine-binfmt | |
postinstall: | | |
sudo dpkg -s mono-runtime && sudo apt-get remove mono-runtime || echo "Very nothing to uninstall." | |
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 | |
run-bench: false | |
run-tests: true | |
check-security: true | |
check-symbols: false | |
dep-opts: "" | |
config-opts: "--enable-gui=qt5" | |
goal: install | |
- name: x86_64-macos | |
host: x86_64-apple-darwin11 | |
os: ubuntu-18.04 | |
packages: cmake imagemagick libcap-dev librsvg2-bin libz-dev libtiff-tools libtinfo5 python3-setuptools xorriso libtinfo5 | |
run-bench: false | |
run-tests: false | |
check-security: false | |
check-symbols: false | |
dep-opts: "" | |
config-opts: "--enable-gui=qt5 --disable-tests" | |
goal: deploy | |
sdk: 10.11 | |
sdk-shasum: "bec9d089ebf2e2dd59b1a811a38ec78ebd5da18cbbcd6ab39d1e59f64ac5033f" | |
- name: x86_64-linux-experimental | |
host: x86_64-unknown-linux-gnu | |
os: ubuntu-18.04 | |
packages: bc python3-zmq | |
run-bench: true | |
run-tests: true | |
dep-opts: "AVX2=1" | |
config-opts: "--with-intel-avx2 --enable-gui=qt5 --enable-zmq --enable-glibc-back-compat --enable-reduce-exports" | |
goal: install | |
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 build-essential libtool autotools-dev automake pkg-config bsdmainutils curl ca-certificates ccache python3 rsync git procps bison | |
sudo apt-get install ${{ matrix.packages }} | |
- name: Post install | |
if: ${{ matrix.postinstall }} | |
run: ${{ matrix.postinstall }} | |
- name: Checkout | |
uses: actions/checkout@v2 | |
- name: SDK cache | |
if: ${{ matrix.sdk }} | |
uses: actions/cache@v2 | |
env: | |
cache-name: sdk | |
with: | |
path: ./depends/sdk-sources | |
key: ${{ matrix.name }}-${{ env.cache-name }}-${{ hashFiles('.github/workflows/ci.yml') }} | |
- name: Install SDK | |
if: ${{ matrix.sdk }} | |
env: | |
sdk-filename: MacOSX${{ matrix.sdk }}.sdk.tar.gz | |
run: | | |
mkdir -p ./depends/sdk-sources | |
mkdir -p ./depends/SDKs | |
echo "${{ matrix.sdk-shasum }} depends/sdk-sources/${{ env.sdk-filename }}" | sha256sum -c || \ | |
curl --location --fail $SDK_URL/${{ env.sdk-filename }} -o depends/sdk-sources/${{ env.sdk-filename }} &&\ | |
echo "${{ matrix.sdk-shasum }} depends/sdk-sources/${{ env.sdk-filename }}" | sha256sum -c | |
tar -C depends/SDKs -xf depends/sdk-sources/${{ env.sdk-filename }} | |
- name: Dependency cache | |
uses: actions/cache@v2 | |
env: | |
cache-name: depends | |
with: | |
path: ./depends/built | |
key: ${{ matrix.name }}-${{ env.cache-name }}-${{ hashFiles('depends/packages/*', '.github/workflows/ci.yml') }} | |
- name: Build depends | |
run: | | |
make $MAKEJOBS -C depends HOST=${{ matrix.host }} ${{ matrix.dep-opts }} | |
- name: CCache | |
uses: actions/cache@v2 | |
env: | |
cache-name: ccache | |
with: | |
path: ~/.ccache | |
key: ${{ matrix.name }}-${{ env.cache-name }}-${{ hashFiles('**/configure.ac', '.github/workflows/ci.yml') }} | |
- name: Build Dogecoin | |
run: | | |
depends/${{ matrix.host }}/native/bin/ccache --max-size=$CCACHE_SIZE | |
./autogen.sh | |
./configure --prefix=`pwd`/depends/${{ matrix.host }} ${{ matrix.config-opts }} --enable-reduce-exports || ( cat config.log && false) | |
make $MAKEJOBS ${{ matrix.goal }} || ( echo "Build failure. Verbose build follows." && make ${{ matrix.goal }} V=1 ; false ) | |
- name: Run benchmark | |
if: ${{ matrix.run-bench }} | |
run: | | |
src/bench/bench_dogecoin > ${{ matrix.name }}-bench.csv | |
cat ${{ matrix.name }}-bench.csv | |
- name: Run tests | |
if: ${{ matrix.run-tests }} | |
run: | | |
make check $MAKEJOBS VERBOSE=1 | |
qa/pull-tester/install-deps.sh | |
qa/pull-tester/rpc-tests.py --coverage | |
- name: Check security | |
if: ${{ matrix.check-security }} | |
run: make -C src check-security | |
- name: Check symbols | |
if: ${{ matrix.check-symbols }} | |
run: make -C src check-symbols | |
- name: Upload artifacts | |
uses: actions/upload-artifact@v2 | |
with: | |
name: dogecoin-${{ github.sha }}-${{ matrix.name }} | |
path: | | |
depends/${{ matrix.host }}/bin/dogecoin* | |
dist/Dogecoin-Qt.app | |
${{ matrix.name }}-bench.csv |