Merge ElementsProject/elements#1018: ci: a bunch more backports to get MacOS job working

1e63e577db ci: disable Werror on MacOS build (not a backport) (Andrew Poelstra)
1852f83a5d ci: Bump macOS image to big-sur-xcode-12.5 (MarcoFalke)
4f33ba757d ci: Fix macOS brew install command (Hennadii Stepanov)
026508542c ci: Bump macOS VM image to the latest version (Hennadii Stepanov)
0740ceeb13 ci: Adjust cirrus ci task names (Andrew Poelstra)
d08e5845a0 ci: Fix doc typos in .cirrus.yml (Andrew Poelstra)
953cbe2599 ci: Run nowallet ci config on cirrus (MarcoFalke)
60a5632f77 build: set minimum supported macOS to 10.14 (fanquake)

Pull request description:

  Backport of https://github.com/bitcoin/bitcoin/pull/20419 then https://github.com/bitcoin/bitcoin/pull/19179 (except 2nd commit "Run i686 centos ci config on cirrus" which requires some more supporting PRs) then https://github.com/bitcoin/bitcoin/pull/20545 then https://github.com/bitcoin/bitcoin/pull/21542 then
  https://github.com/bitcoin/bitcoin/pull/21663 then https://github.com/bitcoin/bitcoin/pull/22122

  We are getting 403 errors in our MacOS job on Cirrus, presumably because bintray.com has shut down (see discussion on upstream PR 21663). Backport this PR and several supporting ones. These PRs will be merged as part of the 22.0 rebase. In the interest of keeping CI running let's backport them early.

Top commit has no ACKs.

Tree-SHA512: cdfe96789adedbfb617cdafb534175323a8fd46606e67adf7053f97cc32712dd3ece850906b522b6b0bed137f52c1372319f52f4a7b303aec479ea54d213271c
This commit is contained in:
Steven Roose 2021-07-12 18:38:38 +01:00
commit 0bc24d95a8
No known key found for this signature in database
GPG key ID: 2F2A88D7F8D68E87
10 changed files with 34 additions and 31 deletions

View file

@ -56,7 +56,7 @@ global_task_template: &GLOBAL_TASK_TEMPLATE
# - choco install python --version=3.7.7 -y
task:
name: 'ARM [GOAL: install] [buster] [unit tests, no functional tests]'
name: 'ARM [unit tests, no functional tests] [buster]'
<< : *GLOBAL_TASK_TEMPLATE
container:
image: debian:buster
@ -64,7 +64,7 @@ task:
FILE_ENV: "./ci/test/00_setup_env_arm.sh"
task:
name: 'Win64 [GOAL: deploy] [unit tests, no gui, no boost::process, no functional tests]'
name: 'Win64 [unit tests, no gui tests, no boost::process, no functional tests] [bionic]'
<< : *GLOBAL_TASK_TEMPLATE
container:
image: ubuntu:bionic
@ -72,7 +72,7 @@ task:
FILE_ENV: "./ci/test/00_setup_env_win64.sh"
task:
name: 'x86_64 Linux [GOAL: install] [bionic] [C++17, previous releases, uses qt5 dev package and some depends packages] [unsigned char]'
name: '[previous releases, uses qt5 dev package and some depends packages] [unsigned char] [bionic]'
<< : *GLOBAL_TASK_TEMPLATE
container:
image: ubuntu:bionic
@ -80,7 +80,7 @@ task:
FILE_ENV: "./ci/test/00_setup_env_native_qt5.sh"
task:
name: 'x86_64 Linux [GOAL: install] [focal] [depends, sanitizers: thread (TSan), no gui]'
name: '[depends, sanitizers: thread (TSan), no gui] [focal]'
<< : *GLOBAL_TASK_TEMPLATE
container:
image: ubuntu:focal
@ -91,7 +91,7 @@ task:
FILE_ENV: "./ci/test/00_setup_env_native_tsan.sh"
task:
name: 'x86_64 Linux [GOAL: install] [focal] [depends, sanitizers: memory (MSan)]'
name: '[depends, sanitizers: memory (MSan)] [focal]'
<< : *GLOBAL_TASK_TEMPLATE
container:
image: ubuntu:focal
@ -99,7 +99,7 @@ task:
FILE_ENV: "./ci/test/00_setup_env_native_msan.sh"
task:
name: 'x86_64 Linux [GOAL: install] [focal] [no depends, only system libs, sanitizers: address/leak (ASan + LSan) + undefined (UBSan) + integer]'
name: '[no depends, only system libs, sanitizers: address/leak (ASan + LSan) + undefined (UBSan) + integer] [focal]'
<< : *GLOBAL_TASK_TEMPLATE
container:
image: ubuntu:focal
@ -109,7 +109,7 @@ task:
FILE_ENV: "./ci/test/00_setup_env_native_asan.sh"
task:
name: 'x86_64 Linux [GOAL: install] [focal] [no depends, only system libs, sanitizers: fuzzer,address,undefined]'
name: '[no depends, only system libs, sanitizers: fuzzer,address,undefined] [focal]'
<< : *GLOBAL_TASK_TEMPLATE
container:
image: ubuntu:focal
@ -119,7 +119,7 @@ task:
FILE_ENV: "./ci/test/00_setup_env_native_fuzz.sh"
task:
name: 'x86_64 Linux [GOAL: install] [focal] [multiprocess]'
name: '[multiprocess] [focal]'
<< : *GLOBAL_TASK_TEMPLATE
container:
image: ubuntu:focal
@ -127,7 +127,15 @@ task:
FILE_ENV: "./ci/test/00_setup_env_native_multiprocess.sh"
task:
name: 'macOS 10.12 [GOAL: deploy] [no functional tests]'
name: '[no wallet] [bionic]'
<< : *GLOBAL_TASK_TEMPLATE
container:
image: ubuntu:bionic
env:
FILE_ENV: "./ci/test/00_setup_env_native_nowallet.sh"
task:
name: 'macOS 10.14 [gui, no tests] [bionic]'
<< : *GLOBAL_TASK_TEMPLATE
container:
image: ubuntu:bionic
@ -135,13 +143,13 @@ task:
FILE_ENV: "./ci/test/00_setup_env_mac.sh"
task:
name: 'macOS 10.14 native [GOAL: install] [GUI] [no depends]'
macos_brew_addon_script:
- brew install boost libevent berkeley-db4 qt miniupnpc ccache zeromq qrencode sqlite libtool automake pkg-config gnu-getopt
name: 'macOS 11 native [gui] [no depends]'
brew_install_script:
- brew install boost libevent berkeley-db4 qt@5 miniupnpc ccache zeromq qrencode sqlite libtool automake pkg-config gnu-getopt
<< : *GLOBAL_TASK_TEMPLATE
osx_instance:
# Use latest image, but hardcode version to avoid silent upgrades (and breaks)
image: catalina-xcode-12.1 # https://cirrus-ci.org/guide/macOS
image: big-sur-xcode-12.5 # https://cirrus-ci.org/guide/macOS
env:
DANGER_RUN_CI_ON_HOST: "true"
CI_USE_APT_INSTALL: "no"

View file

@ -65,13 +65,7 @@ jobs:
script:
- set -o errexit; source ./ci/lint/06_script.sh
# Disabled due to new Travis restrictions; will be removed as part of 0.22 rebase
# - stage: test
# name: '32-bit + dash [GOAL: install] [CentOS 7] [gui]'
# env: >-
# FILE_ENV="./ci/test/00_setup_env_i686_centos.sh"
- stage: test
name: 'x86_64 Linux [GOAL: install] [xenial] [no wallet]'
name: '32-bit + dash [GOAL: install] [CentOS 8] [gui]'
env: >-
FILE_ENV="./ci/test/00_setup_env_native_nowallet.sh"
FILE_ENV="./ci/test/00_setup_env_i686_centos.sh"

View file

@ -8,7 +8,7 @@ export LC_ALL=C.UTF-8
export CONTAINER_NAME=ci_macos_cross
export DOCKER_NAME_TAG=ubuntu:18.04 # Check that bionic can cross-compile to macos (bionic is used in the gitian build as well)
export HOST=x86_64-apple-darwin16
export HOST=x86_64-apple-darwin18
export PACKAGES="cmake imagemagick libcap-dev librsvg2-bin libz-dev libbz2-dev libtiff-tools python3-dev python3-setuptools"
export XCODE_VERSION=11.3.1
export XCODE_BUILD_ID=11C505

View file

@ -6,11 +6,12 @@
export LC_ALL=C.UTF-8
export HOST=x86_64-apple-darwin16
export HOST=x86_64-apple-darwin18
export PIP_PACKAGES="zmq"
export GOAL="install"
# ELEMENTS: add -fno-stack-check to work around clang bug on macos
export BITCOIN_CONFIG="--with-gui --enable-reduce-exports --enable-werror --with-boost-process CXXFLAGS=-fno-stack-check"
# ELEMENTS: remove --enable-werror because it triggers on Boost Thread includes (FIXME remove this after 22.0 rebase when boost-thread is removed)
export BITCOIN_CONFIG="--with-gui --enable-reduce-exports --with-boost-process CXXFLAGS=-fno-stack-check"
export CI_OS_NAME="macos"
export NO_DEPENDS=1
export OSX_SDK=""

View file

@ -39,7 +39,7 @@ script: |
set -e -o pipefail
WRAP_DIR=$HOME/wrapped
HOSTS="x86_64-apple-darwin16"
HOSTS="x86_64-apple-darwin18"
CONFIGFLAGS="--enable-reduce-exports --disable-bench --disable-gui-tests GENISOIMAGE=$WRAP_DIR/genisoimage"
FAKETIME_HOST_PROGS=""
FAKETIME_PROGS="ar ranlib date dmg genisoimage"

View file

@ -25,7 +25,7 @@ Common `host-platform-triplets` for cross compilation are:
- `i686-pc-linux-gnu` for Linux 32 bit
- `x86_64-pc-linux-gnu` for x86 Linux
- `x86_64-w64-mingw32` for Win64
- `x86_64-apple-darwin16` for macOS
- `x86_64-apple-darwin18` for macOS
- `arm-linux-gnueabihf` for Linux ARM 32 bit
- `aarch64-linux-gnu` for Linux ARM 64 bit
- `powerpc64-linux-gnu` for Linux POWER 64-bit (big endian)

View file

@ -1,4 +1,4 @@
OSX_MIN_VERSION=10.12
OSX_MIN_VERSION=10.14
OSX_SDK_VERSION=10.15.1
XCODE_VERSION=11.3.1
XCODE_BUILD_ID=11C505

View file

@ -111,6 +111,6 @@ tail -f $HOME/Library/Application\ Support/Bitcoin/debug.log
```
## Notes
* Tested on OS X 10.12 Sierra through macOS 10.15 Catalina on 64-bit Intel
* Tested on OS X 10.14 Mojave through macOS 11 Big Sur on 64-bit Intel
processors only.
* Building with downloaded Qt binaries is not officially supported. See the notes in [#7714](https://github.com/bitcoin/bitcoin/issues/7714).

View file

@ -51,12 +51,12 @@ with the 0.22.0 release. This means that a compiler that supports C++17 will be
required to compile 0.22.0.
Bitcoin Core is supported and extensively tested on operating systems
using the Linux kernel, macOS 10.12+, and Windows 7 and newer. Bitcoin
using the Linux kernel, macOS 10.14+, and Windows 7 and newer. Bitcoin
Core should also work on most other Unix-like systems but is not as
frequently tested on them. It is not recommended to use Bitcoin Core on
unsupported systems.
From Bitcoin Core 0.20.0 onwards, macOS versions earlier than 10.12 are no
From Bitcoin Core 0.22.0 onwards, macOS versions earlier than 10.14 are no
longer supported. Additionally, Bitcoin Core does not yet change appearance
when macOS "dark mode" is activated.

View file

@ -3,7 +3,7 @@
<plist version="0.9">
<dict>
<key>LSMinimumSystemVersion</key>
<string>10.12.0</string>
<string>10.14.0</string>
<key>LSArchitecturePriority</key>
<array>