Start Release Train #5
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Start Release Train | |
on: | |
workflow_dispatch: | |
inputs: | |
version_number: | |
description: 'Next version number of the release' | |
type: string | |
required: true | |
release_date: | |
description: 'Date of the final release. Will be used for CHANGELOG.md (format YYYY-MM-DD, e.g. 2023-02-27)' | |
type: string | |
required: true | |
env: | |
LC_ALL: en_US.UTF-8 | |
LANG: en_US.UTF-8 | |
concurrency: | |
group: start-release-train-${{ inputs.version_number }} | |
cancel-in-progress: true | |
jobs: | |
create_release_pr: | |
name: Create release branch and bump version | |
runs-on: macos-latest | |
outputs: | |
branch_name: ${{ steps.branching.outputs.branch_name }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup Git User | |
run: | | |
# setup git | |
git config --global user.name "Bitmovin Release Automation" | |
git config --global user.email "[email protected]" | |
- name: Setup node and npm registry | |
uses: actions/setup-node@v3 | |
with: | |
node-version: '16' | |
registry-url: 'https://registry.npmjs.org/' | |
cache: 'yarn' | |
- name: Set Release Branch name | |
id: branching | |
run: | | |
branch_name="release/v${{ inputs.version_number }}" | |
echo "branch_name=$branch_name" >> $GITHUB_OUTPUT | |
- name: Create Release Branch | |
run: | | |
# Delete the release branch if already exists, useful in case we need to re-run this workflow | |
git push origin --delete ${{ steps.branching.outputs.branch_name }} || true | |
git checkout -b ${{ steps.branching.outputs.branch_name }} | |
- name: Bump changelog version | |
run: | | |
sed -i'.bak' "s/\[Unreleased\]/\[${{ inputs.version_number }}\] \(${{ inputs.release_date }}\)/g" CHANGELOG.md | |
- name: Bump package.json version | |
run: | | |
npm version ${{ inputs.version_number }} --no-git-tag-version | |
- name: Update Podfile.lock | |
run: | | |
yarn bootstrap | |
- name: Commit changelog version bump | |
run: | | |
git add CHANGELOG.md package.json example/ios/Podfile.lock | |
git commit -m "chore: prepare release ${{ inputs.version_number }}" | |
git push origin ${{ steps.branching.outputs.branch_name }} | |
- name: Create PR | |
run: | | |
gh pr create \ | |
--base "main" \ | |
--title "Release ${{ inputs.version_number }}" \ | |
--body "Release ${{ inputs.version_number }}" | |
env: | |
GH_TOKEN: ${{ github.token }} |