name: Parse Version Number on: workflow_call: inputs: version: required: true type: string outputs: major: description: "Major number" value: ${{ jobs.parse.outputs.major }} minor: description: "Minor number" value: ${{ jobs.parse.outputs.minor }} patch: description: "Patch number" value: ${{ jobs.parse.outputs.patch }} build: description: "Build number" value: ${{ jobs.parse.outputs.build }} releaseChannel: description: "The release channel" value: ${{ jobs.parse.outputs.releaseChannel }} simpleVersion: description: "Simple Version output" value: ${{ jobs.parse.outputs.simpleVersion }} buildVersion: description: "Build Version Output" value: ${{ jobs.parse.outputs.buildVersion }} jobs: parse: runs-on: ubuntu-latest outputs: major: ${{ steps.parseStep.outputs.major }} minor: ${{ steps.parseStep.outputs.minor }} patch: ${{ steps.parseStep.outputs.patch }} build: ${{ steps.parseStep.outputs.build }} steps: - id: parseStep run: | input="${{ inputs.version }}" input="${VERSION#refs/tags/}" if [[ "$input" == *"/"* ]]; then releaseChannel=$(echo "$input" | cut -d'/' -f1) version=$(echo "$input" | cut -d'/' -f2) else releaseChannel="beta" version="$input" fi version=$(echo ${{ inputs.version }} | sed 's|.*/||') IFS='.' read -r major minor patch build <<< "$version" if [ -z "$build" ]; then build="0" fi SIMPLE_VERSION=$(echo $major.$minor.$patch.$build) BUILD_VERSION=$(echo $major.$minor.$patch-build.$build) echo "major=$major" >> $GITHUB_OUTPUT echo "minor=$minor" >> $GITHUB_OUTPUT echo "patch=$patch" >> $GITHUB_OUTPUT echo "build=$build" >> $GITHUB_OUTPUT echo "releaseChannel=$releaseChannel" >> $GITHUB_OUTPUT echo "simpleVersion=$SIMPLE_VERSION" >> $GITHUB_OUTPUT echo "buildVersion=$BUILD_VERSION" >> $GITHUB_OUTPUT