Skip to content

Feature/new release flow #144

Feature/new release flow

Feature/new release flow #144

Workflow file for this run

name: Release
on:
pull_request:
branches:
- master
types:
- closed
- created
- edited
- labeled
- opened
- reopened
- synchronize
- unlabeled
concurrency: release
jobs:
release:
name: Release
runs-on: ubuntu-22.04
permissions:
actions: write
checks: write
contents: write
deployments: write
issues: write
packages: write
pull-requests: write
repository-projects: write
security-events: write
statuses: write
timeout-minutes: 10
container: ros:humble
steps:
- name: Restore branch
uses: levonet/action-restore-branch@master
- name: Install bloom
run: apt update && apt install -y python3-bloom git
- name: Checkout
uses: actions/checkout@v2
with:
ref: master
fetch-depth: 0
fetch-tags: true
- name: Setup git
run: |
git config --global user.name "Release Bot"
git config --global user.email "[email protected]"
git config --global --add safe.directory /__w/scenario_simulator_v2/scenario_simulator_v2
git config --global credential.helper ${{ secrets.GITHUB_TOKEN }}
git config pull.rebase false
- name: Get old version
id: old_version
run: |
echo "old_version=$(catkin_package_version)" >> $GITHUB_OUTPUT
- name: Merge branch
run: git pull origin ${{ github.head_ref }}
- name: Bump patch version
if: (contains(github.event.pull_request.labels.*.name, 'bump patch'))
run: |
catkin_generate_changelog -y
catkin_tag_changelog --bump patch
catkin_package_version --bump patch
- name: Bump minor version
if: (contains(github.event.pull_request.labels.*.name, 'bump minor'))
run: |
catkin_generate_changelog -y
catkin_tag_changelog --bump minor
catkin_package_version --bump minor
- name: Bump major version
if: (contains(github.event.pull_request.labels.*.name, 'bump major'))
run: |
catkin_generate_changelog -y
catkin_tag_changelog --bump major
catkin_package_version --bump major
- name: Get new version
id: new_version
run: |
echo "new_version=$(catkin_package_version)" >> $GITHUB_OUTPUT
- name: Commit changes
if: github.event.pull_request.merged == true
run: |
git add .
git commit -m "Bump version of scenario_simulator_v2 from version ${{ steps.old_version.outputs.old_version }} to version ${{ steps.new_version.outputs.new_version }}"
- name: Pushing to the protected branch 'master'
if: github.event.pull_request.merged == true
uses: CasperWA/push-protected@v2
with:
token: ${{ secrets.BLOOM_GITHUB_TOKEN }}
branch: master
force: true
- name: Get linked issues
id: linked_issues
uses: hossainemruz/linked-issues@main
with:
pr_url: ${{github.event.pull_request.html_url}}
format: ExternalIssueRef
continue-on-error: true
- name: Update release description
run: |
echo "${{ github.event.pull_request.body }}" >> release_description.txt
echo "" >> release_description.txt
echo "# Related Issues " >> release_description.txt
echo "${{ steps.linked_issues.outputs.issues }}" >> release_description.txt
- name: Get release description
id: get_release_description
uses: mathiasvr/[email protected]
with:
run: cat release_description.txt
- name: Create a GitHub release
if: github.event.pull_request.merged == true
uses: ncipollo/release-action@v1
with:
tag: ${{ steps.new_version.outputs.new_version }}
name: ${{ steps.new_version.outputs.new_version }}
body: ${{ steps.get_release_description.outputs.stdout }}
- name: Delete branch
if: github.event.pull_request.merged == true
uses: SvanBoxel/delete-merged-branch@main
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}