fix(release): publish split packages
This commit is contained in:
parent
f787486432
commit
58dab31c41
26
.github/workflows/build.yml
vendored
26
.github/workflows/build.yml
vendored
|
|
@ -136,7 +136,8 @@ jobs:
|
|||
|
||||
- name: Build packages for publish
|
||||
run: |
|
||||
for dir in packages/core packages/cli packages/mcp packages/vue; do
|
||||
publish_packages="packages/scene-graph packages/pen packages/kiwi packages/fig packages/core packages/dom-css packages/cli packages/mcp packages/vue"
|
||||
for dir in $publish_packages; do
|
||||
if [ -f "$dir/package.json" ] && node -p "require('./$dir/package.json').scripts?.build" 2>/dev/null | grep -qv undefined; then
|
||||
echo "Building $dir..."
|
||||
(cd "$dir" && bun run build)
|
||||
|
|
@ -163,14 +164,15 @@ jobs:
|
|||
fi
|
||||
}
|
||||
root_dir="$PWD"
|
||||
pack_if_new packages/core
|
||||
pack_if_new packages/cli
|
||||
pack_if_new packages/mcp
|
||||
pack_if_new packages/vue
|
||||
publish_packages="packages/scene-graph packages/pen packages/kiwi packages/fig packages/core packages/dom-css packages/cli packages/mcp packages/vue"
|
||||
for dir in $publish_packages; do
|
||||
pack_if_new "$dir"
|
||||
done
|
||||
ls -la .npm-packages
|
||||
tar -tf .npm-packages/open-pencil-cli-*.tgz | sed -n '1,40p' || true
|
||||
tar -tf .npm-packages/open-pencil-mcp-*.tgz | sed -n '1,40p' || true
|
||||
tar -tf .npm-packages/open-pencil-vue-*.tgz | sed -n '1,60p' || true
|
||||
for tarball in .npm-packages/open-pencil-*.tgz; do
|
||||
echo "Contents of $tarball"
|
||||
tar -tf "$tarball" | sed -n '1,60p' || true
|
||||
done
|
||||
bun tools/release-packages/src/validate-tarballs.ts
|
||||
|
||||
- name: Publish packages to npm
|
||||
|
|
@ -187,7 +189,7 @@ jobs:
|
|||
npm publish "./.npm-packages/${tarball}" --access public --provenance
|
||||
fi
|
||||
}
|
||||
publish_if_new packages/core
|
||||
publish_if_new packages/cli
|
||||
publish_if_new packages/mcp
|
||||
publish_if_new packages/vue
|
||||
publish_packages="packages/scene-graph packages/pen packages/kiwi packages/fig packages/core packages/dom-css packages/cli packages/mcp packages/vue"
|
||||
for dir in $publish_packages; do
|
||||
publish_if_new "$dir"
|
||||
done
|
||||
|
|
|
|||
|
|
@ -27,7 +27,12 @@ const PACKAGE_FIELDS = ['dependencies', 'devDependencies', 'peerDependencies'] a
|
|||
const PUBLISH_CONFIG_FIELDS = new Set(['access', 'provenance', 'registry'])
|
||||
|
||||
export const DEFAULT_PACKAGES: PackagePublishConfig[] = [
|
||||
{ dir: 'packages/scene-graph', include: ['dist'], extraFiles: ['README.md'] },
|
||||
{ dir: 'packages/pen', include: ['dist'], extraFiles: ['README.md'] },
|
||||
{ dir: 'packages/kiwi', include: ['dist'], extraFiles: ['README.md'] },
|
||||
{ dir: 'packages/fig', include: ['dist'], extraFiles: ['README.md'] },
|
||||
{ dir: 'packages/core', include: ['dist', 'src', 'assets'], extraFiles: [] },
|
||||
{ dir: 'packages/dom-css', include: ['dist'], extraFiles: ['README.md'] },
|
||||
{ dir: 'packages/cli', include: ['bin', 'dist'], extraFiles: [] },
|
||||
{ dir: 'packages/mcp', include: ['dist'], extraFiles: [] },
|
||||
{ dir: 'packages/vue', include: ['dist'], extraFiles: ['README.md'] }
|
||||
|
|
|
|||
|
|
@ -3,7 +3,11 @@ import { mkdir, readFile, writeFile } from 'node:fs/promises'
|
|||
import { tmpdir } from 'node:os'
|
||||
import { join } from 'node:path'
|
||||
|
||||
import { preparePublishDirectories, publishPackageJSON } from '../src/publish-dirs'
|
||||
import {
|
||||
DEFAULT_PACKAGES,
|
||||
preparePublishDirectories,
|
||||
publishPackageJSON
|
||||
} from '../src/publish-dirs'
|
||||
|
||||
async function fixtureRoot() {
|
||||
const root = join(tmpdir(), `open-pencil-release-packages-${crypto.randomUUID()}`)
|
||||
|
|
@ -48,6 +52,22 @@ describe('publishPackageJSON', () => {
|
|||
})
|
||||
})
|
||||
|
||||
describe('DEFAULT_PACKAGES', () => {
|
||||
test('includes every public workspace package that release publish must pack', () => {
|
||||
expect(DEFAULT_PACKAGES.map((pkg) => pkg.dir)).toEqual([
|
||||
'packages/scene-graph',
|
||||
'packages/pen',
|
||||
'packages/kiwi',
|
||||
'packages/fig',
|
||||
'packages/core',
|
||||
'packages/dom-css',
|
||||
'packages/cli',
|
||||
'packages/mcp',
|
||||
'packages/vue'
|
||||
])
|
||||
})
|
||||
})
|
||||
|
||||
describe('preparePublishDirectories', () => {
|
||||
test('copies requested files and writes publish package metadata', async () => {
|
||||
const root = await fixtureRoot()
|
||||
|
|
|
|||
Loading…
Reference in a new issue