2020-12-09 20:08:58 -07:00
name : ci/gh-actions/depends
on : [ push, pull_request]
jobs :
build-macos :
runs-on : ubuntu-18.04
env :
CCACHE_COMPRESS : 1
CCACHE_TEMPDIR : /tmp/.ccache-temp
strategy :
fail-fast : false
matrix :
toolchain :
- name : "RISCV 64bit"
host : "riscv64-linux-gnu"
packages : "python3 gperf g++-riscv64-linux-gnu"
- name : "ARM v7"
host : "arm-linux-gnueabihf"
packages : "python3 gperf g++-arm-linux-gnueabihf"
- name : "ARM v8"
host : "aarch64-linux-gnu"
packages : "python3 gperf g++-aarch64-linux-gnu"
- name : "i686 Win"
host : "i686-w64-mingw32"
packages : "python3 g++-mingw-w64-i686 qttools5-dev-tools"
- name : "i686 Linux"
host : "i686-pc-linux-gnu"
packages : "gperf cmake g++-multilib python3-zmq"
- name : "Win64"
host : "x86_64-w64-mingw32"
packages : "cmake python3 g++-mingw-w64-x86-64 qttools5-dev-tools"
- name : "x86_64 Linux"
host : "x86_64-unknown-linux-gnu"
packages : "gperf cmake python3-zmq libdbus-1-dev libharfbuzz-dev"
- name : "Cross-Mac"
host : "x86_64-apple-darwin11"
packages : "cmake imagemagick libcap-dev librsvg2-bin libz-dev libbz2-dev libtiff-tools python-dev python3-setuptools-git"
osx_sdk : "10.11"
- name : "x86_64 Freebsd"
host : "x86_64-unknown-freebsd"
packages : "clang-8 gperf cmake python3-zmq libdbus-1-dev libharfbuzz-dev"
name : ${{ matrix.toolchain.name }}
steps :
- uses : actions/checkout@v1
with :
submodules : recursive
2021-07-10 06:56:41 -06:00
# Most volatile cache
2020-12-09 20:08:58 -07:00
- name : ccache
uses : actions/cache@v2
with :
2021-07-10 06:56:41 -06:00
path : ~/.ccache
2020-12-09 20:08:58 -07:00
key : ccache-${{ matrix.toolchain.host }}-${{ github.sha }}
restore-keys : ccache-${{ matrix.toolchain.host }}-
2021-07-10 06:56:41 -06:00
# Less volatile cache
- name : depends cache
uses : actions/cache@v2
with :
path : contrib/depends/built
key : depends-${{ matrix.toolchain.host }}-${{ hashFiles('contrib/depends/packages/*') }}
restore-keys : |
depends-${{ matrix.toolchain.host }}-${{ hashFiles('contrib/depends/packages/*') }}
depends-${{ matrix.toolchain.host }}-
# Static cache
- name : OSX SDK cache
uses : actions/cache@v2
with :
path : contrib/depends/sdk-sources
key : sdk-${{ matrix.toolchain.host }}-${{ matrix.toolchain.osx_sdk }}
restore-keys : sdk-${{ matrix.toolchain.host }}-${{ matrix.toolchain.osx_sdk }}
2020-12-09 20:08:58 -07:00
- name : set apt conf
run : |
echo "Acquire::Retries \"3\";" | sudo tee -a /etc/apt/apt.conf.d/80-custom
echo "Acquire::http::Timeout \"120\";" | sudo tee -a /etc/apt/apt.conf.d/80-custom
echo "Acquire::ftp::Timeout \"120\";" | sudo tee -a /etc/apt/apt.conf.d/80-custom
- name : install dependencies
2020-12-20 00:27:10 -07:00
run : sudo apt update; sudo apt -y install build-essential libtool cmake autotools-dev automake pkg-config bsdmainutils curl git ca-certificates ccache ${{ matrix.toolchain.packages }}
2020-12-09 20:08:58 -07:00
- name : prepare apple-darwin11
if : ${{ matrix.toolchain.host == 'x86_64-apple-darwin11' }}
run : |
mkdir -p contrib/depends/SDKs contrib/depends/sdk-sources
if [ ! -f contrib/depends/sdk-sources/MacOSX${{ matrix.toolchain.osx_sdk }}.sdk.tar.gz ]; then curl --location --fail https://bitcoincore.org/depends-sources/sdks/MacOSX${{ matrix.toolchain.osx_sdk }}.sdk.tar.gz -o contrib/depends/sdk-sources/MacOSX${{ matrix.toolchain.osx_sdk }}.sdk.tar.gz; fi
if [ -f contrib/depends/sdk-sources/MacOSX${{ matrix.toolchain.osx_sdk }}.sdk.tar.gz ]; then tar -C contrib/depends/SDKs -xf contrib/depends/sdk-sources/MacOSX${{ matrix.toolchain.osx_sdk }}.sdk.tar.gz; fi
- name : prepare w64-mingw32
if : ${{ matrix.toolchain.host == 'x86_64-w64-mingw32' || matrix.toolchain.host == 'i686-w64-mingw32' }}
run : |
sudo update-alternatives --set ${{ matrix.toolchain.host }}-g++ $(which ${{ matrix.toolchain.host }}-g++-posix)
sudo update-alternatives --set ${{ matrix.toolchain.host }}-gcc $(which ${{ matrix.toolchain.host }}-gcc-posix)
- name : build
run : |
ccache --max-size=150M
make depends target=${{ matrix.toolchain.host }} -j2
- uses : actions/upload-artifact@v2
if : ${{ matrix.toolchain.host == 'x86_64-w64-mingw32' || matrix.toolchain.host == 'x86_64-apple-darwin11' || matrix.toolchain.host == 'x86_64-unknown-linux-gnu' }}
with :
name : ${{ matrix.toolchain.name }}
path : |
/home/runner/work/monero/monero/build/${{ matrix.toolchain.host }}/release/bin/monero-wallet-cli*
/home/runner/work/monero/monero/build/${{ matrix.toolchain.host }}/release/bin/monerod*