Skip to content

VS Code Production

VS Code Production #7

name: VS Code Production
on: [workflow_dispatch]
jobs:
build:
runs-on: windows-latest
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Install .NET Core
uses: actions/setup-dotnet@v3
with:
dotnet-version: 6.0.x
- name: Add msbuild to PATH
uses: microsoft/[email protected]
- uses: actions/cache@v4
id: cache
with:
path: ~/.nuget/packages
key: ${{ runner.os }}-nuget-${{ hashFiles('**/packages.lock.json') }}
- uses: actions/cache@v4
id: cache2
with:
path: .\packages
key: ${{ runner.os }}-nuget-${{ hashFiles('**/packages.config') }}
- name: Restore
shell: pwsh
run: |
dotnet restore PowerShellTools.sln
nuget restore PowerShellTools.sln
- name: Build Ironman Host
shell: pwsh
run: |
Push-Location IronmanPowerShellHost
dotnet publish -f net472 -c Release .\IronmanPowerShellHost.csproj
Pop-Location
- name: Build PSScriptPad
shell: pwsh
run: |
msbuild PowerShellTools.sln -t:rebuild -p:Configuration=Release -p:Platform=x64
- name: Build
shell: pwsh
run: |
Install-Module InvokeBuild -Scope CurrentUser -Force
Install-Module PlatyPS -Scope CurrentUser -Force
Invoke-Build -File .\vscode\vscode.build.ps1
env:
AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }}
AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }}
AZURE_CLIENT_SECRET: ${{ secrets.AZURE_CLIENT_SECRET }}
- name: Publish
shell: pwsh
run: |
Set-Location .\vscode\powershellprotools\
$Version = (ConvertFrom-Json (Get-Content -Raw .\package.json)).Version
vsce publish --pat $ENV:VSCE --packagePath ".\kit\powershellprotools-$($Version).vsix"
env:
VSCE: ${{ secrets.VSCODE_MARKETPLACE_KEY }}