Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -105,8 +105,8 @@
"watch": "npm run compile -- --watch",
"lint": "eslint src test --ext .ts",
"format": "prettier --check '**/*.{ts,json,yml,mjs,code-workspace}'",
"package": "vsce package --out out/ --no-gitHubIssueLinking",
"publish": "vsce publish",
"package": "vsce package --out out/ --no-gitHubIssueLinking --follow-symlinks",
"publish": "vsce publish --follow-symlinks",
"pretest": "npm run compile",
"test": "vscode-test"
},
Expand Down
32 changes: 11 additions & 21 deletions vscode-powershell.build.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -47,22 +47,18 @@ task RestoreEditorServices -If (Get-EditorServicesPath) {
Invoke-Build Build (Get-EditorServicesPath) -Configuration $Configuration
}
"Release" {
# When releasing, we ensure the bits are not symlinked but copied,
# and only if they don't already exist.
if ((Get-Item ./modules -ErrorAction SilentlyContinue).LinkType -eq "SymbolicLink") {
Write-Build DarkRed "Deleting PSES symbolic link"
# With VSCE --follow-symlinks support, we can now use symlinks in Release mode too.
# Create symlink if it doesn't exist, ensuring it points to the correct location.
if ((Get-Item ./modules -ErrorAction SilentlyContinue).LinkType -ne "SymbolicLink") {
Write-Build DarkMagenta "Creating symbolic link to PSES"
Remove-BuildItem ./modules
New-Item -ItemType SymbolicLink -Path ./modules -Target "$(Split-Path (Get-EditorServicesPath))/module"
}

if (!(Test-Path ./modules)) {
# We only build if it hasn't been built at all.
if (!(Test-Path "$(Split-Path (Get-EditorServicesPath))/module/PowerShellEditorServices/bin")) {
Write-Build DarkGreen "Building PSES"
Invoke-Build Build (Get-EditorServicesPath) -Configuration $Configuration
}

Write-Build DarkGreen "Copying PSES"
Copy-Item -Recurse -Force "$(Split-Path (Get-EditorServicesPath))/module" ./modules
# Only build if it hasn't been built at all.
if (!(Test-Path "$(Split-Path (Get-EditorServicesPath))/module/PowerShellEditorServices/bin")) {
Write-Build DarkGreen "Building PSES"
Invoke-Build Build (Get-EditorServicesPath) -Configuration $Configuration
}
}
}
Expand Down Expand Up @@ -132,14 +128,8 @@ task Package {

Assert-Build (Test-Path ./dist/extension.js) "Extension must be built!"

# Packaging requires a copy of the modules folder, not a symbolic link. But
# we might have built in Debug configuration, not Release, and still want to
# package it. So delete the symlink and copy what we just built.
if ((Get-Item ./modules -ErrorAction SilentlyContinue).LinkType -eq "SymbolicLink") {
Write-Build DarkRed "PSES is a symbolic link, replacing with copy!"
Remove-BuildItem ./modules
Copy-Item -Recurse -Force "$(Split-Path (Get-EditorServicesPath))/module" ./modules
}
# With --follow-symlinks flag, VSCE can now package symbolic links directly,
# so we no longer need to convert symlinks to copies.

if ($version.Minor % 2 -ne 0) {
Write-Build DarkRed "This is a pre-release!"
Expand Down
Loading