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: 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 ccache -y # choco install zip -y # - 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-windows-${{ hashFiles('contrib/cmake/conanfile.py') }} # - name: install msvc toolset # uses: ilammy/msvc-dev-cmd@v1 # # - name: Set up Visual Studio shell # uses: egor-tensin/vs-shell@v2 # with: # arch: x64 # - name: build server # env: # CCACHE_TEMPDIR: ${{ github.workspace }}/ccache # run: | # ${{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-*