Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GitHub action #2986

Open
wants to merge 3 commits into
base: dev
Choose a base branch
from
Open
Changes from all 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
110 changes: 110 additions & 0 deletions .github/workflows/dotnet.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
# This workflow will build a .NET project
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-net

name: .NET

on:
workflow_dispatch:
push:
branches:
- dev
- master
pull_request:
branches:
- dev
- master

jobs:
build:

runs-on: windows-latest
env:
FlowVersion: 1.18.0
NUGET_CERT_REVOCATION_MODE: offline
BUILD_NUMBER: ${{ github.run_number }}
steps:
- uses: actions/checkout@v4
- name: Set Flow.Launcher.csproj version
id: update
uses: vers-one/[email protected]
with:
file: |
"**/SolutionAssemblyInfo.cs"
version: ${{ env.FlowVersion }}.${{ env.BUILD_NUMBER }}
- uses: actions/cache@v4
name: Restore Nuget Cache
with:
path: |
~/.nuget/packages
key: ${{ runner.os }}-nuget-${{ hashFiles('**/*.csproj') }}
restore-keys: |
${{ runner.os }}-nuget
- uses: actions/cache@v4
name: Restore dotnet tool Cache
with:
path: |
~/.dotnet/tools
key: ${{ runner.os }}-dotnet-tools-${{ hashFiles('~/.dotnet/tools/**') }}
restore-keys: |
${{ runner.os }}-dotnet-tools
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: 7.0.x
- name: Install vpk
Install vpk tool (dotnet tool install will not reinstall if already installed)
We will update the cli by removing cache
run: |
if (!(Get-Command vpk -ErrorAction SilentlyContinue)) {
dotnet tool install -g vpk
}
- name: Restore dependencies
run: dotnet restore
- name: Build
run: dotnet build --no-restore -c Release
- name: Initialize Service
run: |
sc config WSearch start= auto # Starts Windows Search service- Needed for running ExplorerTest
net start WSearch
- name: Test
run: dotnet test --no-build --verbosity normal -c Release
- name: Perform post_build tasks
shell: pwsh
run: .\Scripts\post_build.ps1 -flowversion "${env:FlowVersion}-build.${env:BUILD_NUMBER}"
- name: Upload Plugin Nupkg
uses: actions/upload-artifact@v4
with:
name: Plugin nupkg
path: |
Output\Release\Flow.Launcher.Plugin.*.nupkg
compression-level: 0
- name: Upload Setup
uses: actions/upload-artifact@v4
with:
name: Flow Installer
path: |
Output\Packages\Flow-Launcher-*.exe
compression-level: 0
- name: Upload Portable Version
uses: actions/upload-artifact@v4
with:
name: Portable Version
path: |
Output\Packages\Flow-Launcher-Portable.zip
compression-level: 0
- name: Upload Full Nupkg
uses: actions/upload-artifact@v4
with:
name: Full nupkg
path: |
Output\Packages\FlowLauncher-*-full.nupkg
compression-level: 0
- name: Upload Release Information
uses: actions/upload-artifact@v4
with:
name: RELEASES
path: |
Output\Packages\RELEASES
compression-level: 0


Unchanged files with check annotations Beta

var t = await MemoryPackSerializer.DeserializeAsync<T>(stream);
return t;
}
catch (System.Exception e)

Check warning on line 68 in Flow.Launcher.Infrastructure/Storage/BinaryStorage.cs

GitHub Actions / build

The variable 'e' is declared but never used
{
// Log.Exception($"|BinaryStorage.Deserialize|Deserialize error for file <{FilePath}>", e);
return defaultData;
});
}
public static async Task Save()

Check warning on line 63 in Flow.Launcher.Infrastructure/Image/ImageLoader.cs

GitHub Actions / build

Use "Async" suffix in names of methods that return an awaitable type (https://github.com/Microsoft/vs-threading/blob/main/doc/analyzers/VSTHRD200.md)
{
await storageLock.WaitAsync();
private void OnWinRPressed()
{
// show the main window and set focus to the query box
Task.Run(() =>

Check warning on line 372 in Plugins/Flow.Launcher.Plugin.Shell/Main.cs

GitHub Actions / build

Observe the awaitable result of this method call by awaiting it, assigning to a variable, or passing it to another method (https://github.com/Microsoft/vs-threading/blob/main/doc/analyzers/VSTHRD110.md)
{
context.API.ShowMainWindow();
context.API.ChangeQuery($"{context.CurrentPluginMetadata.ActionKeywords[0]}{Plugin.Query.TermSeparator}");
new()
{
Title = context.API.GetTranslation("flowlauncher_plugin_cmd_run_as_different_user"),
AsyncAction = async c =>

Check warning on line 402 in Plugins/Flow.Launcher.Plugin.Shell/Main.cs

GitHub Actions / build

This async method lacks 'await' operators and will run synchronously. Consider using the 'await' operator to await non-blocking API calls, or 'await Task.Run(...)' to do CPU-bound work on a background thread.
{
Execute(ShellCommand.RunAsDifferentUser, PrepareProcessStartInfo(selectedResult.Title));
return true;
/// </summary>
internal abstract class JsonRPCPlugin : JsonRPCPluginBase
{
public const string JsonRPC = "JsonRPC";

Check warning on line 35 in Flow.Launcher.Core/Plugin/JsonRPCPlugin.cs

GitHub Actions / build

'JsonRPCPlugin.JsonRPC' hides inherited member 'JsonRPCPluginBase.JsonRPC'. Use the new keyword if hiding was intended.
protected abstract Task<Stream> RequestAsync(JsonRPCRequestModel rpcRequest, CancellationToken token = default);
protected abstract string Request(JsonRPCRequestModel rpcRequest, CancellationToken token = default);
{
public class JsonRPCPluginSettings
{
public required JsonRpcConfigurationModel? Configuration { get; init; }

Check warning on line 21 in Flow.Launcher.Core/Plugin/JsonRPCPluginSettings.cs

GitHub Actions / build

The annotation for nullable reference types should only be used in code within a '#nullable' annotations context.
public required string SettingPath { get; init; }
public Dictionary<string, FrameworkElement> SettingControls { get; } = new();
};
if (dialog.ShowDialog() != DialogResult.OK) return;
var path = dialog switch

Check warning on line 263 in Flow.Launcher.Core/Plugin/JsonRPCPluginSettings.cs

GitHub Actions / build

The switch expression does not handle all possible values of its input type (it is not exhaustive). For example, the pattern '_' is not covered.
{
FolderBrowserDialog folderDialog => folderDialog.SelectedPath,
OpenFileDialog fileDialog => fileDialog.FileName,
var latest = releases.Where(r => !r.Prerelease).OrderByDescending(r => r.PublishedAt).First();
var latestUrl = latest.HtmlUrl.Replace("/tag/", "/download/");
var client = new WebClient

Check warning on line 133 in Flow.Launcher.Core/Updater.cs

GitHub Actions / build

'WebClient.WebClient()' is obsolete: 'WebRequest, HttpWebRequest, ServicePoint, and WebClient are obsolete. Use HttpClient instead.' (https://aka.ms/dotnet-warnings/SYSLIB0014)
{
Proxy = Http.WebProxy
};
public override async Task ReloadDataAsync()
{
var oldProcess = ClientProcess;
ClientProcess = Process.Start(StartInfo);

Check warning on line 73 in Flow.Launcher.Core/Plugin/ProcessStreamPluginV2.cs

GitHub Actions / build

Possible null reference assignment.
ArgumentNullException.ThrowIfNull(ClientProcess);
SetupPipe(ClientProcess);
await base.ReloadDataAsync();
{
await RPC.InvokeAsync("close");
}
catch (RemoteMethodNotFoundException e)

Check warning on line 148 in Flow.Launcher.Core/Plugin/JsonRPCPluginV2.cs

GitHub Actions / build

The variable 'e' is declared but never used
{
}
finally