Skip to content

Commit

Permalink
feat: added parametrizable properties
Browse files Browse the repository at this point in the history
  • Loading branch information
davidsonbrsilva committed May 4, 2024
1 parent 44e71df commit fa2573c
Show file tree
Hide file tree
Showing 7 changed files with 73 additions and 14 deletions.
14 changes: 13 additions & 1 deletion .github/workflows/create-pre-release-template.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,15 @@ on:
hotfix_branches:
required: false
type: string
use_v_prefix:
required: false
type: boolean
release_name:
required: false
type: string
release_name_prefix:
required: false
type: string
outputs:
version:
description: The new generated version
Expand Down Expand Up @@ -135,7 +144,7 @@ jobs:

- name: Add release candidate suffix
id: add_rc_suffix
uses: davidsonbrsilva/versioning-workflow/actions/release-candidate-suffix-adding@feature/applying-code-cleanup
uses: davidsonbrsilva/versioning-workflow/actions/release-candidate-suffix-adding@v1
with:
version: ${{ needs.generate_breaking_change_version.outputs.version || needs.generate_first_release_candidate_version.outputs.version || needs.get_last_version.outputs.last_version}}
if: |
Expand All @@ -161,4 +170,7 @@ jobs:
version: ${{ needs.add_release_candidate_suffix.outputs.version }}
target_commit: ${{ github.event.pull_request.head.sha }}
pre_release: true
use_v_prefix: ${{ inputs.use_v_prefix }}
release_name: ${{ inputs.release_name }}
release_name_prefix: ${{ inputs.release_name_prefix }}
if: always() && !failure() && !cancelled()
3 changes: 3 additions & 0 deletions .github/workflows/create-pre-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,5 +14,8 @@ jobs:
feature_branches: "feature"
release_branches: "release"
hotfix_branches: "hotfix"
use_v_prefix: false
release_name:
release_name_prefix:
permissions:
contents: write
12 changes: 12 additions & 0 deletions .github/workflows/create-release-template.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,15 @@ on:
main_branch:
required: false
type: string
use_v_prefix:
required: false
type: boolean
release_name:
required: false
type: string
release_name_prefix:
required: false
type: string
outputs:
version:
description: The new generated version
Expand Down Expand Up @@ -94,6 +103,9 @@ jobs:
token: ${{ secrets.GITHUB_TOKEN }}
version: ${{ needs.generate_next_release_version.outputs.version || needs.remove_release_candidate_suffix.outputs.version }}
target_commit: ${{ github.event.head_commit.id }}
use_v_prefix: ${{ inputs.use_v_prefix }}
release_name: ${{ inputs.release_name }}
release_name_prefix: ${{ inputs.release_name_prefix }}
if: |
always() &&
((needs.generate_next_release_version.result == 'success' && needs.remove_release_candidate_suffix.result == 'skipped') ||
Expand Down
3 changes: 3 additions & 0 deletions .github/workflows/create-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,9 @@ jobs:
uses: davidsonbrsilva/versioning-workflow/.github/workflows/create-release-template.yml@v1
with:
main_branch: "main"
use_v_prefix: false
release_name:
release_name_prefix:
permissions:
contents: write
upsert_major_version: # Optional
Expand Down
4 changes: 2 additions & 2 deletions actions/latest-version-obtaining/latest-version-obtaining.sh
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,11 @@ fetch_tags_from_remote() {
}

get_last_origin_branch_version() {
git tag --sort=committerdate --merged=$(git rev-parse "origin/${1}") | grep -v '^v' | tail --lines 1
git tag --sort=committerdate --merged=$(git rev-parse "origin/${1}") | grep -v '^v[0-9]+$' | tail --lines 1
}

get_last_repository_version() {
git tag --sort=committerdate | grep -v '^v' | tail --lines 1
git tag --sort=committerdate | grep -v '^v[0-9]+$' | tail --lines 1
}

is_version_published() {
Expand Down
12 changes: 12 additions & 0 deletions actions/release-creation/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,15 @@ inputs:
pre_release:
description: "Indicates if the version to be created is a release candidate"
required: false
use_v_prefix:
description: "Indicates if the generated version must include a 'v' at start"
required: false
release_name:
description: "For default, release names take the version as own name. This property overrides it"
required: false
release_name_prefix:
description: "Includes a prefix at start of release name"
required: false
outputs:
version:
description: "The generated release version"
Expand All @@ -38,3 +47,6 @@ runs:
VERSION: ${{ inputs.version }}
TARGET_COMMIT: ${{ inputs.target_commit }}
PRE_RELEASE: ${{ inputs.pre_release }}
USE_V_PREFIX: ${{ inputs.use_v_prefix }}
RELEASE_NAME: ${{ inputs.release_name }}
RELEASE_NAME_PREFIX: ${{ inputs.release_name_prefix }}
39 changes: 28 additions & 11 deletions actions/release-creation/release-creation.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,41 +4,47 @@ readonly GITHUB_REPOSITORY
readonly GITHUB_TOKEN
readonly VERSION
readonly TARGET_COMMIT
readonly RELEASE_NAME
readonly PRE_RELEASE
readonly USE_V_PREFIX
readonly RELEASE_NAME
readonly RELEASE_NAME_PREFIX

is_missing() {
[[ -z "${1}" ]]
}

is_to_use_v_prefix() {
[[ "${1}" == "true" ]]
}

is_pre_release() {
[[ "${1}" == "true" ]]
}

is_release_created() {
[ "${1}" -eq "201" ]
[[ "${1}" -eq "201" ]]
}

check_required_parameters() {
local missing_parameter=false

if is_missing "${GITHUB_REPOSITORY}"; then
printf "'GITHUB_REPOSITORY' is required."
printf "'GITHUB_REPOSITORY' is required.\n"
missing_parameter=true
fi

if is_missing "${GITHUB_TOKEN}"; then
printf "'GITHUB_TOKEN' is required."
printf "'GITHUB_TOKEN' is required.\n"
missing_parameter=true
fi

if is_missing "${VERSION}"; then
printf "'VERSION' is required."
printf "'VERSION' is required.\n"
missing_parameter=true
fi

if is_missing "${TARGET_COMMIT}"; then
printf "'TARGET_COMMIT' is required."
printf "'TARGET_COMMIT' is required.\n"
missing_parameter=true
fi

Expand All @@ -50,10 +56,20 @@ check_required_parameters() {
create_release() {
check_required_parameters

local version="${VERSION}"

if is_to_use_v_prefix "${USE_V_PREFIX}"; then
version="v${VERSION}"
fi

local release_name="${RELEASE_NAME}"

if is_missing "${RELEASE_NAME}"; then
release_name="${VERSION}"
release_name="${version}"
fi

if ! is_missing "${RELEASE_NAME_PREFIX}"; then
release_name="${RELEASE_NAME_PREFIX} ${release_name}"
fi

local pre_release="${PRE_RELEASE}"
Expand All @@ -70,7 +86,7 @@ create_release() {
-H "Authorization: Bearer ${GITHUB_TOKEN}" \
-H "Content-Type: application/json" \
-d "{
\"tag_name\": \"${VERSION}\",
\"tag_name\": \"${version}\",
\"target_commitish\": \"${TARGET_COMMIT}\",
\"name\": \"${release_name}\",
\"draft\": false,
Expand All @@ -80,12 +96,13 @@ create_release() {
${url})

if is_release_created "${response_code}"; then
printf "version=%s" "${VERSION}" >> "${GITHUB_OUTPUT}"
printf "New generated release: %s\n" "${VERSION}"
printf "version=%s" "${version}" >> "${GITHUB_OUTPUT}"
printf "New generated release: %s\n" "${release_name}"
printf "Version: %s\n" "${version}"
exit 0
fi

printf "Failed to generate release."
printf "Failed to generate release.\n"
exit 1
}

Expand Down

0 comments on commit fa2573c

Please sign in to comment.