Skip to content

Prepare for release #15

Prepare for release

Prepare for release #15

name: Prepare for release
# This action:
# - Is triggered manually in a workflow dispatch;
# - Inquire the kind of release in a dropdown menu;
# - Use Poetry to bump up the versions;
# - Create a new header for the new version at the changelogs;
# - Check if all sub-projects share the same version number;
# - Create a new branch named release/<new_version>;
# - Open a draft PR to the main branch, so all the changes above can be reviewed by the team before merging.
on:
workflow_dispatch:
inputs:
bump_rule:
type: choice
description: Bump version rule for Poetry
options:
- patch
- minor
- major
- prepatch
- preminor
- premajor
- prerelease
jobs:
bump-version:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
with:
python-version: 3.8
- uses: Gr1N/setup-poetry@v8
with:
poetry-version: 1.5.1
- id: agent-package
name: Bump version on the agent
working-directory: agent
run: |
../release-scripts/prepare-release.sh ${{ github.event.inputs.bump_rule }}
echo "Poetry version is: $(poetry version --short)"
echo "::set-output name=version::$(poetry version --short)"
- id: backend-package
name: Bump version on the backend
working-directory: backend
run: |
../release-scripts/prepare-release.sh ${{ github.event.inputs.bump_rule }}
echo "Poetry version is: $(poetry version --short)"
echo "::set-output name=version::$(poetry version --short)"
- id: lm-cli-package
name: Bump version on the CLI
working-directory: lm-cli
run: |
../release-scripts/prepare-release.sh ${{ github.event.inputs.bump_rule }}
echo "Poetry version is: $(poetry version --short)"
echo "::set-output name=version::$(poetry version --short)"
- name: Fail if poetry packages version don't match
if: ${{ steps.agent-package.outputs.version != steps.backend-package.outputs.version != steps.lm-cli-package.outputs.version }}
run: echo "Poetry packages version don't match!"
- uses: peter-evans/create-pull-request@v4
name: Create Pull Request
id: cpr
with:
token: ${{ secrets.TOKEN }}
commit-message: "Prepared release ${{ steps.agent-package.outputs.version }}"
branch: "release/${{ steps.agent-package.outputs.version }}"
title: "Release ${{ steps.agent-package.outputs.version }}"
base: "main"
draft: true
delete-branch: true
body: "Automated changes by [prepare_release](https://github.com/omnivector-solutions/license-manager/blob/main/.github/workflows/prepare_release.yaml) GitHub action."
- name: Show Pull Request info
if: ${{ steps.cpr.outputs.pull-request-number }}
run: |
echo "Pull Request Number - ${{ steps.cpr.outputs.pull-request-number }}"
echo "Pull Request URL - ${{ steps.cpr.outputs.pull-request-url }}"