Skip to content

RDKEMW-6681: getDolbyVisionMode api fails to return "Dark/Bright" in … #4

RDKEMW-6681: getDolbyVisionMode api fails to return "Dark/Bright" in …

RDKEMW-6681: getDolbyVisionMode api fails to return "Dark/Bright" in … #4

name: Component Release
permissions:
contents: write
on:
pull_request:
types: [closed]
branches:
- develop
jobs:
release:
if: github.event.pull_request.merged == true
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Set up Git
run: |
git config --global user.name "GitHub Actions"
git config --global user.email "[email protected]"
- name: Install git-flow and auto-changelog
run: |
sudo apt-get update
sudo apt-get install -y git-flow
npm install -g auto-changelog
- name: Clone the project and start release
run: |
set -e
git clone https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }} project
cd project
git fetch --all
git checkout main || git checkout -b main origin/main
git checkout develop || git checkout -b develop origin/develop
git config gitflow.branch.master main
git config gitflow.branch.develop develop
git config gitflow.prefix.feature feature/
git config gitflow.prefix.bugfix bugfix/
git config gitflow.prefix.release release/
git config gitflow.prefix.hotfix hotfix/
git config gitflow.prefix.support support/
git config gitflow.prefix.versiontag ''
echo "git config completed"
# Extract version from PR description
PR_DESC="${{ github.event.pull_request.body }}"
# Get top tag from CHANGELOG.md
TOP_TAG=$(grep -m 1 -oP '^#### \[\K[^\]]+' CHANGELOG.md)
if [[ -z "$TOP_TAG" ]]; then
echo "No version found in CHANGELOG.md!"
exit 1
fi
# Validate TOP_TAG format (semantic versioning: major.minor.patch)
if [[ ! "$TOP_TAG" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
echo "Invalid version format in CHANGELOG.md: $TOP_TAG. Expected format: major.minor.patch"
exit 1
fi
IFS='.' read -r major minor patch <<< "$TOP_TAG"
VERSION_TYPE=$(echo "$PR_DESC" | grep -oiP 'version\s*:\s*\K(major|minor|patch)' | tr '[:upper:]' '[:lower:]')
if [[ -z "$VERSION_TYPE" ]]; then
echo "No version type found in PR description, defaulting to PATCH increment."
patch=$((patch + 1))
elif [[ "$VERSION_TYPE" == "major" ]]; then
major=$((major + 1))
minor=0
patch=0
elif [[ "$VERSION_TYPE" == "minor" ]]; then
minor=$((minor + 1))
patch=0
elif [[ "$VERSION_TYPE" == "patch" ]]; then
patch=$((patch + 1))
else
echo "Invalid version type in PR description: $VERSION_TYPE"
exit 1
fi
RELEASE_VERSION="$major.$minor.$patch"
echo "Using calculated version: $RELEASE_VERSION"
echo "RELEASE_VERSION=$RELEASE_VERSION"
echo "RELEASE_VERSION=$RELEASE_VERSION" >> $GITHUB_ENV
# Check if tag already exists
if git rev-parse "refs/tags/$RELEASE_VERSION" >/dev/null 2>&1; then
echo "Tag $RELEASE_VERSION already exists. Skipping release."
exit 0
fi
git flow release start $RELEASE_VERSION
auto-changelog -v $RELEASE_VERSION
git add CHANGELOG.md
git commit -m "$RELEASE_VERSION release changelog updates"
git flow release publish
- name: Finish release and push (default git-flow messages)
run: |
set -e
cd project
git flow release finish -m "$RELEASE_VERSION release" $RELEASE_VERSION
git push origin main
git push origin --tags
git push origin develop
- name: Cleanup tag if workflow fails
if: failure()
run: |
cd project
git tag -d $RELEASE_VERSION || true
git push origin :refs/tags/$RELEASE_VERSION || true