name: cli-testnet on: # Allows you to run this workflow manually from the Actions tab workflow_dispatch: push: paths-ignore: - '**.md' pull_request: paths-ignore: - '**.md' env: CCACHE_SETTINGS: | ccache --max-size=150M ccache --set-config=compression=true jobs: easy-compile: runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: os: [ windows-2019, macos-13, ubuntu-latest ] include: - os: windows-2019 - os: macos-13 - os: ubuntu-latest env: CCACHE_TEMPDIR: ${{ github.workspace }}/ccache steps: - uses: actions/checkout@v4 with: fetch-depth: 0 submodules: recursive - uses: ilammy/msvc-dev-cmd@v1 with: arch: amd64 if: ${{ matrix.os == 'windows-2019' }} name: setup msvc vcvars - name: install dependencies run: | sudo apt update sudo apt-get install -y git ccache if: ${{ matrix.os == 'ubuntu-latest' }} - name: Setup Python uses: actions/setup-python@v4.6.0 with: python-version: "3.10" - name: Install autotools on macOS run: brew install automake if: ${{ matrix.os == 'macos-13' }} - uses: actions/cache@v3 with: path: ${{ github.workspace }}/ccache key: ccache-${{ runner.os }}-build-testnet-cli restore-keys: ccache-${{ runner.os }}-build-testnet-cli - name: Using the builtin GitHub Cache Action for .conan id: github-cache-conan uses: actions/cache@v4 env: cache-name: cache-conan-modules with: save-always: true path: ${{ env.CONAN_USER_HOME }} key: host-${{ runner.os }}-target-${{ runner.os }}-${{ hashFiles('conanfile.py') }} - name: Install Conan run: pip install conan pytest && conan --version - name: Setup CMake and Ninja uses: lukka/get-cmake@latest with: cmakeVersion: "~3.25.0" ninjaVersion: "^1.11.1" - name: Call make release-testnet run: | conan config install contrib/cmake/settings_user.yml make release-testnet linux-amd64: runs-on: ubuntu-20.04 env: CCACHE_TEMPDIR: ${{ github.workspace }}/ccache steps: - name: Cancel Previous Runs uses: styfle/cancel-workflow-action@0.9.1 with: access_token: ${{ github.token }} - uses: actions/checkout@v3 with: fetch-depth: 0 submodules: recursive - uses: actions/cache@v3 with: path: ${{ github.workspace }}/ccache key: ccache-${{ runner.os }}-build-testnet-cli restore-keys: ccache-${{ runner.os }}-build-testnet-cli - name: update apt run: sudo apt update - name: install dependencies run: sudo apt-get install -y python-dev autotools-dev libboost-all-dev libicu-dev libbz2-dev git screen checkinstall zlib1g-dev ccache miniupnpc - name: build server run: | ${{env.CCACHE_SETTINGS}} ./utils/build/testnet_linux_cli.sh - name: Move Tarball run: cd build/release && mv lethean-linux-cli-*.tar.bz2 ../../ - uses: actions/upload-artifact@v3 with: name: lethean-linux-cli if-no-files-found: error path: lethean-linux-cli-*.tar.bz2 - name: Release uses: softprops/action-gh-release@v1 if: startsWith(github.ref, 'refs/tags/') with: files: ${{ github.workspace }}/lethean-linux-cli-*.tar.bz2 macos-amd64: runs-on: macos-latest env: CCACHE_TEMPDIR: ${{ github.workspace }}/ccache steps: - name: Cancel Previous Runs uses: styfle/cancel-workflow-action@0.9.1 with: access_token: ${{ github.token }} - uses: actions/checkout@v3 with: fetch-depth: 0 submodules: recursive - uses: actions/cache@v3 with: path: ${{ github.workspace }}/ccache key: ccache-${{ runner.os }}-build-testnet-cli restore-keys: ccache-${{ runner.os }}-build-testnet-cli - name: install dependencies run: HOMEBREW_NO_AUTO_UPDATE=1 brew install openssl boost icu4c ccache miniupnpc - name: build server env: PKG_CONFIG_PATH: "/usr/local/opt/openssl@3/lib/pkgconfig" OPENSSL_ROOT_DIR: "/usr/local/opt/openssl@3" ZANO_BOOST_ROOT: "/opt/homebrew/opt/boost" ZANO_BOOST_LIBS_PATH: "/opt/homebrew/opt/boost/lib" CMAKE_OSX_SYSROOT: "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX13.1.sdk" run: | ${{env.CCACHE_SETTINGS}} export LIBRARY_PATH=${LIBRARY_PATH}:/usr/local/opt/icu4c/lib ./utils/build/testnet_mac_osx_cli.sh - name: Move Tarball run: cd build/release && mv lethean-macos-cli-*.tar.bz2 ../../ - uses: actions/upload-artifact@v3 with: name: lethean-macos-cli if-no-files-found: error path: lethean-macos-cli-*.tar.bz2 - name: Release uses: softprops/action-gh-release@v1 if: startsWith(github.ref, 'refs/tags/') with: files: ${{ github.workspace }}/lethean-macos-cli-*.tar.bz2 windows-amd64: runs-on: windows-latest env: CCACHE_TEMPDIR: ${{ github.workspace }}/ccache steps: - name: Cancel Previous Runs uses: styfle/cancel-workflow-action@0.9.1 with: access_token: ${{ github.token }} - uses: actions/checkout@v3 with: fetch-depth: 0 submodules: recursive - uses: actions/cache@v3 with: path: ${{ github.workspace }}/ccache key: ccache-${{ runner.os }}-build-testnet-cli restore-keys: ccache-${{ runner.os }}-build-testnet-cli - name: Eat the Choco run: | choco install openssl --version 1.1.1.1500 -y choco install ccache -y choco install zip -y - name: install msvc toolset uses: ilammy/msvc-dev-cmd@v1 - name: Install boost uses: MarkusJx/install-boost@v2.4.1 id: install-boost with: # REQUIRED: Specify the required boost version # A list of supported versions can be found here: # https://github.com/MarkusJx/prebuilt-boost/blob/main/versions-manifest.json boost_version: 1.80.0 platform_version: 2022 toolset: msvc link: static - name: Set up Visual Studio shell uses: egor-tensin/vs-shell@v2 with: arch: x64 - name: build server env: QT_PREFIX_PATH: C:\ProgramData\chocolatey\lib\Qt5.11.2\5.11.2 BOOST_ROOT: ${{ steps.install-boost.outputs.BOOST_ROOT }} LOCAL_BOOST_PATH: ${{ steps.install-boost.outputs.BOOST_ROOT }} OPENSSL_ROOT_DIR: "C:\\Program Files\\OpenSSL-Win64" CCACHE_TEMPDIR: ${{ github.workspace }}/ccache run: | refreshenv ${{env.CCACHE_SETTINGS}} .\utils\build\testnet_windows_cli.bat - uses: actions/upload-artifact@v3 with: name: lethean-windows-cli if-no-files-found: error path: ${{ github.workspace }}\lethean-win-cli-*.zip - name: Release uses: softprops/action-gh-release@v1 if: startsWith(github.ref, 'refs/tags/') with: files: | lethean-win-cli-*