Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cura 9177 fix ci ct #137

Closed
wants to merge 33 commits into from
Closed

Cura 9177 fix ci ct #137

wants to merge 33 commits into from

Conversation

jellespijker
Copy link
Member

@jellespijker jellespijker commented Apr 26, 2022

This Pull Request should fix our failing CI/CT pipelines

In order for this to work correctly I took a bit of a head start on CURA-8830 ad CURA-8824 and CURA-8783.

We should now have a fully working pipeline, 2 to be exact, which create conan-packages and binaries (for Mac, Windows, Linux) and apply code review using our clang-tidy guidelines. This last one isn't tested yet. But will be at the next PR ;-)

The unit-testing pipeline isn't used since these repo doesn't have any.

Breakdown per workflow:

  • conan-package.yml
    • Will run on a push to the branches: main, master, dev, release/**. But only if the files in src/**, cmake/**, tests/**, conanfile.py, CMakeList.txt, .github/workflows/**.yml are changed. It will always run on a Pull Request against: main, master, dev or release/**
    • It will build a Conan Recipe for Arcus for Windows, Mac and Linux and upload these to our JFrog server
    • It will use determine the Semantic Version automatically, by traversing the git history, looking for tags and specific branches.
      • the versions should update more logically once we discussed a new branching scheme in Cura & Cookies.
      • The build number is the distance of commits away since the last tag with or without additional build snapshot data
      • Checkout https://github.com/GitTools/GitVersion for more information
    • Conan makes use of a user/channel naming scheme, to differentiate between stable, testing or company specific releases.
      • If a package is created on master / main, then the user and channel will be marked ultimaker/stable resulting in a complete package reference as such arcus/5.1.0+53@ultimaker/stable
      • if a package is created on another branch or as Pull request the ultimaker/testing user and channel are used.
      • resulting in arcus/5.0.0.0-PR136@ultimaker/testing for a PR and arcus/5.0.0-CURA-9177-Fix-CI-CT.1+52@ultimaker/testing on an other branch.
      • if a release tag is created we use /, which equates to a arcus/5.1.0 package orin other words an official release
  • clang-tidy-review

All of the above workflows are set-up in such away that the pipelines use caches to speed up setting up the VM's. We specify the Python version to use and install the required Python packages using requirements.txt This Python Version should be the same version as the one we use in our distribution, since a couple of our dependencies (such as libArcus) link against them.

In order to get semver up and running I had to retag our old 13.x up until 15.x versioning number. In order to ensure that the old tags aren't accidentally uploaded by one of our devs we have to make sure that everyone runs git pull --prune --tags

part of:
Ultimaker/CuraEngine#1652

jellespijker and others added 10 commits April 26, 2022 15:20
# Conflicts:
#	.github/workflows/conan-package.yml
Contributes to CURA-9177
Contributes to CURA-9177
The same once used in CuraEngine

Contributes to CURA-9177
Contributes to CURA-9177
To test the clang-tidy Github Action

Contributes to CURA-9177
Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

clang-tidy made some suggestions

src/Error.cpp Outdated Show resolved Hide resolved
jellespijker and others added 17 commits April 26, 2022 16:13
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Contributes to CURA-9177
Contributes to CURA-9177
Needed to set the MSVC flags with Conan
options are specific versions or to use the same version as conan.

Setting it like this assures that it is taken
into account when creating the has, making sure
everything links to the same version.

Contributes to CURA-9177
Using the cmake_layout on Windows is giving troubles
probably because it tries to be intelligent when it
detects Visual Studio.

Specifying the folder structure in the conanfile
gives a more reliable outcome over all tree systems

Contributes to CURA-9177
doing a conan install can generate
these files, these should never be
commited

Contributes to CURA-9177
Also added section about the Python module

Contributes to CURA-9177
This can cause confusion when compiling
SIP
This needs to be fixed after the merge to main

Contributes to CURA-9338
Contributes to CURA-9177 and CURA-9365
Contributes to CURA-9177 and CURA-9365
Contributes to CURA-9177 and CURA-9365
Contributes to CURA-9177 and CURA-9365
Contributes to CURA-9177 and CURA-9365
Contributes to CURA-9177 and CURA-9365
Contributes to CURA-9177 and CURA-9365
Contributes to CURA-9177 and CURA-9365
This ensures that a conan packages is only exported once

Contributes to CURA-9177 and CURA-9365
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant