mirror of
https://github.com/deepset-ai/haystack.git
synced 2025-12-30 08:37:20 +00:00
73 lines
3.0 KiB
YAML
73 lines
3.0 KiB
YAML
name: Project release on Github
|
|
|
|
on:
|
|
workflow_dispatch: # this is useful to re-generate the release page without a new tag being pushed
|
|
push:
|
|
tags:
|
|
- "v2.[0-9]+.[0-9]+*"
|
|
|
|
jobs:
|
|
generate-notes:
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
with:
|
|
fetch-tags: true
|
|
fetch-depth: 0 # slow but needed by reno
|
|
|
|
- name: Parse version
|
|
id: version
|
|
run: |
|
|
echo "current_release=$(awk -F \\- '{print $1}' < VERSION.txt)" >> "$GITHUB_OUTPUT"
|
|
echo "current_pre_release=$(awk -F \\- '{print $2}' < VERSION.txt)" >> "$GITHUB_OUTPUT"
|
|
|
|
- name: Install reno
|
|
run: |
|
|
python -m pip install --upgrade pip
|
|
pip install "reno<5"
|
|
|
|
- name: Generate release notes for release candidates - minor releases
|
|
if: steps.version.outputs.current_pre_release != '' && endsWith(steps.version.outputs.current_release, '.0')
|
|
env:
|
|
# When generating notes for release candidates of minor versions, pick every vX.Y.Z-rcN but
|
|
# stop when encounter vX.Y.Z-rc0. The -rc0 tag is added automatically when
|
|
# we create the release branch, so we can assume it's always there.
|
|
EARLIEST_VERSION: v${{ steps.version.outputs.current_release }}-rc0
|
|
run: |
|
|
reno report --no-show-source --ignore-cache --earliest-version "$EARLIEST_VERSION" -o relnotes.rst
|
|
|
|
- name: Generate release notes for release candidates - bugfix releases
|
|
if: steps.version.outputs.current_pre_release != '' && !endsWith(steps.version.outputs.current_release, '.0')
|
|
env:
|
|
# When generating notes for release candidates of bugfix releases, pick every vX.Y.Z-rcN but
|
|
# stop when encounter vX.Y.Z-rc1.
|
|
# In this case, we don't have the -rc0 tag, because we don't need to go through commits on main,
|
|
# as we cherry-pick them into the release branch.
|
|
EARLIEST_VERSION: v${{ steps.version.outputs.current_release }}-rc1
|
|
run: |
|
|
reno report --no-show-source --ignore-cache --earliest-version "$EARLIEST_VERSION" -o relnotes.rst
|
|
|
|
- name: Generate release notes for the final release
|
|
if: steps.version.outputs.current_pre_release == ''
|
|
# When generating notes for the final release vX.Y.Z, we just pass --version and reno
|
|
# will automatically collapse all the vX.Y.Z-rcN.
|
|
run: |
|
|
reno report --no-show-source --ignore-cache --version v${{ steps.version.outputs.current_release }} -o relnotes.rst
|
|
|
|
- name: Convert to Markdown
|
|
uses: docker://pandoc/core:3.1
|
|
with:
|
|
args: "--from rst --to markdown_github --no-highlight relnotes.rst -o relnotes.md --wrap=none"
|
|
|
|
- name: Debug
|
|
run: |
|
|
cat relnotes.md
|
|
|
|
- uses: ncipollo/release-action@v1
|
|
with:
|
|
bodyFile: "relnotes.md"
|
|
prerelease: ${{ steps.version.outputs.current_pre_release }}
|
|
allowUpdates: true
|