Skip to content

Commit

Permalink
Merge #2930: [GA] Fix minor issues with latest GA runner images
Browse files Browse the repository at this point in the history
92844ce ga: Use runner provided rust for macOS (Fuzzbawls)
de96bb4 ga: Use python 3.10 on arm64 macos (Fuzzbawls)
428ead2 ga: Use runner image cached python versions (Fuzzbawls)
c0ea7f0 ga: Update apt cache before environment setup (Fuzzbawls)
8dd1641 ga: explicitly export bdb flags for macos-12 runners (Fuzzbawls)

Pull request description:

  Latest batch of GA runner images have introduced some more minor bugs that were preventing builds from finishing.

  first two commits address the halting bugs, second two are a semi-related optimization.

ACKs for top commit: 92844ce
  Liquid369:
    tACK 92844ce
  panleone:
    utACK 92844ce

Tree-SHA512: bc075275f092e76c1a5f1fe24bd40fec9f4980700d305b859487909ac6f05d548027e789949375590ab2a539ab704200135d1c08682025794d719c099a5a9ff3
  • Loading branch information
Fuzzbawls committed Jul 28, 2024
2 parents 27e6399 + 92844ce commit 9bc2ee2
Showing 1 changed file with 84 additions and 25 deletions.
109 changes: 84 additions & 25 deletions .github/workflows/build-and-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ jobs:
- name: Initialize Python
uses: actions/setup-python@v5
with:
python-version: 3.8
python-version: '3.8'

- name: Install Dependencies
run: |
Expand Down Expand Up @@ -93,26 +93,30 @@ jobs:
config:
- name: Linux
os: ubuntu-20.04
python-version: '3.8'
packages: python3-zmq qttools5-dev qtbase5-dev qttools5-dev-tools libqt5svg5-dev libqt5charts5-dev libevent-dev bsdmainutils libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-test-dev libboost-thread-dev libdb5.3++-dev libminiupnpc-dev libzmq3-dev libqrencode-dev libgmp-dev libsodium-dev cargo
cc: gcc
cxx: g++

- name: Linux-latest
os: ubuntu-latest
python-version: '3.8'
packages: python3-zmq qttools5-dev qtbase5-dev qttools5-dev-tools libqt5svg5-dev libqt5charts5-dev libevent-dev bsdmainutils libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-test-dev libboost-thread-dev libdb5.3++-dev libminiupnpc-dev libzmq3-dev libqrencode-dev libgmp-dev libsodium-dev cargo
cc: gcc
cxx: g++

- name: macOS
os: macos-12
packages: llvm@13 python@3.8 autoconf automake berkeley-db@4 libtool boost@1.76 miniupnpc libnatpmp pkg-config qt@5 zmq libevent qrencode gmp libsodium rust
python-version: '3.8'
packages: llvm@13 autoconf automake berkeley-db@4 libtool boost@1.76 miniupnpc libnatpmp pkg-config qt@5 zmq libevent qrencode gmp libsodium
boost_root: true
cc: $(brew --prefix llvm@13)/bin/clang
cxx: $(brew --prefix llvm@13)/bin/clang++

- name: macOS-latest
os: macos-14
packages: llvm@14 python@3.8 autoconf automake berkeley-db@4 libtool boost@1.76 miniupnpc libnatpmp pkg-config qt@5 zmq libevent qrencode gmp libsodium rust
python-version: '3.10'
packages: llvm@14 autoconf automake berkeley-db@4 libtool boost@1.76 miniupnpc libnatpmp pkg-config qt@5 zmq libevent qrencode gmp libsodium
boost_root: true
cc: $(brew --prefix llvm@14)/bin/clang
cxx: $(brew --prefix llvm@14)/bin/clang++
Expand All @@ -121,6 +125,11 @@ jobs:
- name: Get Source
uses: actions/checkout@v4

- name: Initialize Python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.config.python-version }}

- name: Setup Environment
run: |
if [[ ${{ matrix.config.os }} = ubuntu* ]]; then
Expand All @@ -141,6 +150,7 @@ jobs:
run: |
CC=${{ matrix.config.cc }}
CXX=${{ matrix.config.cxx }}
PYTHON=$pythonLocation/bin/python${{ matrix.config.python-version }}
if [[ ${{ matrix.config.os }} = macos* ]]; then
if [ "${{ matrix.config.no_qt }}" = "true" ]; then
export NO_QT=1
Expand All @@ -151,13 +161,14 @@ jobs:
export LDFLAGS="-L/opt/homebrew/opt/boost@1.76/lib"
export CPPFLAGS="-I/opt/homebrew/opt/boost@1.76/include"
else
export CPPFLAGS="-I/usr/local/opt/boost@1.76/include"
export LDFLAGS="-L/usr/local/opt/boost@1.76/lib"
export CPPFLAGS="-I/usr/local/opt/boost@1.76/include -I/usr/local/opt/berkeley-db@4/include"
export LDFLAGS="-L/usr/local/opt/boost@1.76/lib -L/usr/local/opt/berkeley-db@4/lib"
fi
fi
fi
export CC
export CXX
export PYTHON
mkdir -p ${{ github.workspace }}/cmake-build-debug && cd ${{ github.workspace }}/cmake-build-debug
cmake -DCMAKE_BUILD_TYPE=Debug -G "Unix Makefiles" ${{ github.workspace }}
Expand Down Expand Up @@ -189,6 +200,7 @@ jobs:
- name: x64-Linux
id: Linux-x86_64-nodepends
os: ubuntu-20.04
python-version: '3.8'
packages: python3-zmq qtbase5-dev qttools5-dev-tools libqt5svg5-dev libqt5charts5-dev libevent-dev bsdmainutils libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-test-dev libboost-thread-dev libdb5.3++-dev libminiupnpc-dev libnatpmp-dev libzmq3-dev libqrencode-dev libgmp-dev libsodium-dev cargo
unit_tests: true
functional_tests: true
Expand All @@ -198,6 +210,7 @@ jobs:
- name: x64-Linux-latest
id: Linux-x86_64-nodepends-latest
os: ubuntu-latest
python-version: '3.8'
packages: python3-zmq qtbase5-dev qttools5-dev-tools libqt5svg5-dev libqt5charts5-dev libevent-dev bsdmainutils libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-test-dev libboost-thread-dev libdb5.3++-dev libminiupnpc-dev libnatpmp-dev libzmq3-dev libqrencode-dev libgmp-dev libsodium-dev cargo
unit_tests: true
functional_tests: true
Expand All @@ -207,7 +220,8 @@ jobs:
- name: x64-macOS
id: macOS-nodepends
os: macos-12
packages: autoconf automake ccache berkeley-db@4 libtool boost@1.76 miniupnpc libnatpmp pkg-config python@3.8 libevent qrencode gmp libsodium rust librsvg
python-version: '3.8'
packages: autoconf automake ccache berkeley-db@4 libtool boost@1.76 miniupnpc libnatpmp pkg-config qt@5 zmq libevent qrencode gmp libsodium librsvg
unit_tests: true
functional_tests: true
cc: clang
Expand All @@ -217,7 +231,8 @@ jobs:
- name: arm64-macOS-latest
id: macOS-nodepends-latest
os: macos-14
packages: autoconf automake ccache berkeley-db@4 libtool boost@1.76 miniupnpc libnatpmp pkg-config python@3.8 qt@5 zmq libevent qrencode gmp libsodium rust librsvg
python-version: '3.10'
packages: autoconf automake ccache berkeley-db@4 libtool boost@1.76 miniupnpc libnatpmp pkg-config qt@5 zmq libevent qrencode gmp libsodium librsvg
unit_tests: true
functional_tests: true
goal: deploy
Expand All @@ -229,14 +244,19 @@ jobs:
- name: Get Source
uses: actions/checkout@v4

- name: Initialize Python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.config.python-version }}

- name: Setup Environment
run: |
if [[ ${{ matrix.config.os }} = ubuntu* ]]; then
sudo apt-get install --no-install-recommends --no-upgrade -qq "$APT_BASE" ${{ matrix.config.packages }}
fi
if [[ ${{ matrix.config.os }} = macos* ]]; then
brew install ${{ matrix.config.packages }}
pip3.8 install ds_store mac_alias
pip install ds_store mac_alias
fi
- name: ccache cache files
Expand All @@ -252,6 +272,8 @@ jobs:
# Add llvm-symbolizer directory to PATH. Needed to get symbolized stack traces from the sanitizers.
PATH=$PATH:/usr/lib/llvm-6.0/bin/
export PATH
PYTHON=$pythonLocation/bin/python${{ matrix.config.python-version }}
export PYTHON
if [[ ${{ matrix.config.os }} = macos* ]]; then
CC=${{ matrix.config.cc }}
Expand All @@ -260,6 +282,11 @@ jobs:
export CXX
fi
if [ "${{ matrix.config.os }}" = "macos-12" ]; then
export CPPFLAGS="-I/usr/local/opt/boost@1.76/include -I/usr/local/opt/berkeley-db@4/include"
export LDFLAGS="-L/usr/local/opt/boost@1.76/lib -L/usr/local/opt/berkeley-db@4/lib"
fi
if [[ ${{ matrix.config.os }} = ubuntu* ]]; then
OUTDIR_PATH="$GITHUB_WORKSPACE/$GITHUB_RUN_NUMBER"
BITCOIN_CONFIG_ALL="--disable-dependency-tracking --prefix=$GITHUB_WORKSPACE --bindir=$OUTDIR_PATH/bin --libdir=$OUTDIR_PATH/lib"
Expand Down Expand Up @@ -337,24 +364,33 @@ jobs:
- name: x64-Linux
id: Linux-x86_64-nodepends-tests
os: ubuntu-20.04
python-version: '3.8'
packages: python3-zmq libevent-dev bsdmainutils libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-test-dev libboost-thread-dev libdb5.3++-dev libminiupnpc-dev libnatpmp-dev libzmq3-dev libqrencode-dev libgmp-dev libsodium-dev

- name: x64-Linux-latest
id: Linux-x86_64-nodepends-latest-tests
os: ubuntu-latest
python-version: '3.8'
packages: python3-zmq libevent-dev bsdmainutils libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-test-dev libboost-thread-dev libdb5.3++-dev libminiupnpc-dev libnatpmp-dev libzmq3-dev libqrencode-dev libgmp-dev libsodium-dev

- name: x64-macOS
id: macOS-nodepends
os: macos-12
packages: python@3.8 berkeley-db@4 boost@1.76 miniupnpc libnatpmp pkg-config zmq libevent qrencode gmp libsodium
python-version: '3.8'
packages: berkeley-db@4 boost@1.76 miniupnpc libnatpmp pkg-config zmq libevent qrencode gmp libsodium

- name: arm64-macOS-latest
id: macOS-nodepends-latest
os: macos-14
packages: python@3.8 berkeley-db@4 boost@1.76 miniupnpc libnatpmp pkg-config zmq libevent qrencode gmp libsodium
python-version: '3.10'
packages: berkeley-db@4 boost@1.76 miniupnpc libnatpmp pkg-config zmq libevent qrencode gmp libsodium

steps:
- name: Initialize Python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.config.python-version }}

- name: Setup Environment
run: |
if [[ ${{ matrix.config.os }} = ubuntu* ]]; then
Expand All @@ -363,6 +399,7 @@ jobs:
if [[ ${{ matrix.config.os }} = macos* ]]; then
brew install ${{ matrix.config.packages }}
fi
pip install pyzmq
- name: Download Build Artifact
uses: actions/download-artifact@v4
Expand Down Expand Up @@ -401,17 +438,17 @@ jobs:
- name: ARM 32-bit
os: ubuntu-20.04
host: arm-linux-gnueabihf
packages: python3 g++-arm-linux-gnueabihf
packages: g++-arm-linux-gnueabihf

- name: AARCH64
os: ubuntu-20.04
host: aarch64-linux-gnu
packages: python3 g++-aarch64-linux-gnu
packages: g++-aarch64-linux-gnu

- name: Win64
os: ubuntu-20.04
host: x86_64-w64-mingw32
packages: python3 nsis g++-mingw-w64-x86-64 wine-binfmt wine64
packages: nsis g++-mingw-w64-x86-64 wine-binfmt wine64

- name: 32-bit + dash
os: ubuntu-20.04
Expand All @@ -427,16 +464,23 @@ jobs:
- name: macOS 10.12
os: ubuntu-20.04
host: x86_64-apple-darwin16
packages: cmake imagemagick libcap-dev librsvg2-bin libz-dev libbz2-dev libtiff-tools python3-dev python3-setuptools
packages: cmake imagemagick libcap-dev librsvg2-bin libz-dev libbz2-dev libtiff-tools
XCODE_VERSION: 11.3.1
XCODE_BUILD_ID: 11C505

steps:
- name: Get Source
uses: actions/checkout@v4

- name: Initialize Python
uses: actions/setup-python@v5
with:
python-version: '3.8'

- name: Setup Environment
run: sudo apt-get install --no-install-recommends --no-upgrade -qq "$APT_BASE" ${{ matrix.config.packages }}
run: |
sudo apt-get update
sudo apt-get install --no-install-recommends --no-upgrade -qq "$APT_BASE" ${{ matrix.config.packages }}
- name: depends cache files
uses: actions/cache@v4
Expand Down Expand Up @@ -513,7 +557,7 @@ jobs:
id: ARM64-build
os: ubuntu-20.04
host: aarch64-linux-gnu
packages: python3 g++-aarch64-linux-gnu
packages: g++-aarch64-linux-gnu
unit_tests: false
functional_tests: false
goal: install
Expand All @@ -523,7 +567,7 @@ jobs:
id: Win64-build
os: ubuntu-20.04
host: x86_64-w64-mingw32
packages: python3 nsis g++-mingw-w64-x86-64 wine-binfmt wine64
packages: nsis g++-mingw-w64-x86-64 wine-binfmt wine64
unit_tests: false
functional_tests: false
symbol_check: true
Expand All @@ -544,7 +588,7 @@ jobs:
id: macOS10.12-build
os: ubuntu-20.04
host: x86_64-apple-darwin16
packages: cmake imagemagick libcap-dev librsvg2-bin libz-dev libbz2-dev libtiff-tools python3-dev python3-setuptools
packages: cmake imagemagick libcap-dev librsvg2-bin libz-dev libbz2-dev libtiff-tools
XCODE_VERSION: 11.3.1
XCODE_BUILD_ID: 11C505
unit_tests: false
Expand All @@ -557,8 +601,15 @@ jobs:
- name: Get Source
uses: actions/checkout@v4

- name: Initialize Python
uses: actions/setup-python@v5
with:
python-version: '3.8'

- name: Setup Environment
run: sudo apt-get install --no-install-recommends --no-upgrade -qq "$APT_BASE" ${{ matrix.config.packages }}
run: |
sudo apt-get update
sudo apt-get install --no-install-recommends --no-upgrade -qq "$APT_BASE" ${{ matrix.config.packages }}
- name: depends cache files
if: matrix.config.no_depends != 1
Expand Down Expand Up @@ -711,18 +762,26 @@ jobs:
id: macos-x86_64-tests
os: macos-12
host: x86_64-apple-darwin16
packages: python@3.8
packages: None
test_runner_extra: "--all --exclude feature_dbcrash"

steps:
- name: Initialize Python
uses: actions/setup-python@v5
with:
python-version: '3.8'

- name: Setup Environment
run: |
if [[ ${{ matrix.config.os }} = ubuntu* ]]; then
sudo apt-get install --no-install-recommends --no-upgrade -qq ${{ matrix.config.packages }}
fi
if [[ ${{ matrix.config.os }} = macos* ]]; then
brew install ${{ matrix.config.packages }}
if [[ ${{ matrix.config.packages }} != None ]]; then
if [[ ${{ matrix.config.os }} = ubuntu* ]]; then
sudo apt-get install --no-install-recommends --no-upgrade -qq ${{ matrix.config.packages }}
fi
if [[ ${{ matrix.config.os }} = macos* ]]; then
brew install ${{ matrix.config.packages }}
fi
fi
pip install pyzmq
- name: Download Build Artifact
uses: actions/download-artifact@v4
Expand Down

0 comments on commit 9bc2ee2

Please sign in to comment.