Roo-Code/.github/workflows/release.yml
akfoster cf64c4e23f
Move to Manual Release Workflow Trigger (#1432)
* don't start release just on version number, will use automated versioning

* add permissions to resolve warning
2025-01-25 16:49:24 -08:00

83 lines
2.5 KiB
YAML

name: Release & Publish
on:
release:
types: [published]
workflow_dispatch:
permissions:
contents: write
packages: write
actions: read
checks: read
deployments: read
discussions: read
issues: read
pages: read
pull-requests: read
repository-projects: read
security-events: read
statuses: read
jobs:
test:
uses: ./.github/workflows/test.yml
release:
needs: test
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js environment
uses: actions/setup-node@v4
with:
node-version: 20.15.1
# Cache root dependencies - only reuse if package-lock.json exactly matches
- name: Cache root dependencies
uses: actions/cache@v4
id: root-cache
with:
path: node_modules
key: ${{ runner.os }}-npm-${{ hashFiles('package-lock.json') }}
# Cache webview-ui dependencies - only reuse if package-lock.json exactly matches
- name: Cache webview-ui dependencies
uses: actions/cache@v4
id: webview-cache
with:
path: webview-ui/node_modules
key: ${{ runner.os }}-npm-webview-${{ hashFiles('webview-ui/package-lock.json') }}
- name: Install root dependencies
if: steps.root-cache.outputs.cache-hit != 'true'
run: npm ci
- name: Install webview-ui dependencies
if: steps.webview-cache.outputs.cache-hit != 'true'
run: cd webview-ui && npm ci
- name: Build Extension
run: npm run build
- name: Install Publishing Tools
run: npm install -g vsce ovsx
- name: Package and Publish Extension
env:
VSCE_PAT: ${{ secrets.VSCE_PAT }}
OVSX_PAT: ${{ secrets.OVSX_PAT }}
run: |
current_package_version=$(node -p "require('./package.json').version")
npm run publish:marketplace
echo "Successfully published version $current_package_version to VS Code Marketplace"
- name: Create GitHub Release
uses: softprops/action-gh-release@v1
with:
files: "*.vsix"
generate_release_notes: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}