install conan if not installed #36
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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: | |
CMAKE_OSX_SYSROOT: "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX13.2.1.sdk" | |
CCACHE_SETTINGS: | | |
ccache --max-size=150M | |
ccache --set-config=compression=true | |
jobs: | |
easy-compile: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ ubuntu-latest] | |
include: | |
- os: ubuntu-latest | |
target: linux-amd64 | |
net: testnet | |
# - os: macos-11 | |
# target: macos-amd64 | |
# net: testnet | |
# - os: macos-12 | |
# target: macos-amd64 | |
# net: testnet | |
# - os: windows-2019 | |
# target: windows-amd64 | |
# net: testnet | |
env: | |
CCACHE_TEMPDIR: ${{ github.workspace }}/ccache | |
CONAN_HOME: "${{ github.workspace }}/build/" | |
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@v5 | |
with: | |
python-version: "3.10" | |
cache: "pip" | |
- 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 }}-${{ matrix.target }}-build-testnet-cli | |
- name: Cache Conan | |
id: github-cache-conan | |
uses: actions/cache@v4 | |
env: | |
cache-name: cache-conan-modules | |
with: | |
save-always: true | |
path: ${{ github.workspace }}/build/p | |
key: host-${{ runner.os }}-target-${{ matrix.target }}-${{ hashFiles('contrib/cmake/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: | | |
make ci-${{ matrix.target }}-testnet | |
- name: Release Tag | |
uses: softprops/action-gh-release@v1 | |
if: startsWith(github.ref, 'refs/tags/') | |
with: | |
files: '*ethean-${{ matrix.target }}-cli.*' | |
- name: Release Branch | |
uses: softprops/action-gh-release@v1 | |
if: startsWith(github.ref, 'refs/heads/iTw3') | |
with: | |
tag_name: canary | |
prerelease: true | |
files: '*ethean-${{ matrix.target }}-cli.*' | |
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 }}/testnet-lethean-linux-cli-*.tar.bz2 | |
- name: Release Tag | |
uses: softprops/action-gh-release@v1 | |
if: startsWith(github.ref, 'refs/tags/') | |
with: | |
files: '*ethean-${{ matrix.target }}-cli.*' | |
- name: Release Branch | |
uses: softprops/action-gh-release@v1 | |
if: startsWith(github.ref, 'refs/heads/iTw3') | |
with: | |
tag_name: canary | |
prerelease: true | |
files: '*ethean-${{ matrix.target }}-cli.*' | |
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-* |