Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 0 additions & 39 deletions .github/workflows/release_pub.yml

This file was deleted.

68 changes: 68 additions & 0 deletions .github/workflows/release_publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
name: release_publish

on:
push:
tags:
- 'v[0-9]+.[0-9]+.[0-9]+' # tag-pattern for regular releases
- 'v[0-9]+.[0-9]+.[0-9]+-*' # tag-pattern for pre-releases
workflow_dispatch: # Allow manual triggering of the workflow

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
release:
permissions:
contents: write # Required to creating release
id-token: write # Required for authentication using OIDC
runs-on: ubuntu-latest
steps:
- name: 📚 Checkout branch
uses: actions/checkout@v4
with:
fetch-depth: 0
token: ${{ secrets.BOT_GITHUB_API_TOKEN }}

# Set up the Dart SDK and provision the OIDC token used for publishing.
- name: 🎯 Setup Dart
uses: dart-lang/setup-dart@v1

- name: 🐦 Install Flutter
uses: subosito/flutter-action@v2

- name: 📦 Install Tools
run: flutter pub global activate melos

- name: 🔧 Bootstrap Workspace
run: melos bootstrap --verbose

- name: 🌵 Dry Run
run: melos run lint:pub

- name: 📢 Release to pub.dev
run: melos run release:pub

- name: 🏷️ Extract Version Info
id: extract_version
shell: bash
run: |
set -euo pipefail

tag_name="${{ github.ref_name }}"
echo "📦 Tag: $tag_name"

# Check if this is a pre-release (contains hyphen after version)
is_prerelease=$([[ $tag_name == *-* ]] && echo true || echo false)
echo "ℹ️ Pre-release: $is_prerelease"

echo "tag=$tag_name" >> "$GITHUB_OUTPUT"
echo "prerelease=$is_prerelease" >> "$GITHUB_OUTPUT"

- name: 🚀 Create GitHub Release
uses: softprops/action-gh-release@v2
with:
generate_release_notes: true
tag_name: ${{ steps.extract_version.outputs.tag }}
prerelease: ${{ steps.extract_version.outputs.prerelease }}
token: ${{ secrets.BOT_GITHUB_API_TOKEN }}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: release_github
name: release_tag

on:
push:
Expand All @@ -13,12 +13,15 @@ jobs:
# Only run this job for commits that indicate a release
if: "${{ startsWith(github.event.head_commit.message, 'chore(repo): release') }}"
runs-on: ubuntu-latest
permissions:
contents: write # Required to create and push tags

steps:
- name: 📚 Checkout branch
uses: actions/checkout@v4
with:
fetch-depth: 0
token: ${{ secrets.BOT_GITHUB_API_TOKEN }}

- name: 🏷️ Extract Version Tag
id: extract_tag
Expand All @@ -34,23 +37,20 @@ jobs:

if [[ "$commit_msg" =~ $version_regex ]]; then
version="${BASH_REMATCH[0]}"
is_prerelease=$([[ $version == *-* ]] && echo true || echo false)

echo "✅ Found version tag: $version"
echo "ℹ️ Pre-release: $is_prerelease"

echo "tag=$version" >> "$GITHUB_OUTPUT"
echo "prerelease=$is_prerelease" >> "$GITHUB_OUTPUT"
else
echo "::error ::❌ No SemVer tag found in commit message."
echo "::error ::Expected something like: 'chore(repo): release v1.2.3[-beta]'"
exit 1
fi

- name: 🚀 Create GitHub Release
uses: softprops/action-gh-release@v1
with:
generate_release_notes: true
tag_name: ${{ steps.extract_tag.outputs.tag }}
prerelease: ${{ steps.extract_tag.outputs.prerelease }}
token: ${{ secrets.BOT_GITHUB_API_TOKEN }}
- name: 🚀 Create and Push Tag
shell: bash
run: |
git config user.name "Stream SDK Bot"
git config user.email "60655709+Stream-SDK-Bot@users.noreply.github.com"

echo "Creating and pushing tag: ${{ steps.extract_tag.outputs.tag }}"
git tag ${{ steps.extract_tag.outputs.tag }}
git push origin ${{ steps.extract_tag.outputs.tag }}