Release script bug - fixing vsce and ovsx publish commands #364
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: ServerConnectorCI | |
on: | |
push: | |
branches: [master] | |
pull_request: | |
branches: [master] | |
workflow_dispatch: | |
inputs: | |
publishToMarketPlace: | |
description: 'Publish to VS Code Marketplace ?' | |
required: true | |
type: choice | |
options: | |
- 'true' | |
- 'false' | |
default: 'false' | |
publishToOVSX: | |
description: 'Publish to OpenVSX Registry ?' | |
required: true | |
type: choice | |
options: | |
- 'true' | |
- 'false' | |
default: 'false' | |
jobs: | |
test: | |
runs-on: ${{ matrix.os }} # runs a test on Ubuntu, Windows and macOS | |
strategy: | |
matrix: | |
os: [macos-latest, windows-latest, ubuntu-latest] | |
node: [ 20 ] | |
steps: | |
# Checkout | |
- uses: actions/checkout@v4 | |
# Setup node | |
- name: Setup node | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node }} | |
# Install from npm | |
- run: npm install | |
# Build the component | |
- run: npm run build | |
# Run Unit tests | |
- name: Run Unit tests | |
uses: GabrielBB/[email protected] | |
with: | |
run: npm test | |
# Run UI tests | |
- name: Run UI tests | |
if: runner.os == 'Linux' | |
uses: GabrielBB/[email protected] | |
with: | |
run: npm run public-ui-test | |
# Archive test artifacts | |
- name: Archiving test artifacts | |
uses: actions/upload-artifact@v4 | |
if: failure() | |
with: | |
name: artifacts-${{ matrix.os }} | |
path: | | |
test-resources/screenshots/*.png | |
retention-days: 2 | |
# Upload code coverage | |
- name: Upload coverage to Codecov | |
uses: codecov/codecov-action@v4 | |
with: | |
file: ./coverage/coverage-final.json | |
packaging-job: | |
runs-on: ubuntu-latest | |
if: ${{ github.event_name != 'schedule' }} | |
steps: | |
- name: Checkout vscode-server-connector | |
uses: actions/checkout@v4 | |
- name: Set Up NodeJS | |
uses: actions/setup-node@v4 | |
with: | |
node-version: '18' | |
- name: Install NodeJS dependencies | |
run: npm install -g typescript "@vscode/vsce" "ovsx" | |
- name: Cache Version | |
run: | | |
echo "EXT_VERSION=$(cat package.json | jq -r .version)" >> $GITHUB_ENV | |
- name: Build vscode-server-connector | |
run: | | |
npm install | |
npm run build | |
- name: Package vscode-server-connector | |
run: | | |
vsce package -o vscode-server-connector-${{ env.EXT_VERSION }}.vsix | |
ls -lash *.vsix | |
- name: Upload VSIX Artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: vscode-server-connector | |
path: | | |
vscode-server-connector-${{ env.EXT_VERSION }}.vsix | |
if-no-files-found: error | |
release-job: | |
environment: ${{ (inputs.publishToMarketPlace == 'true' || inputs.publishToOVSX == 'true') && 'release' }} | |
runs-on: ubuntu-latest | |
needs: packaging-job | |
steps: | |
- name: Set Up NodeJS | |
uses: actions/setup-node@v4 | |
with: | |
node-version: '18' | |
- name: Install dependencies | |
run: | | |
npm install -g typescript "@vscode/vsce" "ovsx" | |
- name: Download VSIX | |
uses: actions/download-artifact@v4 | |
- name: Publish to VS Code Marketplace | |
if: ${{ inputs.publishToMarketPlace == 'true' }} | |
run: | | |
ls -la #debug | |
for platformVsix in vscode-server-connector/*.vsix; do | |
echo "Running command: vsce publish --skip-duplicate -p SOME_SECRET --packagePath vscode-server-connector/${platformVsix}" | |
vsce publish --skip-duplicate -p ${{ secrets.VSCODE_MARKETPLACE_TOKEN }} --packagePath vscode-server-connector/${platformVsix} | |
done | |
- name: Publish to OpenVSX Registry | |
if: ${{ inputs.publishToOVSX == 'true' }} | |
run: | | |
ls -la #debug | |
for platformVsix in vscode-server-connector/*.vsix; do | |
echo "Running command: ovsx publish --skip-duplicate -p SOME_SECRET --packagePath vscode-server-connector/${platformVsix}" | |
ovsx publish --skip-duplicate -p ${{ secrets.OVSX_MARKETPLACE_TOKEN }} --packagePath vscode-server-connector/${platformVsix} | |
done |