Skip to content
Closed

0.1.9 #14759

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 0 additions & 1 deletion .github/workflows/ci_mac.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,5 +22,4 @@ jobs:
runner-env: macos-15
platform: mac
checkout-ref: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.target-ref || github.ref }}
yarn-args: --network-timeout 100000

298 changes: 149 additions & 149 deletions .github/workflows/job-compile-and-test.yml
Original file line number Diff line number Diff line change
@@ -1,149 +1,149 @@
# Reuable workflow for compiling and testing extension.
name: Compile and test extension
on:
workflow_call:
inputs:
runner-env:
required: true
type: string
platform:
# Expects 'mac', 'linux', or 'windows'
required: true
type: string
checkout-ref:
required: false
type: string
yarn-args:
type: string
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
jobs:
build:
runs-on: ${{ inputs.runner-env }}
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
ref: ${{ inputs.checkout-ref }}
- name: Use Node.js 24
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: 24
- name: Validate Yarn lockfile
run: yarn test-yarn-lock && yarn verify-yarn-lock
working-directory: Extension
- name: Validate LLDB-MI component manifest
run: yarn test-lldb-mi-component-manifest && yarn verify-lldb-mi-component-manifest
working-directory: Extension
- name: Install Dependencies
shell: bash
env:
YARN_ARGS: ${{ inputs.yarn-args }}
run: |
read -r -a yarn_args <<< "$YARN_ARGS"
for attempt in 1 2 3; do
if yarn install "${yarn_args[@]}"; then
exit 0
fi
if (( attempt == 3 )); then
exit 1
fi
delay=$((attempt * 15))
printf 'yarn install failed; retrying in %d seconds.\n' "$delay" >&2
sleep "$delay"
done
working-directory: Extension
- name: Install gdb (linux)
if: ${{ inputs.platform == 'linux' }}
timeout-minutes: 10
run: |
sudo apt-get \
-o Acquire::Retries=3 \
-o Acquire::http::Timeout=30 \
-o Acquire::https::Timeout=30 \
update
sudo apt-get \
-o Acquire::Retries=3 \
-o Acquire::http::Timeout=30 \
-o Acquire::https::Timeout=30 \
install -y gdb
- name: Compile Sources
run: yarn run compile
working-directory: Extension
- name: Run Linter
run: yarn run lint
working-directory: Extension
- name: Run unit tests
run: yarn test
working-directory: Extension
- name: Test VS Code acquisition
run: yarn test-vscode-acquisition
working-directory: Extension
- name: Acquire Native Binaries
run: yarn install-and-copy-binaries-for-test
working-directory: Extension
- name: Run languageServer integration tests (Windows)
if: ${{ inputs.platform == 'windows' }}
run: yarn test --scenario=SingleRootProject
working-directory: Extension
- name: Run SimpleCppProject tests (Windows)
if: ${{ inputs.platform == 'windows' }}
run: yarn test --scenario=SimpleCppProject
working-directory: Extension
- name: Run E2E IntelliSense features tests (Windows)
if: ${{ inputs.platform == 'windows' }}
run: yarn test --scenario=MultirootDeadlockTest
working-directory: Extension
- name: Run RunWithoutDebugging tests (Windows)
if: ${{ inputs.platform == 'windows' }}
run: yarn test --scenario=RunWithoutDebugging
working-directory: Extension
# NOTE: For mac/linux run the tests with xvfb-action for UI support.
# Another way to start xvfb https://github.com/microsoft/vscode-test/blob/master/sample/azure-pipelines.yml
- name: Run languageServer integration tests (linux/macOS)
if: ${{ inputs.platform == 'mac' || inputs.platform == 'linux' }}
uses: coactions/setup-xvfb@b6b4fcfb9f5a895edadc3bc76318fae0ac17c8b3 # v1.0.1
with:
run: yarn test --scenario=SingleRootProject
working-directory: Extension
- name: Run SimpleCppProject tests (linux/macOS)
if: ${{ inputs.platform == 'mac' || inputs.platform == 'linux' }}
uses: coactions/setup-xvfb@b6b4fcfb9f5a895edadc3bc76318fae0ac17c8b3 # v1.0.1
with:
run: yarn test --scenario=SimpleCppProject
working-directory: Extension
- name: Run E2E IntelliSense features tests (linux/macOS)
if: ${{ inputs.platform == 'mac' || inputs.platform == 'linux' }}
uses: coactions/setup-xvfb@b6b4fcfb9f5a895edadc3bc76318fae0ac17c8b3 # v1.0.1
with:
run: yarn test --scenario=MultirootDeadlockTest
working-directory: Extension
- name: Run RunWithoutDebugging tests (linux/macOS)
if: ${{ inputs.platform == 'mac' || inputs.platform == 'linux' }}
uses: coactions/setup-xvfb@b6b4fcfb9f5a895edadc3bc76318fae0ac17c8b3 # v1.0.1
with:
run: yarn test --scenario=RunWithoutDebugging --scenario-arg=skipExternalConsole
working-directory: Extension
# Reuable workflow for compiling and testing extension.
name: Compile and test extension

on:
workflow_call:
inputs:
runner-env:
required: true
type: string
platform:
# Expects 'mac', 'linux', or 'windows'
required: true
type: string
checkout-ref:
required: false
type: string
yarn-args:
type: string

env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true

jobs:
build:
runs-on: ${{ inputs.runner-env }}

steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
ref: ${{ inputs.checkout-ref }}

- name: Use Node.js 24
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: 24

- name: Validate Yarn lockfile
run: yarn test-yarn-lock && yarn verify-yarn-lock
working-directory: Extension

- name: Validate LLDB-MI component manifest
run: yarn test-lldb-mi-component-manifest && yarn verify-lldb-mi-component-manifest
working-directory: Extension

- name: Install Dependencies
shell: bash
env:
YARN_ARGS: ${{ inputs.yarn-args }}
run: |
read -r -a yarn_args <<< "$YARN_ARGS"
for attempt in 1 2 3; do
if yarn install "${yarn_args[@]}"; then
exit 0
fi
if (( attempt == 3 )); then
exit 1
fi
delay=$((attempt * 15))
printf 'yarn install failed; retrying in %d seconds.\n' "$delay" >&2
sleep "$delay"
done
working-directory: Extension

- name: Install gdb (linux)
if: ${{ inputs.platform == 'linux' }}
timeout-minutes: 10
run: |
sudo apt-get \
-o Acquire::Retries=3 \
-o Acquire::http::Timeout=30 \
-o Acquire::https::Timeout=30 \
update
sudo apt-get \
-o Acquire::Retries=3 \
-o Acquire::http::Timeout=30 \
-o Acquire::https::Timeout=30 \
install -y gdb

- name: Compile Sources
run: yarn run compile
working-directory: Extension

- name: Run Linter
run: yarn run lint
working-directory: Extension

- name: Run unit tests
run: yarn test
working-directory: Extension

- name: Test VS Code acquisition
run: yarn test-vscode-acquisition
working-directory: Extension

- name: Acquire Native Binaries
run: yarn install-and-copy-binaries-for-test
working-directory: Extension

- name: Run languageServer integration tests (Windows)
if: ${{ inputs.platform == 'windows' }}
run: yarn test --scenario=SingleRootProject
working-directory: Extension

- name: Run SimpleCppProject tests (Windows)
if: ${{ inputs.platform == 'windows' }}
run: yarn test --scenario=SimpleCppProject
working-directory: Extension

- name: Run E2E IntelliSense features tests (Windows)
if: ${{ inputs.platform == 'windows' }}
run: yarn test --scenario=MultirootDeadlockTest
working-directory: Extension

- name: Run RunWithoutDebugging tests (Windows)
if: ${{ inputs.platform == 'windows' }}
run: yarn test --scenario=RunWithoutDebugging
working-directory: Extension

# NOTE: For mac/linux run the tests with xvfb-action for UI support.
# Another way to start xvfb https://github.com/microsoft/vscode-test/blob/master/sample/azure-pipelines.yml

- name: Run languageServer integration tests (linux/macOS)
if: ${{ inputs.platform == 'mac' || inputs.platform == 'linux' }}
uses: coactions/setup-xvfb@b6b4fcfb9f5a895edadc3bc76318fae0ac17c8b3 # v1.0.1
with:
run: yarn test --scenario=SingleRootProject
working-directory: Extension

- name: Run SimpleCppProject tests (linux/macOS)
if: ${{ inputs.platform == 'mac' || inputs.platform == 'linux' }}
uses: coactions/setup-xvfb@b6b4fcfb9f5a895edadc3bc76318fae0ac17c8b3 # v1.0.1
with:
run: yarn test --scenario=SimpleCppProject
working-directory: Extension

- name: Run E2E IntelliSense features tests (linux/macOS)
if: ${{ inputs.platform == 'mac' || inputs.platform == 'linux' }}
uses: coactions/setup-xvfb@b6b4fcfb9f5a895edadc3bc76318fae0ac17c8b3 # v1.0.1
with:
run: yarn test --scenario=MultirootDeadlockTest
working-directory: Extension

- name: Run RunWithoutDebugging tests (linux/macOS)
if: ${{ inputs.platform == 'mac' || inputs.platform == 'linux' }}
uses: coactions/setup-xvfb@b6b4fcfb9f5a895edadc3bc76318fae0ac17c8b3 # v1.0.1
with:
run: yarn test --scenario=RunWithoutDebugging --scenario-arg=skipExternalConsole
working-directory: Extension

84 changes: 84 additions & 0 deletions .github/workflows/release_hornet.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
name: Package and release Hornet

on:
workflow_dispatch:
inputs:
pre-release:
description: Build pre-release VSIX packages
type: boolean
default: false
github-draft:
description: Upload packages to a draft GitHub Release
type: boolean
default: false
marketplace:
description: Publish packages to the public VS Code Marketplace
type: boolean
default: false
openvsx:
description: Publish packages to Open VSX
type: boolean
default: false

permissions:
contents: read

jobs:
release:
runs-on: ubuntu-24.04
permissions:
contents: write
defaults:
run:
working-directory: Extension
shell: bash
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: 24
cache: npm
cache-dependency-path: Extension/package-lock.json
- run: npm ci
- run: npm test
- name: Package all desktop and server targets
env:
PRE_RELEASE: ${{ inputs.pre-release }}
run: |
flags=()
if [[ "$PRE_RELEASE" == true ]]; then flags+=(--pre-release); fi
npm run package:all -- "${flags[@]}"
- uses: actions/upload-artifact@v4
with:
name: hornet-vsix
path: Extension/artifacts/*.vsix
if-no-files-found: error
- name: Create draft GitHub Release
if: ${{ inputs.github-draft }}
env:
GH_TOKEN: ${{ github.token }}
GH_REPO: ${{ github.repository }}
RELEASE_SHA: ${{ github.sha }}
PRE_RELEASE: ${{ inputs.pre-release }}
run: |
version=$(node -p "require('./package.json').version")
tag="v$version"
flags=()
if [[ "$PRE_RELEASE" == true ]]; then tag="$tag-pre-release"; flags+=(--prerelease); fi
gh release create "$tag" artifacts/*.vsix --target "$RELEASE_SHA" --draft "${flags[@]}" --title "Hornet C/C++ $version" --generate-notes
- name: Publish reviewed packages to Marketplace
if: ${{ inputs.marketplace }}
env:
VSCE_PAT: ${{ secrets.VSCE_PAT }}
run: |
files=()
for file in artifacts/*.vsix; do files+=(--vsix "$file"); done
npm run publish:marketplace -- "${files[@]}"
- name: Publish reviewed packages to Open VSX
if: ${{ inputs.openvsx }}
env:
OVSX_PAT: ${{ secrets.OVSX_PAT }}
run: |
files=()
for file in artifacts/*.vsix; do files+=(--vsix "$file"); done
npm run publish:openvsx -- "${files[@]}"
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,4 @@ OneLocBuild
vscode-translations-import

.vscode/settings.json
.npm-cache/
1 change: 1 addition & 0 deletions .vscode/hornet/compile-db/compile_commands.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
[]
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading