Skip to content

Release packages (#402) #38

Release packages (#402)

Release packages (#402) #38

name: VSCode
on:
push:
branches:
- main
env:
CI: true
PNPM_CACHE_FOLDER: .pnpm-store
jobs:
release:
timeout-minutes: 20
runs-on: ubuntu-latest
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
steps:
- name: Checkout
uses: actions/checkout@master
- name: Check for changesets
continue-on-error: true
run: "bash ./scripts/check-changesets.sh"
id: check
shell: bash
- name: Setup pnpm
uses: pnpm/action-setup@v2
if: steps.check.outcome == 'success'
- name: Setup node
uses: actions/setup-node@v4
if: steps.check.outcome == 'success'
with:
node-version-file: "package.json"
- name: Setup pnpm config
run: pnpm config set store-dir $PNPM_CACHE_FOLDER
if: steps.check.outcome == 'success'
- name: Install dependencies (force)
run: pnpm i --force --public-hoist-pattern=* --node-linker=hoisted
if: steps.check.outcome == 'success'
- name: Build packages
run: pnpm build
if: steps.check.outcome == 'success'
- name: Ensure clean git
run: node ./scripts/ensure-clean-git.js
if: steps.check.outcome == 'success'
- name: Drop folders
run: pnpm clean:drop-folders
if: steps.check.outcome == 'success'
- name: Prepack
run: pnpm --filter triplex-vsce run prepack
if: steps.check.outcome == 'success'
- name: Pack
run: pnpm --filter triplex-vsce run pack
if: steps.check.outcome == 'success'
- name: Read vsix
id: vsix_version
if: steps.check.outcome == 'success'
working-directory: apps/vscode/out
run: echo "VSIX_PATH=$(find . -name "*.vsix" -print -quit)" >> $GITHUB_ENV
- name: Release to code marketplace
working-directory: apps/vscode/out
run: npx vsce publish --no-dependencies --skip-duplicate
if: steps.check.outcome == 'success'
env:
VSCE_PAT: ${{ secrets.VSCE_PAT }}
- name: Release to open vsx registry
working-directory: apps/vscode/out
run: npx ovsx publish $VSIX_PATH --pat $OPENVSX_TOKEN --no-dependencies --skip-duplicate
if: steps.check.outcome == 'success'
env:
OPENVSX_TOKEN: ${{ secrets.OPENVSX_TOKEN }}