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 }}