diff --git a/.github/workflows/ci-conan.yml b/.github/workflows/ci-conan.yml index 2da1bcf62a96..95e4742c212c 100644 --- a/.github/workflows/ci-conan.yml +++ b/.github/workflows/ci-conan.yml @@ -66,7 +66,7 @@ jobs: - name: Install common packages run: | - pip install "conan==2.8.0" + pip install conan pip install numpy ${{ matrix.container && 'sudo -u test-user' }} conan profile detect ${{ matrix.container && 'sudo -u test-user' }} conan profile show @@ -74,7 +74,7 @@ jobs: - name: Run conan run: | ${{ matrix.container && 'sudo -u test-user' }} git config --global --add safe.directory `pwd` - ${{ matrix.container && 'sudo -u test-user' }} conan create . --build=missing -s:a compiler.cppstd=17 -pr:b=default ${{matrix.conanflags}} + ${{ matrix.container && 'sudo -u test-user' }} conan create . --update --build=missing -s:a compiler.cppstd=17 -pr:b=default ${{matrix.conanflags}} - name: Install test dependencies if: matrix.os == 'ubuntu-22.04' diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index 21ec07e3ad80..418c2189d359 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -56,7 +56,7 @@ jobs: run: | export SDKROOT="`xcrun --show-sdk-path`" brew update - brew uninstall cmake + brew uninstall cmake # workaround for `Error: cmake was installed from the local/pinned tap` brew install $(cat scripts/docs/en/deps/macos.md) brew install clang-format brew install lld diff --git a/conanfile.py b/conanfile.py index d0ba854da730..2580c9f4a5d0 100644 --- a/conanfile.py +++ b/conanfile.py @@ -8,7 +8,7 @@ from conan.tools.cmake import cmake_layout from conan.tools.cmake import CMakeDeps from conan.tools.cmake import CMakeToolchain -from conan.tools.files import copy +from conan.tools.files import get, copy, export_conandata_patches from conan.tools.files import load from conan.tools.scm import Git from conan.tools.system import package_manager @@ -20,7 +20,7 @@ class UserverConan(ConanFile): name = 'userver' description = 'The C++ Asynchronous Framework' topics = ('framework', 'coroutines', 'asynchronous') - url = 'https://github.com/userver-framework/userver' + url = 'https://github.com/conan-io/conan-center-index' homepage = 'https://userver.tech/' license = 'Apache-2.0' package_type = 'static-library' @@ -91,15 +91,24 @@ class UserverConan(ConanFile): 're2/*:with_icu': True, } + def source(self): + known_version = (self.conan_data or {}).get("sources", {}).get(self.version) + if known_version: + get(self, **known_version, strip_root=True) + else: + Git(self).clone('https://github.com/userver-framework/userver.git', target='.') + def export_sources(self): - git = Git(self) - tracked_sources = git.included_files() - # To speed up copying, we take only the root folders - tracked_sources = set(f.split('/')[0] for f in tracked_sources) - for i in tracked_sources: - copy(self, f'{i}*', self.recipe_folder, self.export_sources_folder) + known_version = (self.conan_data or {}).get("sources", {}).get(self.version) + if known_version: + export_conandata_patches(self) + else: + pass # Running from develop branch, no patches def set_version(self): + if self.version: + return + content = load( self, os.path.join(