diff --git a/.github/workflows/depends.yml b/.github/workflows/depends.yml new file mode 100644 index 000000000..85a05f673 --- /dev/null +++ b/.github/workflows/depends.yml @@ -0,0 +1,85 @@ +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 + - name: ccache + uses: actions/cache@v2 + with: + path: | + ~/.ccache + contrib/depends/built + contrib/depends/sdk-sources + key: ccache-${{ matrix.toolchain.host }}-${{ github.sha }} + restore-keys: ccache-${{ matrix.toolchain.host }}- + - 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 + run: sudo apt -y install build-essential libtool cmake autotools-dev automake pkg-config bsdmainutils curl git ca-certificates ccache ${{ matrix.toolchain.packages }} + - 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*