Skip to content

Conversation

@Sarthak-Shaha
Copy link
Contributor

@Sarthak-Shaha Sarthak-Shaha commented Oct 28, 2025

Issue Link:
MATTER-5534

Description of Problem/Feature:
This PR introduces a mechanism to upload Conan packages to Artifactory using Jenkins, addressing limitations with GitHub runners.

Description of Fix/Solution:

  • Leverage internal Jenkins runners to upload packages to Artifactory.
  • Restrict uploads to the main and release branches.
  • Use helper GitHub Actions to manage package creation and promotion:
    -- action-conan-create: Creates and uploads packages to matter-conan-dev.
    -- action-conan-promote: Promotes packages from matter-conan-dev to matter-conan-sqa or silabs-conan-production.

Package Structure

Build & Deployment

  • Added a Makefile with targets to simplify usage (more targets to be added in future).
  • Workflow runs only on main and release branches for now. See ​https://jira.silabs.com/browse/MATTER-5630​ for future support on PR/feature branches.

Helper Functions

  • executeConanCreatePublishAction: Uses action-conan-create to create and upload packages.
  • executeConanPromoteAction: Uses action-conan-promote to promote packages between repositories.
  • extractPackageInfoFromJson: Parses and stores output from executeConanCreatePublishAction.

Versioning Logic

  • action-conan-create uses SL_PRERELEASE as input to determine the next pre-release version.
  • Example: If 2.8.0-alpha.4 exists, the next generated version will be 2.8.0-alpha.5.

Testing Done:
Feature branch CI run
https://jenkins-cbs-iot-matter.silabs.net/blue/organizations/jenkins/Matter%20Extension%20GitHub/detail/PR-166/11/pipeline/27/
packages at
matter-conan-dev

Promoted to
matter-conan-sqa

to
silabs-conan-production

@Sarthak-Shaha Sarthak-Shaha changed the title Pkgmgr/upload package MATTER-5534 : upload package to artifactory Oct 28, 2025
@Sarthak-Shaha Sarthak-Shaha force-pushed the pkgmgr/upload_package branch 4 times, most recently from dad9c4e to b554b78 Compare November 4, 2025 16:58
- Add package manager configuration files - Update Jenkins integration for package upload - Configure package promotion to silabs-conan-production - Update .gitignore for package manager files - Add Makefile for package management - Configure package dependencies and firmware
@Sarthak-Shaha Sarthak-Shaha marked this pull request as ready for review November 4, 2025 20:58
@Sarthak-Shaha Sarthak-Shaha requested a review from a team as a code owner November 4, 2025 20:58
Copilot AI review requested due to automatic review settings November 4, 2025 20:58
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR implements a mechanism to upload Conan packages to Artifactory using Jenkins, introducing new workflows for package creation, versioning, and promotion across multiple Artifactory repositories (dev, SQA, and production).

Key changes include:

  • Added Jenkins pipeline integration with helper functions for creating, uploading, and promoting packages
  • Restructured package conanfiles to embed shared logic directly instead of using a base class
  • Introduced versioning support with prerelease qualifiers (e.g., alpha) and automated version incrementation

Reviewed Changes

Copilot reviewed 10 out of 12 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
jenkins_integration/jenkinsFunctions.groovy Added helper functions for Conan package creation, upload, and promotion workflows
jenkins_integration/Jenkinsfile Added new pipeline stage to create and upload packages on main and release branches
packages/matter/conanfile.py Refactored to remove base class dependency, embed shared logic, and add extensive logging
packages/matter_app/conanfile.py Refactored to remove base class dependency and embed shared logic directly
Makefile Added automation targets for package management, versioning, and editable mode control
packages/remotes.json Simplified to include only silabs-conan-production remote
packages/.prerelease Added prerelease qualifier file containing "alpha"
packages/matter_dependencies.slt Added dependency specification file with version ranges
packages/wifi_firmware.slt Added WiFi firmware dependency specification
packages/README.md Updated documentation to reflect new structure

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.


# ------------------------- Helpers -------------------------
def _process_slce_extra(self, filename: str = "matter.slce.extra") -> dict:
def _process_slce_extra(self, filename: str = "packages/matter/matter.slce.extra") -> dict:
Copy link

Copilot AI Nov 4, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The default filename path 'packages/matter/matter.slce.extra' is relative and may not resolve correctly depending on the working directory. Since repo_root is available via self.repo_root, construct the path using: os.path.join(self.repo_root, 'packages/matter/matter.slce.extra') to ensure the file is found regardless of execution context.

Copilot uses AI. Check for mistakes.
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@copilot open a new pull request to apply changes based on this feedback

Copy link
Contributor

Copilot AI commented Nov 4, 2025

@Sarthak-Shaha I've opened a new pull request, #177, to work on those changes. Once the pull request is ready, I'll request review from you.

…er (#177) * Initial plan * Update _process_slce_extra to use absolute path construction Co-authored-by: Sarthak-Shaha <130495524+Sarthak-Shaha@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: Sarthak-Shaha <130495524+Sarthak-Shaha@users.noreply.github.com>
@github-actions
Copy link

github-actions bot commented Nov 4, 2025


Thank you for your submission, we really appreciate it. Like many open-source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution. For privacy information, see our Privacy Notice. You can sign the CLA by just posting a Pull Request Comment same as the below format.


I have read the CLA Document and I hereby sign the CLA behalf on myself, e-mail: example@example.com

or

I have read the CLA Document and I hereby sign the CLA behalf of my company, e-mail: example@example.com

Signature is valid for 6 months.


1 out of 2 committers have signed the CLA.
✅ (Sarthak-Shaha)[https://github.com/Sarthak-Shaha]
❌ @Copilot
This bot will be retriggered when the Contributor License Agreement comment has been provided. Posted by the CLA Assistant Lite bot.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

3 participants