Update dotnet-desktop.yml: fix linux build and add linting #7
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
# This workflow will build, test and package a WPF or Windows Forms desktop application | |
# built on .NET Core. | |
# | |
# To configure this workflow: | |
# | |
# 1. Configure environment variables | |
# GitHub sets default environment variables for every workflow run. | |
# Replace the variables relative to your project in the "env" section below. | |
# | |
# For more information on GitHub Actions, refer to https://github.com/features/actions | |
# For a complete CI/CD sample to get started with GitHub Action workflows for Desktop Applications, | |
# refer to https://github.com/microsoft/github-actions-for-desktop-apps | |
name: .NET Core Desktop | |
on: | |
push: | |
branches: [ "master" ] | |
tags: [ "v*" ] | |
pull_request: | |
branches: [ "master" ] | |
jobs: | |
lint_csharp: | |
runs-on: windows-latest # For a list of available runner types, refer to https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idruns-on | |
env: | |
Solution_Name: ScrapPackedExplorer.sln | |
Test_Project_Path: ScrapPackedTests/ScrapPackedTests.csproj | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
# Install the .NET Core workload | |
- name: Install .NET Core | |
uses: actions/setup-dotnet@v3 | |
with: | |
dotnet-version: 6.0.x | |
# Format the output of dotnet format | |
- name: Add dotnet-format problem matcher | |
uses: xt0rted/dotnet-format-problem-matcher@v1 | |
# Install dotnet format as a global tool | |
- name: Install dotnet format | |
run: dotnet tool update --global dotnet-format | |
# Run dotnet format --dry-run --check | |
# By default, the task ensure the exit code is 0 | |
# If a file needs to be edited by dotnet format, the exit code will be a non-zero value | |
# So the task will fail | |
- name: Run dotnet format | |
run: dotnet format --check --verbosity diagnostic | |
build-test-and-deploy: | |
runs-on: windows-latest # For a list of available runner types, refer to https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idruns-on | |
env: | |
Solution_Name: ScrapPackedExplorer.sln | |
Test_Project_Path: ScrapPackedTests/ScrapPackedTests.csproj | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
# Install the .NET Core workload | |
- name: Install .NET Core | |
uses: actions/setup-dotnet@v3 | |
with: | |
dotnet-version: 6.0.x | |
- name: Restore dependencies | |
run: dotnet restore ${{ env.Solution_Name }} | |
- name: Build Project | |
run: dotnet build ${{ env.Solution_Name }} -c Release --no-restore | |
- name: Run Tests | |
run: dotnet test | |
- name: Publish Project | |
if: ${{ startsWith(github.ref, 'refs/tags/v') }} | |
shell: cmd | |
run: | | |
@rem simplify | |
@echo Building Scrap Packed Explorer GUI | |
msbuild ScrapPackedExplorer\ScrapPackedExplorer.csproj -p:Configuration=Release -restore -t:Publish -p:Platform=AnyCPU -p:PublishProfile="ScrapPackedExplorer\Properties\PublishProfiles\ScrapPackedExplorer.exe (x64).pubxml" | |
msbuild ScrapPackedExplorer\ScrapPackedExplorer.csproj -p:Configuration=Release -restore -t:Publish -p:Platform=x86 -p:PublishProfile="ScrapPackedExplorer\Properties\PublishProfiles\ScrapPackedExplorer.exe (x86).pubxml" | |
ren "Publish (32bit)\ScrapPackedExplorer.exe" "ScrapPackedExplorer32.exe" | |
@echo Building Scrap Packed Explorer Combined | |
msbuild ScrapPackedExplorerCombined\ScrapPackedExplorerCombined.csproj -p:Configuration=Release -restore -t:Publish -p:Platform=AnyCPU -p:PublishProfile="ScrapPackedExplorerCombined\Properties\PublishProfiles\ScrapPackedExplorerCombined.exe (x64).pubxml" | |
msbuild ScrapPackedExplorerCombined\ScrapPackedExplorerCombined.csproj -p:Configuration=Release -restore -t:Publish -p:Platform=x86 -p:PublishProfile="ScrapPackedExplorerCombined\Properties\PublishProfiles\ScrapPackedExplorerCombined.exe (x86).pubxml" | |
ren "Publish (32bit)\ScrapPackedExplorerCombined.exe" "ScrapPackedExplorerCombined32.exe" | |
@echo Building Scrap Packed Explorer CLI | |
msbuild ScrapPackedExplorerCli\ScrapPackedExplorerCli.csproj -p:Configuration=Release -restore -t:Publish -p:Platform=AnyCPU -p:PublishProfile="ScrapPackedExplorerCli\Properties\PublishProfiles\ScrapPackedExplorerCli.exe (x64).pubxml" | |
msbuild ScrapPackedExplorerCli\ScrapPackedExplorerCli.csproj -p:Configuration=Release -restore -t:Publish -p:Platform=x86 -p:PublishProfile="ScrapPackedExplorerCli\Properties\PublishProfiles\ScrapPackedExplorerCli.exe (x86).pubxml" | |
ren "Publish (32bit)\ScrapPackedExplorerCli.exe" "ScrapPackedExplorerCli32.exe" | |
msbuild ScrapPackedExplorerCli\ScrapPackedExplorerCli.csproj -p:Configuration=Release -restore -t:Publish -p:Platform=AnyCPU -p:PublishProfile="ScrapPackedExplorerCli\Properties\PublishProfiles\ScrapPackedExplorerCli (linux-x86_64).pubxml" | |
- name: Prepare Release | |
id: create_release | |
if: ${{ startsWith(github.ref, 'refs/tags/v') }} | |
uses: actions/create-release@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
tag_name: ${{ github.ref }} | |
release_name: ${{ github.ref }} | |
- name: Upload build artifacts (.exe) | |
if: ${{ startsWith(github.ref, 'refs/tags/v') }} | |
uses: csexton/release-asset-action@v2 | |
with: | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
pattern: Publish*/*.exe | |
release-url: ${{ steps.create_release.outputs.upload_url }} | |
- name: Upload build artifacts (linux binary) | |
if: ${{ startsWith(github.ref, 'refs/tags/v') }} | |
uses: csexton/release-asset-action@v2 | |
with: | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
file: Publish (linux-x86_64)/ScrapPackedExplorerCli | |
release-url: ${{ steps.create_release.outputs.upload_url }} | |
build-and-tests-on-linux: | |
runs-on: ubuntu-latest | |
env: | |
Solution_Name: ScrapPackedExplorer.sln | |
Test_Project_Path: ScrapPackedTests/ScrapPackedTests.csproj | |
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: Restore dependencies | |
run: | | |
dotnet restore ScrapPackedLibrary/ScrapPackedLibrary.csproj | |
dotnet restore ScrapPackedExplorerCli/ScrapPackedExplorerCli.csproj | |
dotnet restore ScrapPackedTests/ScrapPackedTests.csproj | |
- name: Build Project | |
run: | | |
dotnet build ScrapPackedLibrary/ScrapPackedLibrary.csproj -c Release --no-restore | |
dotnet build ScrapPackedExplorerCli/ScrapPackedExplorerCli.csproj -c Release --no-restore | |
dotnet build ScrapPackedTests/ScrapPackedTests.csproj -c Release --no-restore | |
- name: Run Tests | |
run: dotnet test --no-restore |