modified: .github/workflows/package-release.yaml #7
Workflow file for this run
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: Release | |
on: | |
workflow_call: | |
inputs: | |
GO_VERSION: | |
required: true | |
type: string | |
GO111MODULE: | |
required: false | |
type: string | |
CGO_ENABLED: | |
required: false | |
type: number | |
default: 1 | |
RELEASE: | |
required: true | |
type: string | |
IS_DRAFT: | |
required: false | |
type: boolean | |
default: false | |
BUILD_PATH: | |
required: false | |
type: string | |
default: "./..." | |
UNIT_TESTS_PATH: | |
required: false | |
type: string | |
default: "./..." | |
# TEST_MULTI_ENVIRONMENTS: | |
# required: false | |
# type: boolean | |
# default: true | |
push: | |
branches: [ main, master ] | |
tags: | |
- 'v*.*.*' | |
jobs: | |
test: | |
uses: ./.github/workflows/go-basic-tests.yaml | |
with: | |
GO_VERSION: ${{ inputs.GO_VERSION }} | |
GO111MODULE: ${{ inputs.GO111MODULE }} | |
CGO_ENABLED: ${{ inputs.CGO_ENABLED }} | |
UNIT_TESTS_PATH: ${{ inputs.UNIT_TESTS_PATH }} | |
BUILD_PATH: ${{ inputs.BUILD_PATH }} | |
# TEST_MULTI_ENVIRONMENTS: ${{ inputs.TEST_MULTI_ENVIRONMENTS }} | |
secrets: inherit | |
create_release: | |
needs: test | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- name: Get latest tag | |
id: get_latest_tag | |
run: | | |
latest_tag=$(git describe --tags $(git rev-list --tags --max-count=1)) | |
echo "Latest tag: $latest_tag" | |
- name: Determine version bump | |
id: version_bump | |
run: | | |
tag_name=${{ steps.latest_tag.outputs.latest_tag }} | |
commit_range="${tag_name}..HEAD" | |
major_bump=$(git diff --name-only $commit_range | grep -E '^major-.*\.md$' | wc -l) | |
minor_bump=$(git diff --name-only $commit_range | grep -E '^minor-.*\.md$' | wc -l) | |
if [ $major_bump -gt 0 ]; then | |
echo "{name}={$bump_type} major" >> $GITHUB_OUTPUT | |
elif [ $minor_bump -gt 0 ]; then | |
echo "{name}={$bump_type} minor" >> $GITHUB_OUTPUT | |
else | |
echo "{name}={$bump_type} patch" >> $GITHUB_OUTPUT | |
fi | |
- name: Increment tag version | |
id: increment_tag | |
run: | | |
tag_name=${{ steps.latest_tag.outputs.latest_tag }} | |
bump_type=${{ steps.version_bump.outputs.bump_type }} | |
if [ $bump_type == "major" ]; then | |
tag_name=$(echo $tag_name | awk -F. '{$1++;$2=0;$3=0;print $0}') | |
elif [ $bump_type == "minor" ]; then | |
tag_name=$(echo $tag_name | awk -F. '{$2++;$3=0;print $0}') | |
else | |
tag_name=$(echo $tag_name | awk -F. '{$3++;print $0}') | |
fi | |
echo "{name}={$tag_name}" >> $GITHUB_OUTPUT | |
# - name: Extract version | |
# id: extract_version | |
# run: | | |
# version=$(echo $latest_tag | jq -r 'sub("^[^0-9]*"; "")') | |
# echo "Version: $version" | |
# - name: Increase version | |
# id: increase_version | |
# run: | | |
# next_version=$((version + 1)) | |
# echo "Next version: $next_version" | |
# - name: Set tag name | |
# id: set_tag_name | |
# run: | | |
# next_version=$((${{ github.event_name == 'release' }} ? $(echo "${{ github.ref }}" | awk -F'/' '{print $3}') : $(echo "${{ github.ref }}-$(date +%s)" | awk -F'/' '{print $3}'))) | |
# tag_name=v$(echo "$next_version" | cut -d'.' -f-3) | |
# echo "{name}={$tag_name}" >> $GITHUB_OUTPUT | |
# continue-on-error: true | |
# - name: Set tag name | |
# id: set_tag_name | |
# run: | | |
# # Get the latest tag name in the repository | |
# last_tag=$(git describe --tags --abbrev=0) | |
# # Extract the major, minor, and patch version numbers from the latest tag | |
# major=$(echo "$last_tag" | cut -d'.' -f1 | sed 's/v//') | |
# minor=$(echo "$last_tag" | cut -d'.' -f2) | |
# patch=$(echo "$last_tag" | cut -d'.' -f3) | |
# # Increment the patch version number | |
# next_patch=$(($patch + 1)) | |
# # Set the new tag name with the incremented patch version number | |
# tag_name="v$major.$minor.$next_patch" | |
# # Set the tag_name output variable | |
# echo "{name}={$tag_name}" >> $GITHUB_OUTPUT | |
# continue-on-error: true | |
- name: Create release | |
id: create_release | |
uses: actions/create-release@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
tag_name: ${{ steps.increment_tag.outputs.tag_name }} | |
release_name: Release ${{ steps.increment_tag.outputs.tag_name }} | |
body: | | |
Release ${{ steps.increment_tag.outputs.tag_name }} | |
------------------------------- | |
Add release notes here. | |
draft: false | |
prerelease: false |