Browse Source

refactor: use release docs script and use commit with pkg version

release/docs
danstarns 2 years ago
parent
commit
ae651bf76b
  1. 11
      .github/workflows/publish-docs.yml
  2. 1
      package.json
  3. 36
      scripts/releaseDocs.ts

11
.github/workflows/publish-docs.yml

@ -1,16 +1,15 @@
name: Publish Docs name: Publish GrapesJS Docs
on: on:
push: push:
tags: branches: [dev]
- 'docs-*' paths:
branches: - 'packages/docs/**'
- dev
jobs: jobs:
publish-docs: publish-docs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
if: github.ref_type == 'tag' && startsWith(github.ref, 'refs/tags/docs-') if: "contains(github.event.head_commit.message, 'Release GrapesJS docs:')"
permissions: permissions:
contents: write contents: write
steps: steps:

1
package.json

@ -21,6 +21,7 @@
"publish:core:rc": "cd packages/core && npm publish --tag rc --access public", "publish:core:rc": "cd packages/core && npm publish --tag rc --access public",
"publish:core:latest": "cd packages/core && npm publish --access public", "publish:core:latest": "cd packages/core && npm publish --access public",
"build:core": "pnpm --filter grapesjs build", "build:core": "pnpm --filter grapesjs build",
"release:docs": "ts-node scripts/releaseCore latest",
"build:cli": "pnpm --filter grapesjs-cli build", "build:cli": "pnpm --filter grapesjs-cli build",
"build:docs:api": "pnpm --filter @grapesjs/docs docs:api", "build:docs:api": "pnpm --filter @grapesjs/docs docs:api",
"build:docs": "pnpm --filter @grapesjs/docs build" "build:docs": "pnpm --filter @grapesjs/docs build"

36
scripts/releaseDocs.ts

@ -0,0 +1,36 @@
import fs from 'fs';
import { resolve } from 'path';
import { runCommand } from './common';
const pathLib = resolve(__dirname, '../packages/core');
async function prepareCoreRelease() {
try {
const releaseTag = process.argv[2];
console.log('Prepare release docs tag:', releaseTag);
// Check if the current branch is clean (no staged changes)
runCommand(
'git diff-index --quiet HEAD --',
'You have uncommitted changes. Please commit or stash them before running the release script.',
);
// Increment the Core version
const versionCmd = releaseTag === 'latest' ? 'patch' : `prerelease --preid ${releaseTag}`;
runCommand(`pnpm --filter @grapesjs/docs exec npm version ${versionCmd} --no-git-tag-version --no-commit-hooks`);
// Create a new release branch
const newVersion = JSON.parse(fs.readFileSync(`${pathLib}/package.json`, 'utf8')).version;
const newBranch = `release-v${newVersion}`;
runCommand(`git checkout -b ${newBranch}`);
runCommand('git add .');
runCommand(`git commit -m "Release GrapesJS docs ${releaseTag}: v${newVersion}"`);
console.log(`Release prepared! Push the current "${newBranch}" branch and open a new PR targeting 'dev'`);
} catch (error) {
console.error(error);
process.exit(1);
}
}
prepareCoreRelease();
Loading…
Cancel
Save