Compare commits
1 Commits
tdd-phase-
...
chore/remo
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
196e7ef6e3 |
54
.github/scripts/pre-release.mjs
vendored
54
.github/scripts/pre-release.mjs
vendored
@@ -1,54 +0,0 @@
|
|||||||
#!/usr/bin/env node
|
|
||||||
import { readFileSync, existsSync } from 'node:fs';
|
|
||||||
import { join, dirname } from 'node:path';
|
|
||||||
import { fileURLToPath } from 'node:url';
|
|
||||||
import {
|
|
||||||
findRootDir,
|
|
||||||
runCommand,
|
|
||||||
getPackageVersion,
|
|
||||||
createAndPushTag
|
|
||||||
} from './utils.mjs';
|
|
||||||
|
|
||||||
const __filename = fileURLToPath(import.meta.url);
|
|
||||||
const __dirname = dirname(__filename);
|
|
||||||
|
|
||||||
const rootDir = findRootDir(__dirname);
|
|
||||||
const extensionPkgPath = join(rootDir, 'apps', 'extension', 'package.json');
|
|
||||||
|
|
||||||
console.log('🚀 Starting pre-release process...');
|
|
||||||
|
|
||||||
// Check if we're in RC mode
|
|
||||||
const preJsonPath = join(rootDir, '.changeset', 'pre.json');
|
|
||||||
if (!existsSync(preJsonPath)) {
|
|
||||||
console.error('⚠️ Not in RC mode. Run "npx changeset pre enter rc" first.');
|
|
||||||
process.exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
|
||||||
const preJson = JSON.parse(readFileSync(preJsonPath, 'utf8'));
|
|
||||||
if (preJson.tag !== 'rc') {
|
|
||||||
console.error(`⚠️ Not in RC mode. Current tag: ${preJson.tag}`);
|
|
||||||
process.exit(1);
|
|
||||||
}
|
|
||||||
} catch (error) {
|
|
||||||
console.error('Failed to read pre.json:', error.message);
|
|
||||||
process.exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get current extension version
|
|
||||||
const extensionVersion = getPackageVersion(extensionPkgPath);
|
|
||||||
console.log(`Extension version: ${extensionVersion}`);
|
|
||||||
|
|
||||||
// Run changeset publish for npm packages
|
|
||||||
console.log('📦 Publishing npm packages...');
|
|
||||||
runCommand('npx', ['changeset', 'publish']);
|
|
||||||
|
|
||||||
// Create tag for extension pre-release if it doesn't exist
|
|
||||||
const extensionTag = `extension-rc@${extensionVersion}`;
|
|
||||||
const tagCreated = createAndPushTag(extensionTag);
|
|
||||||
|
|
||||||
if (tagCreated) {
|
|
||||||
console.log('This will trigger the extension-pre-release workflow...');
|
|
||||||
}
|
|
||||||
|
|
||||||
console.log('✅ Pre-release process completed!');
|
|
||||||
110
.github/workflows/extension-pre-release.yml
vendored
110
.github/workflows/extension-pre-release.yml
vendored
@@ -1,110 +0,0 @@
|
|||||||
name: Extension Pre-Release
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
tags:
|
|
||||||
- "extension-rc@*"
|
|
||||||
|
|
||||||
permissions:
|
|
||||||
contents: write
|
|
||||||
|
|
||||||
concurrency: extension-pre-release-${{ github.ref }}
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
publish-extension-rc:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
environment: extension-release
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- uses: actions/setup-node@v4
|
|
||||||
with:
|
|
||||||
node-version: 20
|
|
||||||
|
|
||||||
- name: Cache node_modules
|
|
||||||
uses: actions/cache@v4
|
|
||||||
with:
|
|
||||||
path: |
|
|
||||||
node_modules
|
|
||||||
*/*/node_modules
|
|
||||||
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
|
|
||||||
restore-keys: |
|
|
||||||
${{ runner.os }}-node-
|
|
||||||
|
|
||||||
- name: Install Extension Dependencies
|
|
||||||
working-directory: apps/extension
|
|
||||||
run: npm ci
|
|
||||||
timeout-minutes: 5
|
|
||||||
|
|
||||||
- name: Type Check Extension
|
|
||||||
working-directory: apps/extension
|
|
||||||
run: npm run check-types
|
|
||||||
env:
|
|
||||||
FORCE_COLOR: 1
|
|
||||||
|
|
||||||
- name: Build Extension
|
|
||||||
working-directory: apps/extension
|
|
||||||
run: npm run build
|
|
||||||
env:
|
|
||||||
FORCE_COLOR: 1
|
|
||||||
|
|
||||||
- name: Package Extension
|
|
||||||
working-directory: apps/extension
|
|
||||||
run: npm run package
|
|
||||||
env:
|
|
||||||
FORCE_COLOR: 1
|
|
||||||
|
|
||||||
- name: Create VSIX Package (Pre-Release)
|
|
||||||
working-directory: apps/extension/vsix-build
|
|
||||||
run: npx vsce package --no-dependencies --pre-release
|
|
||||||
env:
|
|
||||||
FORCE_COLOR: 1
|
|
||||||
|
|
||||||
- name: Get VSIX filename
|
|
||||||
id: vsix-info
|
|
||||||
working-directory: apps/extension/vsix-build
|
|
||||||
run: |
|
|
||||||
VSIX_FILE=$(find . -maxdepth 1 -name "*.vsix" -type f | head -n1 | xargs basename)
|
|
||||||
if [ -z "$VSIX_FILE" ]; then
|
|
||||||
echo "Error: No VSIX file found"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
echo "vsix-filename=$VSIX_FILE" >> "$GITHUB_OUTPUT"
|
|
||||||
echo "Found VSIX: $VSIX_FILE"
|
|
||||||
|
|
||||||
- name: Publish to VS Code Marketplace (Pre-Release)
|
|
||||||
working-directory: apps/extension/vsix-build
|
|
||||||
run: npx vsce publish --packagePath "${{ steps.vsix-info.outputs.vsix-filename }}" --pre-release
|
|
||||||
env:
|
|
||||||
VSCE_PAT: ${{ secrets.VSCE_PAT }}
|
|
||||||
FORCE_COLOR: 1
|
|
||||||
|
|
||||||
- name: Install Open VSX CLI
|
|
||||||
run: npm install -g ovsx
|
|
||||||
|
|
||||||
- name: Publish to Open VSX Registry (Pre-Release)
|
|
||||||
working-directory: apps/extension/vsix-build
|
|
||||||
run: ovsx publish "${{ steps.vsix-info.outputs.vsix-filename }}" --pre-release
|
|
||||||
env:
|
|
||||||
OVSX_PAT: ${{ secrets.OVSX_PAT }}
|
|
||||||
FORCE_COLOR: 1
|
|
||||||
|
|
||||||
- name: Upload Build Artifacts
|
|
||||||
uses: actions/upload-artifact@v4
|
|
||||||
with:
|
|
||||||
name: extension-pre-release-${{ github.ref_name }}
|
|
||||||
path: |
|
|
||||||
apps/extension/vsix-build/*.vsix
|
|
||||||
apps/extension/dist/
|
|
||||||
retention-days: 30
|
|
||||||
|
|
||||||
notify-success:
|
|
||||||
needs: publish-extension-rc
|
|
||||||
if: success()
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Success Notification
|
|
||||||
run: |
|
|
||||||
echo "🚀 Extension ${{ github.ref_name }} successfully published as pre-release!"
|
|
||||||
echo "📦 Available on VS Code Marketplace (Pre-Release)"
|
|
||||||
echo "🌍 Available on Open VSX Registry (Pre-Release)"
|
|
||||||
4
.github/workflows/pre-release.yml
vendored
4
.github/workflows/pre-release.yml
vendored
@@ -68,12 +68,10 @@ jobs:
|
|||||||
- name: Create Release Candidate Pull Request or Publish Release Candidate to npm
|
- name: Create Release Candidate Pull Request or Publish Release Candidate to npm
|
||||||
uses: changesets/action@v1
|
uses: changesets/action@v1
|
||||||
with:
|
with:
|
||||||
publish: node ./.github/scripts/pre-release.mjs
|
publish: npx changeset publish
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|
||||||
VSCE_PAT: ${{ secrets.VSCE_PAT }}
|
|
||||||
OVSX_PAT: ${{ secrets.OVSX_PAT }}
|
|
||||||
|
|
||||||
- name: Commit & Push changes
|
- name: Commit & Push changes
|
||||||
uses: actions-js/push@master
|
uses: actions-js/push@master
|
||||||
|
|||||||
Reference in New Issue
Block a user