aboutsummaryrefslogtreecommitdiff
path: root/.github/workflows
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows')
-rw-r--r--.github/workflows/build.yml34
-rw-r--r--.github/workflows/depends.yml22
2 files changed, 37 insertions, 19 deletions
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 68312ac04..7a81f7a38 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -5,6 +5,9 @@ on: [push, pull_request]
# The below variables reduce repetitions across similar targets
env:
REMOVE_BUNDLED_BOOST : rm -rf /usr/local/share/boost
+ BUILD_DEFAULT_LINUX: |
+ ccache --max-size=150M
+ cmake -S . -B build -D ARCH="default" -D BUILD_TESTS=ON -D CMAKE_BUILD_TYPE=release && cmake --build build -j3
APT_INSTALL_LINUX: 'sudo apt -y install build-essential cmake libboost-all-dev miniupnpc libunbound-dev graphviz doxygen libunwind8-dev pkg-config libssl-dev libzmq3-dev libsodium-dev libhidapi-dev libnorm-dev libusb-1.0-0-dev libpgm-dev libprotobuf-dev protobuf-compiler ccache'
APT_SET_CONF: |
echo "Acquire::Retries \"3\";" | sudo tee -a /etc/apt/apt.conf.d/80-custom
@@ -60,11 +63,17 @@ jobs:
ccache --max-size=150M
make release-static-win64 -j2
+# See the OS labels and monitor deprecations here:
+# https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners#supported-runners-and-hardware-resources
+
build-ubuntu:
- runs-on: ubuntu-latest
+ runs-on: ${{ matrix.os }}
env:
CCACHE_COMPRESS: 1
CCACHE_TEMPDIR: /tmp/.ccache-temp
+ strategy:
+ matrix:
+ os: [ubuntu-latest, ubuntu-18.04]
steps:
- uses: actions/checkout@v1
with:
@@ -72,8 +81,8 @@ jobs:
- uses: actions/cache@v2
with:
path: ~/.ccache
- key: ccache-ubuntu-build-${{ github.sha }}
- restore-keys: ccache-ubuntu-build-
+ key: ccache-ubuntu-build-${{ matrix.os }}-${{ github.sha }}
+ restore-keys: ccache-ubuntu-build-${{ matrix.os }}
- name: remove bundled boost
run: ${{env.REMOVE_BUNDLED_BOOST}}
- name: set apt conf
@@ -83,9 +92,7 @@ jobs:
- name: install monero dependencies
run: ${{env.APT_INSTALL_LINUX}}
- name: build
- run: |
- ccache --max-size=150M
- make -j3
+ run: ${{env.BUILD_DEFAULT_LINUX}}
libwallet-ubuntu:
runs-on: ubuntu-latest
@@ -112,8 +119,8 @@ jobs:
- name: build
run: |
ccache --max-size=150M
- cmake -DBUILD_GUI_DEPS=ON
- make -j3
+ cmake .
+ make wallet_api -j3
test-ubuntu:
needs: build-ubuntu
@@ -129,8 +136,8 @@ jobs:
uses: actions/cache@v2
with:
path: ~/.ccache
- key: test-ubuntu-ccache-${{ github.sha }}
- restore-keys: test-ubuntu-ccache-
+ key: ccache-ubuntu-build-ubuntu-latest-${{ github.sha }}
+ restore-keys: ccache-ubuntu-build-ubuntu-latest
- name: remove bundled boost
run: ${{env.REMOVE_BUNDLED_BOOST}}
- name: set apt conf
@@ -145,11 +152,8 @@ jobs:
env:
CTEST_OUTPUT_ON_FAILURE: ON
run: |
- ccache --max-size=150M
- DIR_BUILD="build/ci/release"
- DIR_SRC="`pwd`"
- mkdir -p "${DIR_BUILD}" && cd "${DIR_BUILD}"
- cmake -S "${DIR_SRC}" -D ARCH="default" -D BUILD_SHARED_LIBS=ON -D BUILD_TESTS=ON -D CMAKE_BUILD_TYPE=release && make -j3 && make test
+ ${{env.BUILD_DEFAULT_LINUX}}
+ cmake --build build --target test
# ARCH="default" (not "native") ensures, that a different execution host can execute binaries compiled elsewhere.
# BUILD_SHARED_LIBS=ON speeds up the linkage part a bit, reduces size, and is the only place where the dynamic linkage is tested.
diff --git a/.github/workflows/depends.yml b/.github/workflows/depends.yml
index 3e0f048c7..8e4eaf177 100644
--- a/.github/workflows/depends.yml
+++ b/.github/workflows/depends.yml
@@ -45,15 +45,29 @@ jobs:
- uses: actions/checkout@v1
with:
submodules: recursive
+# Most volatile cache
- name: ccache
uses: actions/cache@v2
with:
- path: |
- ~/.ccache
- contrib/depends/built
- contrib/depends/sdk-sources
+ path: ~/.ccache
key: ccache-${{ matrix.toolchain.host }}-${{ github.sha }}
restore-keys: ccache-${{ matrix.toolchain.host }}-
+# 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 }}
- name: set apt conf
run: |
echo "Acquire::Retries \"3\";" | sudo tee -a /etc/apt/apt.conf.d/80-custom