Skip to content

Release packages

Release packages #49

Workflow file for this run

name: VSCode
on:
pull_request:
paths:
- packages/**
- apps/vscode/**
env:
CI: true
PNPM_CACHE_FOLDER: .pnpm-store
VITE_TRIPLEX_ENV: test
jobs:
build:
timeout-minutes: 5
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@master
- name: Setup pnpm
uses: pnpm/action-setup@v2
- name: Setup node
uses: actions/setup-node@v4
with:
node-version-file: "package.json"
- name: Setup pnpm config
run: pnpm config set store-dir $PNPM_CACHE_FOLDER
- name: Install dependencies (force)
run: pnpm i --force --public-hoist-pattern=* --node-linker=hoisted
- name: Build
run: pnpm build
- name: Typecheck
run: pnpm --filter triplex-vsce typedef
- name: Ensure clean git
run: node ./scripts/ensure-clean-git.js
- name: Drop folders
run: pnpm clean:drop-folders
- name: Prepack
run: pnpm --filter triplex-vsce run prepack
- name: Pack
run: pnpm --filter triplex-vsce run pack
- name: Upload extension
uses: actions/upload-artifact@v4
with:
name: vscode-extension
path: apps/vscode/out/triplex-vsce*.vsix
retention-days: 2
smoke-test:
needs: build
timeout-minutes: 20
runs-on: ${{ matrix.os }}
env:
REACT_VERSION_INVARIANT: 19
SMOKE_TEST: true
DEBUG: pw:browser*
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
steps:
- name: Checkout
uses: actions/checkout@master
- name: Setup pnpm
uses: pnpm/action-setup@v2
- name: Setup node
uses: actions/setup-node@v4
with:
node-version-file: "package.json"
- name: Setup pnpm config
run: pnpm config set store-dir $PNPM_CACHE_FOLDER
- name: Install dependencies
run: pnpm i
- name: Install Playwright browsers
run: npx playwright install chromium
- name: Download built artifact
uses: actions/download-artifact@v4
with:
name: vscode-extension
path: apps/vscode/out/
- name: Run smoke tests
if: ${{ startsWith(matrix.os, 'ubuntu-') }}
run: xvfb-run --auto-servernum --server-args="-screen 0 1280x960x24" -- pnpm test:e2e --grep="@vsce_smoke" --reporter html
- name: Run smoke tests
if: ${{ !startsWith(matrix.os, 'ubuntu-') }}
run: pnpm test:e2e --grep="@vsce_smoke" --reporter html
- name: Upload HTML report
if: ${{ !cancelled() }}
uses: actions/upload-artifact@v4
with:
name: playwright-report-${{ matrix.os }}
path: playwright-report
retention-days: 14