Skip to content

Commit

Permalink
Add Conanfile for Cura resources and Git workflows
Browse files Browse the repository at this point in the history
Added a new Conanfile for handling Cura resources which includes definitions, extruders, intent, meshes, quality, and variants. Also, updated the `.github/workflows/conan-package.yml` for specific paths and added a new GitHub workflow `conan-package-resources.yml` for handling the packaging of resources.

Contribute to NP-186
  • Loading branch information
jellespijker committed Apr 30, 2024
1 parent fb965b8 commit 39b48d6
Show file tree
Hide file tree
Showing 4 changed files with 91 additions and 2 deletions.
39 changes: 39 additions & 0 deletions .github/workflows/conan-package-resources.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
name: conan-package-resources

on:
push:
paths:
- '.github/workflows/conan-package-resources.yml'
- 'resources/definitions/**'
- 'resources/extruders/**'
- 'resources/intent/**'
- 'resources/meshes/**'
- 'resources/quality/**'
- 'resources/variants/**'
- 'resources/conanfile.py'
- 'resources/conandata.yml'
branches:
- 'main'
- 'CURA-*'
- 'PP-*'
- 'NP-*'
- '[0-9].[0-9]*'
- '[0-9].[0-9][0-9]*'

env:
CONAN_LOGIN_USERNAME_CURA: ${{ secrets.CONAN_USER }}
CONAN_PASSWORD_CURA: ${{ secrets.CONAN_PASS }}

jobs:
conan-recipe-version:
uses: ultimaker/cura-workflows/.github/workflows/conan-recipe-version.yml@main
with:
project_name: cura_resources

conan-package-export:
needs: [ conan-recipe-version ]
uses: ultimaker/cura-workflows/.github/workflows/conan-recipe-export.yml@main
with:
recipe_id_full: ${{ needs.conan-recipe-version.outputs.recipe_id_full }}
recipe_id_latest: ${{ needs.conan-recipe-version.outputs.recipe_id_latest }}
secrets: inherit
4 changes: 2 additions & 2 deletions .github/workflows/conan-package.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,11 @@ on:
push:
paths:
- 'plugins/**'
- 'resources/**'
- 'cura/**'
- 'icons/**'
- 'tests/**'
- 'packaging/**'
- '.github/workflows/conan-*.yml'
- '.github/workflows/conan-package.yml'
- '.github/workflows/notify.yml'
- '.github/workflows/requirements-runner.txt'
- 'requirements*.txt'
Expand All @@ -20,6 +19,7 @@ on:
- 'main'
- 'CURA-*'
- 'PP-*'
- 'NP-*'
- '[0-9].[0-9]*'
- '[0-9].[0-9][0-9]*'

Expand Down
1 change: 1 addition & 0 deletions resources/conandata.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
version: "5.8.0-alpha.0"
49 changes: 49 additions & 0 deletions resources/conanfile.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
import os

from conan import ConanFile
from conan.tools.files import copy, update_conandata
from conan.tools.scm import Version
from conan.errors import ConanInvalidConfiguration

required_conan_version = ">=1.58.0 <2.0.0"


class CuraResource(ConanFile):
name = "cura_resources"
license = ""
author = "UltiMaker"
url = "https://github.com/Ultimaker/cura-private-data"
description = "Cura Resources"
topics = ("conan", "cura")
exports = "LICENSE*"
settings = "os", "compiler", "build_type", "arch"
no_copy_source = True

def set_version(self):
if not self.version:
self.version = self.conan_data["version"]

def export(self):
update_conandata(self, {"version": self.version})

def export_sources(self):
copy(self, "*", os.path.join(self.recipe_folder, "definitions"), os.path.join(self.export_sources_folder, "resources", "definitions"))
copy(self, "*", os.path.join(self.recipe_folder, "extruders"), os.path.join(self.export_sources_folder, "resources", "extruders"))
copy(self, "*", os.path.join(self.recipe_folder, "intent"), os.path.join(self.export_sources_folder, "resources", "intent"))
copy(self, "*", os.path.join(self.recipe_folder, "meshes"), os.path.join(self.export_sources_folder, "resources", "meshes"))
copy(self, "*", os.path.join(self.recipe_folder, "quality"), os.path.join(self.export_sources_folder, "resources", "quality"))
copy(self, "*", os.path.join(self.recipe_folder, "variants"), os.path.join(self.export_sources_folder, "resources", "variants"))

def validate(self):
if Version(self.version) <= Version("4"):
raise ConanInvalidConfiguration("Only versions 5+ are support")

def package(self):
copy(self, "*", os.path.join(self.export_sources_folder, "resources"), os.path.join(self.package_folder, "res", "resources"))

def package_info(self):
self.cpp_info.includedirs = []
self.cpp_info.resdirs = ["res"]

def package_id(self):
self.info.clear()

0 comments on commit 39b48d6

Please sign in to comment.