mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-08-07 22:13:58 -06:00
Add a reusable worrflow to determine the Version and id
This workflow will be used by all our repo's Contributes to CURA-9365
This commit is contained in:
parent
80a2c12bc1
commit
d3c151d415
1 changed files with 84 additions and 0 deletions
84
.github/workflows/conan-recipe-version.yml
vendored
Normal file
84
.github/workflows/conan-recipe-version.yml
vendored
Normal file
|
@ -0,0 +1,84 @@
|
|||
name: Get Conan Recipe Version
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
inputs:
|
||||
project_name:
|
||||
required: true
|
||||
type: string
|
||||
|
||||
outputs:
|
||||
recipe_id_full:
|
||||
description: "The full Conan recipe id: <name>/<version>@<user>/<channel>"
|
||||
value: ${{ jobs.get-semver.outputs.recipe_id_full }}
|
||||
|
||||
recipe_id_latest:
|
||||
description: "The full Conan recipe aliased (latest) id: <name>/(latest)@<user>/<channel>"
|
||||
value: ${{ jobs.get-semver.outputs.recipe_id_latest }}
|
||||
|
||||
recipe_semver_full:
|
||||
description: "The full semver <Major>.<Minor>.<Patch>-<PreReleaseTag>+<BuildMetaData>"
|
||||
value: ${{ jobs.get-semver.outputs.semver_full }}
|
||||
|
||||
jobs:
|
||||
get-semver:
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
outputs:
|
||||
recipe_id_full: ${{ inputs.project_name }}/${{ steps.git-tool.outputs.Major }}.${{ steps.git-tool.outputs.Minor }}.${{ steps.git-tool.outputs.Patch }}-${{ steps.prereleasetag.outputs.PreReleaseTag }}+${{ steps.git-tool.outputs.BuildMetaData }}@${{ steps.get-conan-broadcast-data.outputs.user }}/${{ steps.get-conan-broadcast-data.outputs.channel }}
|
||||
recipe_id_latest: ${{ steps.latest-alias.outputs.recipe_id_latest }}
|
||||
semver_full: ${{ steps.git-tool.outputs.Major }}.${{ steps.git-tool.outputs.Minor }}.${{ steps.git-tool.outputs.Patch }}-${{ steps.prereleasetag.outputs.PreReleaseTag }}+${{ steps.git-tool.outputs.BuildMetaData }}
|
||||
user: ${{ steps.get-conan-broadcast-data.outputs.user }}
|
||||
channel: ${{ steps.get-conan-broadcast-data.outputs.channel }}
|
||||
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
ref: ${{ github.head_ref }}
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Install GitVersion
|
||||
uses: gittools/actions/gitversion/setup@v0.9.13
|
||||
with:
|
||||
versionSpec: '5.x'
|
||||
|
||||
- name: GitTools
|
||||
id: git-tool
|
||||
uses: gittools/actions/gitversion/execute@v0.9.13
|
||||
|
||||
- name: Get short PreReleaseTag
|
||||
id: prereleasetag
|
||||
run: |
|
||||
long_pre_release_tag=${{ steps.git-tool.outputs.PreReleaseTag }}
|
||||
echo "::set-output name=PreReleaseTag::${long_pre_release_tag:0:9}"
|
||||
|
||||
- id: get-conan-broadcast-data
|
||||
name: Get Conan broadcast data
|
||||
run: |
|
||||
echo ${{ github.repository_owner }} | awk '{print "::set-output name=user::"tolower($0)}'
|
||||
|
||||
if [ "${{ github.ref_name == 'main' }}" = "true" ]; then
|
||||
echo ${{ github.repository_owner }} | awk '{print "::set-output name=user::"tolower($0)}'
|
||||
echo '::set-output name=channel::stable'
|
||||
elif [ "${{ steps.git-tool.outputs.fullSemVer == steps.git-tool.outputs.MajorMinorPatch }}" = "true" ]; then
|
||||
echo '::set-output name=user::_'
|
||||
echo '::set-output name=channel::_'
|
||||
elif [ "${{ github.event_name == 'merge' || github.event_name == 'pull_request' }}" = "true" ]; then
|
||||
echo ${{ github.repository_owner }} | awk '{print "::set-output name=user::"tolower($0)}'
|
||||
echo '::set-output name=channel::testing'
|
||||
else
|
||||
echo ${{ github.repository_owner }} | awk '{print "::set-output name=user::"tolower($0)}'
|
||||
echo ${{ github.ref_name }} | awk '{print "::set-output name=channel::"substr(tolower($0),0,9)}'
|
||||
fi
|
||||
|
||||
- name: Get latest alias
|
||||
id: latest-alias
|
||||
run: |
|
||||
# FIXME: Remove once merged to main
|
||||
if [ "${{ github.ref_name == 'main' }}" = "true" || "${{ github.ref_name == 'CURA-8160_fix_main' }}" ]; then
|
||||
echo "::set-output name=recipe_id_latest::${{ inputs.project_name }}/latest@${{ steps.get-conan-broadcast-data.outputs.user }}/${{ steps.get-conan-broadcast-data.outputs.channel }}"
|
||||
else
|
||||
echo "::set-output name=recipe_id_latest::''"
|
||||
fi
|
Loading…
Add table
Add a link
Reference in a new issue