Skip to content

Hide Servers tree icon buttons for creating workspace folders for servers that don't support it #461

Hide Servers tree icon buttons for creating workspace folders for servers that don't support it

Hide Servers tree icon buttons for creating workspace folders for servers that don't support it #461

Workflow file for this run

name: CI
on:
push:
branches:
- master
paths-ignore:
- "docs/**"
- ".vscode/**"
- ".github/**"
- "*.md"
- "**/*.md"
pull_request:
branches:
- master
release:
types:
- released
jobs:
build:
timeout-minutes: 10
runs-on: ubuntu-latest
outputs:
name: ${{ steps.set-version.outputs.name }}
version: ${{ steps.set-version.outputs.version }}
taggedbranch: ${{ steps.find-branch.outputs.taggedbranch }}
steps:
- uses: actions/checkout@v3
- run: git fetch --depth=1 origin +refs/tags/*:refs/tags/*
- name: Find which branch the release tag points at
id: find-branch
if: github.event_name == 'release'
shell: bash
run: |
git fetch --depth=1 origin +refs/heads/*:refs/heads/*
set -x
TAGGEDBRANCH=$(git for-each-ref --points-at=${{github.sha}} --format='%(refname:lstrip=2)' refs/heads/)
echo "taggedbranch=$TAGGEDBRANCH" >> $GITHUB_OUTPUT
- name: Set an output
id: set-version
shell: bash
run: |
set -x
VERSION=$(jq -r '.version' package.json | cut -d- -f1)
[ $GITHUB_EVENT_NAME == 'release' ] && VERSION=${{ github.event.release.tag_name }} && VERSION=${VERSION/v/}
CHANGELOG=$(cat CHANGELOG.md | sed -n "/## \[${VERSION}\]/,/## /p" | sed '/^$/d;1d;$d')
CHANGELOG="${CHANGELOG//$'\n'/'%0A'}"
echo "changelog=$CHANGELOG" >> $GITHUB_OUTPUT
git tag -l | cat
[ $GITHUB_EVENT_NAME == 'push' ] && VERSION+=-beta && VERSION+=.$(($(git tag -l "v$VERSION.*" | sort -nt. -k4 2>/dev/null | tail -1 | cut -d. -f4)+1))
[ $GITHUB_EVENT_NAME == 'pull_request' ] && VERSION+=-dev.${{ github.event.pull_request.number }}
echo "version=$VERSION" >> $GITHUB_OUTPUT
NAME=$(jq -r '.name' package.json)-$VERSION
echo "name=$NAME" >> $GITHUB_OUTPUT
tmp=$(mktemp)
jq --arg version "$VERSION" '.version = $version' package.json > "$tmp" && mv "$tmp" package.json
mkdir dist
echo $VERSION > .version
echo $NAME > .name
- name: Use Node.js
uses: actions/setup-node@v3
with:
node-version: 20
- run: npm install
- run: npm run compile
- name: npm test
uses: coactions/setup-xvfb@v1
with:
run: npm run test
- name: Build package
run: |
npx vsce package -o ${{ steps.set-version.outputs.name }}.vsix
- uses: actions/[email protected]
if: github.event_name != 'release'
with:
name: ${{ steps.set-version.outputs.name }}.vsix
path: ${{ steps.set-version.outputs.name }}.vsix
beta:
if: (github.event_name == 'push')
runs-on: ubuntu-latest
needs: build
steps:
- uses: actions/[email protected]
with:
name: ${{ needs.build.outputs.name }}.vsix
- name: Create Release
id: create_release
uses: softprops/action-gh-release@v1
with:
tag_name: v${{ needs.build.outputs.version }}
name: v${{ needs.build.outputs.version }}
prerelease: ${{ github.event_name != 'release' }}
token: ${{ secrets.GITHUB_TOKEN }}
files: ${{ needs.build.outputs.name }}.vsix
publish:
needs: build
if: github.event_name == 'release' && needs.build.outputs.taggedbranch == 'master'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
ref: master
token: ${{ secrets.TOKEN }}
- name: Use Node.js
uses: actions/setup-node@v3
with:
node-version: 20
- name: Prepare build
id: set-version
shell: bash
run: |
VERSION=${{ needs.build.outputs.version }}
NEXT_VERSION=`echo $VERSION | awk -F. '/[0-9]+\./{$NF++;print}' OFS=.`
tmp=$(mktemp)
git config --global user.name 'ProjectBot'
git config --global user.email '[email protected]'
jq --arg version "${NEXT_VERSION}-SNAPSHOT" '.version = $version' package.json > "$tmp" && mv "$tmp" package.json
git add package.json
git commit -m 'auto bump version with release [skip ci]'
jq --arg version "$VERSION" '.version = $version' package.json > "$tmp" && mv "$tmp" package.json
jq 'del(.enableProposedApi,.enabledApiProposals)' package.json > "$tmp" && mv "$tmp" package.json
npm install
git push
- name: Build package
run: |
npx vsce package -o ${{ needs.build.outputs.name }}.vsix
- name: Upload Release Asset
id: upload-release-asset
uses: softprops/action-gh-release@v1
with:
tag_name: ${{ github.event.release.tag_name }}
files: ${{ needs.build.outputs.name }}.vsix
token: ${{ secrets.GITHUB_TOKEN }}
- name: Publish to VSCode Marketplace
shell: bash
run: |
[ -n "${{ secrets.VSCE_TOKEN }}" ] && \
npx vsce publish --packagePath ${{ needs.build.outputs.name }}.vsix -p ${{ secrets.VSCE_TOKEN }} || true
- name: Publish to Open VSX Registry
shell: bash
run: |
[ -n "${{ secrets.OVSX_TOKEN }}" ] && \
npx ovsx publish ${{ needs.build.outputs.name }}.vsix --pat ${{ secrets.OVSX_TOKEN }} || true