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
40 changes: 40 additions & 0 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
name: Publish Packages

on:
release:
types: [released]

permissions:
id-token: write # Required for OIDC
contents: read

jobs:
publish:
runs-on: ubuntu-latest
strategy:
matrix:
adapter: ["react", "vue"]
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Install pnpm
uses: pnpm/action-setup@v3
with:
version: 10

- uses: actions/setup-node@v4
with:
node-version: "20"
registry-url: "https://registry.npmjs.org"
cache: pnpm

# Ensure npm 11.5.1 or later is installed
- name: Update npm
run: npm install -g npm@latest

- name: Install dependencies
run: pnpm install

- name: "Publish ${{ matrix.adapter }} to npm"
run: cd ./packages/${{ matrix.adapter }} && pnpm run build && pnpm run release
2 changes: 1 addition & 1 deletion packages/react/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@
"build": "vite build",
"lint": "eslint --config eslint.config.mjs \"src/**/*.ts\"",
"prepublish": "pnpm run build",
"release": "vitest --run && git push --follow-tags && pnpm publish",
"release": "vitest --run && npm publish",
"test": "vitest",
"format": "prettier --write ."
},
Expand Down
34 changes: 8 additions & 26 deletions release.sh
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
#!/bin/bash

$REPO="laravel/stream"

get_current_version() {
local package_json=$1
if [ -f "$package_json" ]; then
Expand Down Expand Up @@ -84,33 +86,13 @@ echo "Staging package.json files..."
git add "**/package.json"
echo ""

echo "Committing version changes..."
git commit -m "v$new_version"
echo ""

echo "Creating git tag: v$new_version"
git tag "v$new_version"
git commit -m "$new_version"
git tag -a "$new_version" -m "$new_version"
git push
git push --tags
echo ""

echo "Running release process..."
echo ""

for package_dir in packages/*; do
if [ -d "$package_dir" ]; then
echo "Releasing $package_dir"
cd $package_dir
pnpm run release
cd ../..
echo ""
fi
done

echo "Released!"
gh release create "$new_version" --generate-notes

echo ""

echo "Release on GitHub:"
echo "https://github.com/laravel/stream/releases/tag/v$new_version"

open "https://github.com/laravel/stream/releases/tag/v$new_version"
echo "✅ Release $new_version completed successfully, publishing kicked off in CI."
echo "🔗 https://github.com/$REPO/releases/tag/$new_version"