Roo-Code/.github/workflows/prerelease-publish.yml
akfoster 572d2a1fcf
Continuous Delivery | Pre Release Build and Publish (#1430)
* pre-release workflow

* remove staging environment

* expand to match PR#1318

* add permissions to resolve warning
2025-01-25 16:50:59 -08:00

86 lines
2.6 KiB
YAML

name: Pre-release Publisher
on:
release:
types: [prereleased]
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
publish-prerelease:
needs: test
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "20.15.1"
cache: "npm"
# Cache root dependencies
- 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
- 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 Pre-release
env:
VSCE_PAT: ${{ secrets.VSCE_PAT }}
OVSX_PAT: ${{ secrets.OVSX_PAT }}
run: |
current_package_version=$(node -p "require('./package.json').version")
vsce package
vsce publish --pre-release -p ${{ secrets.VSCE_PAT }}
echo "Successfully published pre-release version $current_package_version to VS Code Marketplace"
- name: Create GitHub Pre-release
uses: softprops/action-gh-release@v1
with:
files: "*.vsix"
generate_release_notes: true
prerelease: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}