From 17d1d9521736f4a7ee11e10a506eee1808adce19 Mon Sep 17 00:00:00 2001 From: "j.spijker@ultimaker.com" Date: Fri, 17 Jun 2022 18:15:14 +0200 Subject: [PATCH] Add the conan-package workflow Contributes to CURA-9365 --- .github/workflows/conan-package.yml | 119 ++++++++++++++++++++++++++++ 1 file changed, 119 insertions(+) create mode 100644 .github/workflows/conan-package.yml diff --git a/.github/workflows/conan-package.yml b/.github/workflows/conan-package.yml new file mode 100644 index 0000000000..30d62c8bad --- /dev/null +++ b/.github/workflows/conan-package.yml @@ -0,0 +1,119 @@ +--- +name: conan-package + +# Exports the recipe, sources and binaries for Mac, Windows and Linux and upload these to the server such that these can +# be used downstream. +# +# It should run on pushes against main or CURA-* branches, but it will only create the binaries for main and release +# branches +# +# The version of the recipe has the following naming scheme: +# - Pushed to main: /..-alpha+@stable/utlimaker +# - Pushed to release branch: /..-beta+@stable/utlimaker +# - Release tag: /..@_/_ +# - Pushed to CURA-****_branch: /..-CURA-****+@testing/utlimaker +# - Merge request: /..-merge-***+@testing/utlimaker +# - Pull request: /..-pull-***+@testing/utlimaker + +on: + push: + paths: + - 'plugins/**' + - 'resources/**' + - 'cura/**' + - 'icons/**' + - 'tests/**' + - '.github/workflows/conan-package.yml' + - 'requirements*.txt' + branches: + - main + - 'CURA-*' + - '[4-9].[0-9]' + + pull_request: + paths: + - 'plugins/**' + - 'resources/**' + - 'cura/**' + - 'icons/**' + - 'tests/**' + - '.github/workflows/conan-package.yml' + - 'requirements*.txt' + branches: + - main + - '[4-9].[0-9]' + + +jobs: + conan-recipe-version: + uses: ultimaker/cura/.github/workflows/conan-recipe-version.yml@CURA-9365_fix_building_cura_main + with: + project_name: cura + + conan-package-export: + needs: [ conan-recipe-version ] + uses: ultimaker/cura/.github/workflows/conan-recipe-export.yml@CURA-9365_fix_building_cura_main + with: + recipe_id_full: ${{ needs.conan-recipe-version.outputs.recipe_id_full }} + recipe_id_latest: ${{ needs.conan-recipe-version.outputs.recipe_id_latest }} + runs_on: 'ubuntu-20.04' + python_version: '3.10.4' + conan_config_branch: 'CURA-9177_Fix_CI_CD' + conan_logging_level: 'info' + secrets: inherit + + conan-package-create-macos: + # FIXME: Remove once merged to main + if: ${{ github.event_name == 'push' && (github.ref_name == 'main' || github.ref_name == 'CURA-9365_fix_building_cura_main') }} + needs: [ conan-recipe-version, conan-package-export ] + + uses: ultimaker/cura/.github/workflows/conan-package-create.yml@CURA-9365_fix_building_cura_main + with: + recipe_id_full: ${{ needs.conan-recipe-version.outputs.recipe_id_full }} + runs_on: 'macos-10.15' + python_version: '3.10.4' + conan_config_branch: 'CURA-9177_Fix_CI_CD' + conan_logging_level: 'info' + secrets: inherit + + conan-package-create-windows: + # FIXME: Remove once merged to main + if: ${{ github.event_name == 'push' && (github.ref_name == 'main' || github.ref_name == 'CURA-9365_fix_building_cura_main') }} + needs: [ conan-recipe-version, conan-package-export ] + + uses: ultimaker/cura/.github/workflows/conan-package-create.yml@CURA-9365_fix_building_cura_main + with: + recipe_id_full: ${{ needs.conan-recipe-version.outputs.recipe_id_full }} + runs_on: 'windows-2022' + python_version: '3.10.4' + conan_config_branch: 'CURA-9177_Fix_CI_CD' + conan_logging_level: 'info' + secrets: inherit + + conan-package-create-linux: + # FIXME: Remove once merged to main + if: ${{ github.event_name == 'push' && (github.ref_name == 'main' || github.ref_name == 'CURA-9365_fix_building_cura_main') }} + needs: [ conan-recipe-version, conan-package-export ] + + uses: ultimaker/cura/.github/workflows/conan-package-create.yml@CURA-9365_fix_building_cura_main + with: + recipe_id_full: ${{ needs.conan-recipe-version.outputs.recipe_id_full }} + runs_on: 'ubuntu-20.04' + python_version: '3.10.4' + conan_config_branch: 'CURA-9177_Fix_CI_CD' + conan_logging_level: 'info' + secrets: inherit + + notify: + # FIXME: Remove once merged to main + if: ${{ always() }} + needs: [ conan-package-create-macos, conan-package-create-windows, conan-package-create-linux ] + + uses: ultimaker/cura/.github/workflows/notify.yml@CURA-9365_fix_building_cura_main + with: + success: ${{ contains(join(needs.*.result, ','), 'success') }} + success_title: "New binaries created for ${{ github.repository }}" + success_body: "New binaries created for ${{ github.repository }}" + failure_title: "Failed to create binaries ${{ github.repository }}" + failure_body: "Failed to create binaries ${{ github.repository }}" + secrets: inherit