Fixing comment #352
Workflow file for this run
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: Extension build | |
on: | |
pull_request: | |
branches: | |
- master | |
push: | |
branches: | |
- master | |
workflow_dispatch: | |
jobs: | |
pre_job: | |
continue-on-error: true | |
runs-on: ubuntu-latest | |
outputs: | |
should_skip: ${{ steps.skip_check.outputs.should_skip }} | |
steps: | |
- id: skip_check | |
uses: fkirc/skip-duplicate-actions@v5 | |
with: | |
skip_after_successful_duplicate: 'false' | |
paths_ignore: '["*.md", "docs/**"]' | |
build: | |
needs: pre_job | |
runs-on: windows-latest | |
strategy: | |
matrix: | |
VsTargetVersion: ['VS2019', 'VS2022'] | |
env: | |
Configuration: Release | |
SolutionPath: src\Unitverse.sln | |
VsixPath: src\Unitverse\bin\${{ matrix.VsTargetVersion }}\Release\Unitverse${{ matrix.VsTargetVersion }}.vsix | |
VsTargetVersion: '${{ matrix.VsTargetVersion }}' | |
steps: | |
- uses: actions/checkout@v3 | |
if: needs.pre_job.outputs.should_skip != 'true' | |
with: | |
fetch-depth: '0' | |
- name: Setup .NET Core | |
if: needs.pre_job.outputs.should_skip != 'true' | |
uses: actions/setup-dotnet@v3 | |
with: | |
dotnet-version: '3.1.x' | |
- name: Derive version | |
if: needs.pre_job.outputs.should_skip != 'true' | |
run: | | |
./.github/workflows/AutoVersion.ps1 | |
shell: pwsh | |
- name: Setup MSBuild.exe | |
if: needs.pre_job.outputs.should_skip != 'true' | |
uses: microsoft/[email protected] | |
- name: Restore NuGet Packages | |
if: needs.pre_job.outputs.should_skip != 'true' | |
run: nuget restore $env:SolutionPath -Verbosity quiet | |
- name: Set version for Visual Studio Extension | |
if: needs.pre_job.outputs.should_skip != 'true' | |
uses: cezarypiatek/[email protected] | |
with: | |
version: '${{env.AutoVersion_AssemblySemVer}}' | |
vsix-manifest-file: 'src\Unitverse\Manifests\${{ matrix.VsTargetVersion }}\source.extension.vsixmanifest' | |
- name: Set Help/About version | |
if: needs.pre_job.outputs.should_skip != 'true' | |
run: | | |
((Get-Content -path src\Unitverse\UnitTestGeneratorPackage.cs -Raw) -replace ', "1.0", ',', "${{env.AutoVersion_Major}}.${{env.AutoVersion_Minor}}", ') | Set-Content -Path src\Unitverse\UnitTestGeneratorPackage.cs | |
shell: pwsh | |
- name: Build extension | |
if: needs.pre_job.outputs.should_skip != 'true' | |
run: msbuild $env:SolutionPath /t:Rebuild -v:m | |
env: | |
DeployExtension: False | |
- name: Check changes in generated examples | |
if: needs.pre_job.outputs.should_skip != 'true' | |
run: | | |
./.github/workflows/CheckChanges.ps1 | |
shell: pwsh | |
- name: Test extension | |
if: needs.pre_job.outputs.should_skip != 'true' && github.ref != 'refs/heads/master' && github.ref != 'refs/heads/main' | |
run: dotnet test --no-build --verbosity minimal $env:SolutionPath | |
- name: Collect artifacts - VSIX | |
if: needs.pre_job.outputs.should_skip != 'true' | |
uses: actions/upload-artifact@v3 | |
with: | |
name: Unitverse-VSIX-${{ matrix.VsTargetVersion }} | |
path: ${{ env.VsixPath }} | |
release-extension: | |
if: github.event_name != 'pull_request' && (github.ref == 'refs/heads/master' || github.ref == 'refs/heads/main') && needs.pre_job.outputs.should_skip != 'true' | |
needs: [build, pre_job] | |
runs-on: windows-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: '0' | |
- run: | | |
./.github/workflows/AutoVersion.ps1 | |
shell: pwsh | |
- uses: actions/download-artifact@v3 | |
with: | |
name: Unitverse-VSIX-VS2019 | |
path: dist/ | |
- uses: actions/download-artifact@v3 | |
with: | |
name: Unitverse-VSIX-VS2022 | |
path: dist/ | |
- name: Create Github Release | |
id: create_release | |
uses: softprops/action-gh-release@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
tag_name: ${{env.AutoVersion_SemVer}} | |
name: ${{env.AutoVersion_SemVer}} | |
body: 'Unitverse v${{env.AutoVersion_SemVer}}' | |
draft: false | |
prerelease: false | |
files: | | |
dist/UnitverseVS2019.vsix | |
dist/UnitverseVS2022.vsix | |
- name: Publish 2022 extension to Marketplace | |
if: github.event_name != 'pull_request' && (github.ref == 'refs/heads/master' || github.ref == 'refs/heads/main') | |
uses: cezarypiatek/[email protected] | |
with: | |
extension-file: 'dist/UnitverseVS2022.vsix' | |
publish-manifest-file: 'publishManifestVS2022.json' | |
personal-access-code: ${{ secrets.UNITVERSE_PUBLISHER_ACCESS_TOKEN }} | |
- name: Publish 2019 extension to Marketplace | |
if: github.event_name != 'pull_request' && (github.ref == 'refs/heads/master' || github.ref == 'refs/heads/main') | |
uses: cezarypiatek/[email protected] | |
with: | |
extension-file: 'dist/UnitverseVS2019.vsix' | |
publish-manifest-file: 'publishManifestVS2019.json' | |
personal-access-code: ${{ secrets.UNITVERSE_PUBLISHER_ACCESS_TOKEN }} |