diff --git a/.github/actions/github/create-release/action.yml b/.github/actions/github/create-release/action.yml new file mode 100644 index 0000000..00b562b --- /dev/null +++ b/.github/actions/github/create-release/action.yml @@ -0,0 +1,23 @@ +name: 'Create GitHub release' +author: 'Pete Sramek' +description: 'Create GitHub release.' +inputs: + release-version: + description: 'Version to use for the release.' + required: true + is-preview: + description: 'Is this a preview release?' + required: true + default: 'false' + +runs: + using: composite + steps: + - name: 'Checkout ${{ github.head_ref || github.ref }}' + uses: actions/checkout@v5 + - name: 'Create GitHub release PolylineAlgorithm ${{ env.release-version }}' + shell: bash + env: + GH_TOKEN: ${{ github.token }} + run: | + gh release create ${{ env.release-version }} --generate-notes --discussion-category "General" $(if [ '${{ inputs.is-preview }}" = "true" ]; then echo "--prerelease"; fi) diff --git a/.github/actions/versioning/format-version/action.yml b/.github/actions/versioning/format-version/action.yml index 06fb849..035410f 100644 --- a/.github/actions/versioning/format-version/action.yml +++ b/.github/actions/versioning/format-version/action.yml @@ -37,9 +37,9 @@ outputs: file-version: description: 'Formatted file version.' value: ${{ steps.format-version.outputs.file-version }} - package-version: - description: 'Formatted package version.' - value: ${{ steps.format-version.outputs.package-version }} + release-version: + description: 'Formatted release version.' + value: ${{ steps.format-version.outputs.release-version }} runs: using: "composite" @@ -60,7 +60,7 @@ runs: echo "assembly-informational-version=${{ inputs.version }}.${{ inputs.patch }}+${{ inputs.sha }}" >> $GITHUB_OUTPUT echo "file-version=${{ inputs.version }}.${{ inputs.patch }}.${{ inputs.build-number }}" >> $GITHUB_OUTPUT if [ -n "${{ inputs.pre-release-tag }}" ]; then - echo "package-version=${{ inputs.version }}.${{ inputs.patch }}-${{ inputs.pre-release-tag }}-${{ inputs.build-number }}" >> $GITHUB_OUTPUT + echo "release-version=${{ inputs.version }}.${{ inputs.patch }}-${{ inputs.pre-release-tag }}.${{ inputs.build-number }}" >> $GITHUB_OUTPUT else - echo "package-version=${{ inputs.version }}.${{ inputs.patch }}.${{ inputs.build-number }}" >> $GITHUB_OUTPUT + echo "release-version=${{ inputs.version }}.${{ inputs.patch }}.${{ inputs.build-number }}" >> $GITHUB_OUTPUT fi diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 874720b..963028f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -50,7 +50,7 @@ jobs: assembly-version: ${{ steps.format-version.outputs.assembly-version }} assembly-informational-version: ${{ steps.format-version.outputs.assembly-informational-version }} file-version: ${{ steps.format-version.outputs.file-version }} - package-version: ${{ steps.format-version.outputs.package-version }} + release-version: ${{ steps.format-version.outputs.release-version }} steps: - name: 'Checkout ${{ github.head_ref || github.ref }}' uses: actions/checkout@v5 @@ -63,23 +63,28 @@ jobs: uses: './.github/actions/versioning/extract-version' with: branch-name: ${{ github.ref_name }} + - name: 'Create build number' + shell: bash + id: create-build-number + run: | + git fetch --unshallow --filter=tree:0 + build_number=$(git rev-list --count origin/${{ github.ref_name }} ^origin/main) + echo "build-number=$build_number" >> $GITHUB_OUTPUT - name: 'Create pre-release tag' shell: bash id: create-pre-release-tag + env: + build-number: ${{ steps.create-build-number.outputs.build-number }} run: | if [[ '${{ needs.workflow-variables.outputs.is-release }}' == 'true' ]]; then echo "pre-release-tag=" >> $GITHUB_OUTPUT + elif [[ '${{ needs.workflow-variables.outputs.is-preview }}' == 'true' ]]; then + pre_release_tag='preview' + echo "pre-release-tag=$pre_release_tag" >> $GITHUB_OUTPUT else - pre_release_tag=$(echo ${{ github.ref_name }} | tr '/' '.' | tr '-' '.'| tr '_' '.') + pre_release_tag=$(echo ${{ github.ref_name }} | tr '/' '-' | tr '.' '-'| tr '_' '-') echo "pre-release-tag=$pre_release_tag" >> $GITHUB_OUTPUT fi - - name: 'Create build number' - shell: bash - id: create-build-number - run: | - git fetch --unshallow --filter=tree:0 - build_number=$(git rev-list --count origin/${{ github.ref_name }} ^origin/main) - echo "build-number=$build_number" >> $GITHUB_OUTPUT - name: 'Format version' id: format-version uses: ./.github/actions/versioning/format-version @@ -172,7 +177,7 @@ jobs: assembly-version: ${{ needs.versioning.outputs.assembly-version }} assembly-informational-version: ${{ needs.versioning.outputs.assembly-informational-version }} file-version: ${{ needs.versioning.outputs.file-version }} - package-version: ${{ needs.versioning.outputs.package-version }} + release-version: ${{ needs.versioning.outputs.release-version }} package-artifact-name: package outputs: package-artifact-name: ${{ env.package-artifact-name }} @@ -192,7 +197,7 @@ jobs: - name: Pack with .NET run: | - dotnet pack ${{ vars.SRC_DEFAULT_GLOB_PATTERN }} --configuration ${{ env.build-configuration }} /p:Platform="${{ env.build-platform }}" /p:PackageVersion=${{ env.package-version }} /p:Version=${{ env.assembly-version }} /p:AssemblyInformationalVersion=${{ env.assembly-informational-version }} /p:FileVersion=${{ env.file-version }} --output ${{ runner.temp }}/${{ env.nuget-packages-directory }} + dotnet pack ${{ vars.SRC_DEFAULT_GLOB_PATTERN }} --configuration ${{ env.build-configuration }} /p:Platform="${{ env.build-platform }}" /p:PackageVersion=${{ env.release-version }} /p:Version=${{ env.assembly-version }} /p:AssemblyInformationalVersion=${{ env.assembly-informational-version }} /p:FileVersion=${{ env.file-version }} --output ${{ runner.temp }}/${{ env.nuget-packages-directory }} - name: Upload Package uses: actions/upload-artifact@v4 diff --git a/.github/workflows/publish-documentation.yml b/.github/workflows/publish-documentation.yml index f5024c6..f25d475 100644 --- a/.github/workflows/publish-documentation.yml +++ b/.github/workflows/publish-documentation.yml @@ -66,7 +66,7 @@ jobs: output-directory: './api-reference/_docs' - name: 'Upload artifact' - uses: actions/upload-pages-artifact@v3 + uses: actions/upload-pages-artifact@v4 with: name: github-pages path: './api-reference/_docs' diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml index 2907550..ebf70cf 100644 --- a/.github/workflows/pull-request.yml +++ b/.github/workflows/pull-request.yml @@ -1,12 +1,14 @@ name: 'Pull Request' on: - pull_request_target: + pull_request: + types: + - opened + - synchronize + - reopened branches: - 'preview/**' - - 'release/**' - paths: - - '**' + - 'release/**' permissions: actions: read @@ -16,7 +18,7 @@ permissions: concurrency: group: build-${{ github.head_ref || github.ref }} - cancel-in-progress: false + cancel-in-progress: true env: dotnet-sdk-version: '9.x' @@ -32,25 +34,25 @@ jobs: runs-on: ubuntu-latest outputs: - is-release: ${{ startsWith(github.ref_name, 'release') }} - is-preview: ${{ startsWith(github.ref_name, 'preview') }} + is-release: ${{ startsWith(github.base_ref, 'release') }} + is-preview: ${{ startsWith(github.base_ref , 'preview') }} steps: - name: 'Set workflow variables' - id: github run: | - echo "is-release:${{ startsWith(github.ref_name, 'release') }}" - echo "is-preview:${{ startsWith(github.ref_name, 'preview') }}" + echo "is-release:${{ startsWith(github.base_ref, 'release') }}" + echo "is-preview:${{ startsWith(github.base_ref, 'preview') }}" versioning: name: 'Extract version from branch' runs-on: ubuntu-latest + needs: [workflow-variables] outputs: friendly-version: ${{ steps.format-version.outputs.friendly-version }} assembly-version: ${{ steps.format-version.outputs.assembly-version }} assembly-informational-version: ${{ steps.format-version.outputs.assembly-informational-version }} file-version: ${{ steps.format-version.outputs.file-version }} - package-version: ${{ steps.format-version.outputs.package-version }} + release-version: ${{ steps.format-version.outputs.release-version }} steps: - name: 'Checkout ${{ github.head_ref || github.ref }}' uses: actions/checkout@v5 @@ -62,24 +64,29 @@ jobs: id: extract-version uses: './.github/actions/versioning/extract-version' with: - branch-name: ${{ github.ref_name }} + branch-name: ${{ github.base_ref }} + - name: 'Create build number' + shell: bash + id: create-build-number + run: | + git fetch --unshallow --filter=tree:0 + build_number=$(git rev-list --count origin/${{ github.base_ref }} ^origin/main) + echo "build-number=$build_number" >> $GITHUB_OUTPUT - name: 'Create pre-release tag' shell: bash id: create-pre-release-tag + env: + build-number: ${{ steps.create-build-number.outputs.build-number }} run: | if [[ '${{ needs.workflow-variables.outputs.is-release }}' == 'true' ]]; then echo "pre-release-tag=" >> $GITHUB_OUTPUT + elif [[ '${{ needs.workflow-variables.outputs.is-preview }}' == 'true' ]]; then + pre_release_tag='preview' + echo "pre-release-tag=$pre_release_tag" >> $GITHUB_OUTPUT else - pre_release_tag=$(echo ${{ github.ref_name }} | tr '/' '.' | tr '-' '.'| tr '_' '.') + pre_release_tag=$(echo ${{ github.base_ref }} | tr '/' '-' | tr '.' '-'| tr '_' '-') echo "pre-release-tag=$pre_release_tag" >> $GITHUB_OUTPUT fi - - name: 'Create build number' - shell: bash - id: create-build-number - run: | - git fetch --unshallow --filter=tree:0 - build_number=$(git rev-list --count origin/${{ github.ref_name }} ^origin/main) - echo "build-number=$build_number" >> $GITHUB_OUTPUT - name: 'Format version' id: format-version uses: ./.github/actions/versioning/format-version @@ -159,7 +166,7 @@ jobs: assembly-version: ${{ needs.versioning.outputs.assembly-version }} assembly-informational-version: ${{ needs.versioning.outputs.assembly-informational-version }} file-version: ${{ needs.versioning.outputs.file-version }} - package-version: ${{ needs.versioning.outputs.package-version }} + release-version: ${{ needs.versioning.outputs.release-version }} package-artifact-name: package outputs: package-artifact-name: ${{ env.package-artifact-name }} @@ -179,7 +186,7 @@ jobs: - name: Pack with .NET run: | - dotnet pack ${{ vars.SRC_DEFAULT_GLOB_PATTERN }} --configuration ${{ env.build-configuration }} /p:Platform="${{ env.build-platform }}" /p:PackageVersion=${{ env.package-version }} /p:Version=${{ env.assembly-version }} /p:AssemblyInformationalVersion=${{ env.assembly-informational-version }} /p:FileVersion=${{ env.file-version }} --output ${{ runner.temp }}/${{ env.nuget-packages-directory }} + dotnet pack ${{ vars.SRC_DEFAULT_GLOB_PATTERN }} --configuration ${{ env.build-configuration }} /p:Platform="${{ env.build-platform }}" /p:PackageVersion=${{ env.release-version }} /p:Version=${{ env.assembly-version }} /p:AssemblyInformationalVersion=${{ env.assembly-informational-version }} /p:FileVersion=${{ env.file-version }} --output ${{ runner.temp }}/${{ env.nuget-packages-directory }} - name: Upload Package uses: actions/upload-artifact@v4 @@ -189,7 +196,7 @@ jobs: ${{ runner.temp }}/${{ env.nuget-packages-directory }}/**/*.nupkg ${{ runner.temp }}/${{ env.nuget-packages-directory }}/**/*.snupkg - publish-package: + publish-development-package: name: 'Publish development package' needs: [pack] env: @@ -215,37 +222,37 @@ jobs: working-directory: ${{ runner.temp }}/${{ env.nuget-packages-directory }} dotnet-sdk-version: ${{ env.dotnet-sdk-version }}' - benchmark: - if: ${{ github.env.is_release || vars.BENCHMARKDOTNET_RUN_OVERRIDE == 'true' }} - name: Benchmark with .NET CLI on ${{ matrix.os }} - needs: [build] - strategy: - matrix: - os: [ubuntu-latest, windows-latest, macos-latest] - runs-on: ${{ matrix.os }} - steps: - - name: 'Checkout ${{ github.head_ref || github.ref }}' - uses: actions/checkout@v5 - - name: Install .NET SDK - uses: actions/setup-dotnet@v4 - with: - dotnet-version: | - 8.x - 9.x - - name: Download Build - uses: actions/download-artifact@v5 - with: - name: build - - name: Benchmark - working-directory: ${{ vars.BENCHMARKDOTNET_WORKING_DIRECTORY }} - run: dotnet run --configuration ${{ env.build-configuration }} /p:Platform=${{ env.build-platform }} --framework ${{ vars.DEFAULT_BUILD_FRAMEWORK }} --runtimes ${{ vars.BENCHMARKDOTNET_RUNTIMES }} --filter ${{ vars.BENCHMARKDOTNET_FILTER }} --artifacts ${{ runner.temp }}/benchmarks/ --exporters GitHub --memory --iterationTime 100 --join - - name: Upload Benchmark Results - uses: actions/upload-artifact@v4 - with: - name: benchmark-${{ matrix.os }} - path: | - ${{ runner.temp }}/benchmarks/**/*-report-github.md - - name: Write Benchmark Summary - shell: bash - run: cat **/*-report-github.md > $GITHUB_STEP_SUMMARY - working-directory: ${{ runner.temp }}/benchmarks/ + # benchmark: + # if: ${{ github.env.is_release || vars.BENCHMARKDOTNET_RUN_OVERRIDE == 'true' }} + # name: Benchmark with .NET CLI on ${{ matrix.os }} + # needs: [build] + # strategy: + # matrix: + # os: [ubuntu-latest, windows-latest, macos-latest] + # runs-on: ${{ matrix.os }} + # steps: + # - name: 'Checkout ${{ github.head_ref || github.ref }}' + # uses: actions/checkout@v5 + # - name: Install .NET SDK + # uses: actions/setup-dotnet@v4 + # with: + # dotnet-version: | + # 8.x + # 9.x + # - name: Download Build + # uses: actions/download-artifact@v5 + # with: + # name: build + # - name: Benchmark + # working-directory: ${{ vars.BENCHMARKDOTNET_WORKING_DIRECTORY }} + # run: dotnet run --configuration ${{ env.build-configuration }} /p:Platform=${{ env.build-platform }} --framework ${{ vars.DEFAULT_BUILD_FRAMEWORK }} --runtimes ${{ vars.BENCHMARKDOTNET_RUNTIMES }} --filter ${{ vars.BENCHMARKDOTNET_FILTER }} --artifacts ${{ runner.temp }}/benchmarks/ --exporters GitHub --memory --iterationTime 100 --join + # - name: Upload Benchmark Results + # uses: actions/upload-artifact@v4 + # with: + # name: benchmark-${{ matrix.os }} + # path: | + # ${{ runner.temp }}/benchmarks/**/*-report-github.md + # - name: Write Benchmark Summary + # shell: bash + # run: cat **/*-report-github.md > $GITHUB_STEP_SUMMARY + # working-directory: ${{ runner.temp }}/benchmarks/ diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..4b63534 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,253 @@ +name: 'Release' + +on: + pull_request: + types: [closed] + branches: + - 'preview/**' + - 'release/**' + paths: + - 'src/**' + +permissions: + actions: read + pages: write + id-token: write + contents: write + +concurrency: + group: build-${{ github.head_ref || github.ref }} + cancel-in-progress: false + +env: + dotnet-sdk-version: '9.x' + build-configuration: 'Release' + build-platform: 'Any CPU' + git-version: '6.0.x' + test-result-directory: 'test-results' + nuget-packages-directory: 'nuget-packages' + +jobs: + workflow-variables: + name: 'Set workflow variables' + runs-on: ubuntu-latest + + outputs: + is-release: ${{ startsWith(github.ref_name, 'release') }} + is-preview: ${{ startsWith(github.ref_name, 'preview') }} + + steps: + - name: 'Set workflow variables' + id: github + run: | + echo "is-release:${{ startsWith(github.ref_name, 'release') }}" + echo "is-preview:${{ startsWith(github.ref_name, 'preview') }}" + + validate-release: + name: 'Validate release' + needs: [workflow-variables] + runs-on: ubuntu-latest + steps: + - name: 'Validate release branch' + if: ${{ needs.workflow-variables.outputs.is-release != 'true' || needs.workflow-variables.outputs.is-preview != 'true' }} + run: | + echo "This workflow can only be run on 'release/**' or 'preview/**' branches." + exit 1 + - name: 'Validate pull request merged' + if: ${{ github.event.pull_request.merged != true }} + run: | + echo "This workflow can only be run on merged pull requests." + exit 1 + + versioning: + name: 'Extract version from branch' + runs-on: ubuntu-latest + needs: [workflow-variables] + outputs: + friendly-version: ${{ steps.format-version.outputs.friendly-version }} + assembly-version: ${{ steps.format-version.outputs.assembly-version }} + assembly-informational-version: ${{ steps.format-version.outputs.assembly-informational-version }} + file-version: ${{ steps.format-version.outputs.file-version }} + release-version: ${{ steps.format-version.outputs.release-version }} + steps: + - name: 'Checkout ${{ github.head_ref || github.ref }}' + uses: actions/checkout@v5 + - name: 'Setup .NET ${{ env.dotnet-sdk-version }}' + uses: actions/setup-dotnet@v4 + with: + dotnet-version: ${{ env.dotnet-sdk-version }} + - name: 'Extract version from branch name' + id: extract-version + uses: './.github/actions/versioning/extract-version' + with: + branch-name: ${{ github.ref_name }} + - name: 'Create build number' + shell: bash + id: create-build-number + run: | + git fetch --unshallow --filter=tree:0 + build_number=$(git rev-list --count origin/${{ github.base_ref }} ^origin/main) + echo "build-number=$build_number" >> $GITHUB_OUTPUT + - name: 'Create pre-release tag' + shell: bash + id: create-pre-release-tag + env: + build-number: ${{ steps.create-build-number.outputs.build-number }} + run: | + if [[ '${{ needs.workflow-variables.outputs.is-release }}' == 'true' ]]; then + echo "pre-release-tag=" >> $GITHUB_OUTPUT + elif [[ '${{ needs.workflow-variables.outputs.is-preview }}' == 'true' ]]; then + pre_release_tag='preview' + echo "pre-release-tag=$pre_release_tag" >> $GITHUB_OUTPUT + else + pre_release_tag=$(echo ${{ github.base_ref }} | tr '/' '-' | tr '.' '-'| tr '_' '-') + echo "pre-release-tag=$pre_release_tag" >> $GITHUB_OUTPUT + fi + - name: 'Format version' + id: format-version + uses: ./.github/actions/versioning/format-version + with: + version: ${{ steps.extract-version.outputs.version }} + patch: ${{ github.run_number }} + build-number: ${{ steps.create-build-number.outputs.build-number }} + sha: ${{ github.sha }} + pre-release-tag: ${{ steps.create-pre-release-tag.outputs.pre-release-tag }} + + build: + name: 'Compile source code' + needs: [workflow-variables, versioning] + runs-on: ubuntu-latest + + env: + assembly-version: ${{ needs.versioning.outputs.assembly-version }} + assembly-informational-version: ${{ needs.versioning.outputs.assembly-informational-version }} + file-version: ${{ needs.versioning.outputs.file-version }} + + steps: + - name: 'Checkout ${{ github.head_ref || github.ref }}' + uses: actions/checkout@v5 + + - name: 'Compile source code' + uses: ./.github/actions/source/compile + with: + project-path: '**/PolylineAlgorithm.csproj' + assembly-version: ${{ env.assembly-version }} + assembly-informational-version: ${{ env.assembly-informational-version }} + file-version: ${{ env.file-version }} + treat-warnins-as-error: ${{ needs.workflow-variables.outputs.is-release }} + + test: + name: 'Run tests' + needs: [build] + runs-on: ubuntu-latest + steps: + - name: 'Checkout ${{ github.head_ref || github.ref }}' + uses: actions/checkout@v5 + + - name: 'Setup .NET' + uses: actions/setup-dotnet@v4 + with: + dotnet-version: ${{ env.dotnet-sdk-version }} + + - name: 'Run tests' + uses: ./.github/actions/testing/test + with: + project-path: '**/PolylineAlgorithm.Tests.csproj' + test-results-directory: '${{ runner.temp }}/${{ env.test-result-directory }}/' + code-coverage-settings-file: '${{ github.workspace}}/code-coverage-settings.xml' + + - name: 'Generate test report' + uses: ./.github/actions/testing/test-report + id: test-report + with: + test-result-folder: '${{ runner.temp }}/${{ env.test-result-directory }}/' + + - name: Write test report summary + run: cat ${{ steps.test-report.outputs.test-report-file }} >> $GITHUB_STEP_SUMMARY + + - name: 'Generate code coverage' + uses: ./.github/actions/testing/code-coverage + id: code-coverage-report + with: + test-result-folder: '${{ runner.temp }}/${{ env.test-result-directory }}/' + + - name: Write code coverage report summary + run: cat ${{ steps.code-coverage-report.outputs.code-coverage-report-file }} >> $GITHUB_STEP_SUMMARY + + pack: + name: 'Package binaries' + needs: [versioning, build] + runs-on: ubuntu-latest + env: + assembly-version: ${{ needs.versioning.outputs.assembly-version }} + assembly-informational-version: ${{ needs.versioning.outputs.assembly-informational-version }} + file-version: ${{ needs.versioning.outputs.file-version }} + release-version: ${{ needs.versioning.outputs.release-version }} + package-artifact-name: package + outputs: + package-artifact-name: ${{ env.package-artifact-name }} + steps: + - name: 'Checkout ${{ github.head_ref || github.ref }}' + uses: actions/checkout@v5 + + - name: Setup .NET + uses: actions/setup-dotnet@v4 + with: + dotnet-version: ${{ env.dotnet-sdk-version }} + + - name: Download Build + uses: actions/download-artifact@v5 + with: + name: build + + - name: Pack with .NET + run: | + dotnet pack ${{ vars.SRC_DEFAULT_GLOB_PATTERN }} --configuration ${{ env.build-configuration }} /p:Platform="${{ env.build-platform }}" /p:PackageVersion=${{ env.release-version }} /p:Version=${{ env.assembly-version }} /p:AssemblyInformationalVersion=${{ env.assembly-informational-version }} /p:FileVersion=${{ env.file-version }} --output ${{ runner.temp }}/${{ env.nuget-packages-directory }} + + - name: Upload Package + uses: actions/upload-artifact@v4 + with: + name: ${{ env.package-artifact-name }} + path: | + ${{ runner.temp }}/${{ env.nuget-packages-directory }}/**/*.nupkg + ${{ runner.temp }}/${{ env.nuget-packages-directory }}/**/*.snupkg + + publish-package: + name: 'Publish package' + needs: [pack] + env: + package-artifact-name: ${{ needs.pack.outputs.package-artifact-name }} + runs-on: ubuntu-latest + environment: 'NuGet' + steps: + - name: 'Checkout ${{ github.head_ref || github.ref }}' + uses: actions/checkout@v5 + + - name: Setup .NET + uses: actions/setup-dotnet@v4 + with: + dotnet-version: ${{ env.dotnet-sdk-version }} + + - name: 'Publish package to Azure Artifact feed' + uses: ./.github/actions/nuget/publish-package + with: + package-artifact-name: ${{ env.package-artifact-name }} + nuget-feed-url: ${{ vars.NUGET_PACKAGE_FEED_URL }} + nuget-feed-api-key: ${{ secrets.NUGET_PACKAGE_FEED_API_KEY }} + nuget-feed-server: 'NuGet' + working-directory: ${{ runner.temp }}/${{ env.nuget-packages-directory }} + dotnet-sdk-version: ${{ env.dotnet-sdk-version }}' + + + release: + name: 'Create release' + needs: [publish-package] + runs-on: ubuntu-latest + steps: + - name: 'Checkout ${{ github.head_ref || github.ref }}' + uses: actions/checkout@v5 + + - name: 'Create GitHub Release' + uses: ./.github/actions/github/create-release + with: + release-version: ${{ github.ref_name }}