60 lines
2.2 KiB
YAML
60 lines
2.2 KiB
YAML
name: Create Release
|
|
|
|
on:
|
|
push:
|
|
branches: [ main ]
|
|
paths:
|
|
- 'memory/**'
|
|
- 'scripts/**'
|
|
- 'templates/**'
|
|
- '.github/workflows/**'
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
release:
|
|
runs-on: ubuntu-latest
|
|
permissions:
|
|
contents: write
|
|
pull-requests: write
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 0
|
|
token: ${{ secrets.GITHUB_TOKEN }}
|
|
- name: Get latest tag
|
|
id: get_tag
|
|
run: |
|
|
chmod +x .github/workflows/scripts/get-next-version.sh
|
|
.github/workflows/scripts/get-next-version.sh
|
|
- name: Check if release already exists
|
|
id: check_release
|
|
run: |
|
|
chmod +x .github/workflows/scripts/check-release-exists.sh
|
|
.github/workflows/scripts/check-release-exists.sh ${{ steps.get_tag.outputs.new_version }}
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
- name: Create release package variants
|
|
if: steps.check_release.outputs.exists == 'false'
|
|
run: |
|
|
chmod +x .github/workflows/scripts/create-release-packages.sh
|
|
.github/workflows/scripts/create-release-packages.sh ${{ steps.get_tag.outputs.new_version }}
|
|
- name: Generate release notes
|
|
if: steps.check_release.outputs.exists == 'false'
|
|
id: release_notes
|
|
run: |
|
|
chmod +x .github/workflows/scripts/generate-release-notes.sh
|
|
.github/workflows/scripts/generate-release-notes.sh ${{ steps.get_tag.outputs.new_version }} ${{ steps.get_tag.outputs.latest_tag }}
|
|
- name: Create GitHub Release
|
|
if: steps.check_release.outputs.exists == 'false'
|
|
run: |
|
|
chmod +x .github/workflows/scripts/create-github-release.sh
|
|
.github/workflows/scripts/create-github-release.sh ${{ steps.get_tag.outputs.new_version }}
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
- name: Update version in pyproject.toml (for release artifacts only)
|
|
if: steps.check_release.outputs.exists == 'false'
|
|
run: |
|
|
chmod +x .github/workflows/scripts/update-version.sh
|
|
.github/workflows/scripts/update-version.sh ${{ steps.get_tag.outputs.new_version }}
|