Skip to content

Commit

Permalink
Use new project system
Browse files Browse the repository at this point in the history
  • Loading branch information
ezhevita committed Aug 16, 2021
1 parent be8d13e commit d51b1f6
Show file tree
Hide file tree
Showing 7 changed files with 180 additions and 29 deletions.
112 changes: 97 additions & 15 deletions .github/workflows/dotnet.yml
Original file line number Diff line number Diff line change
@@ -1,38 +1,120 @@
name: .NET

on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
on: [ push, pull_request ]

env:
DOTNET_SDK_VERSION: 5.0.x

jobs:
build:
build-generic-netf:
runs-on: windows-latest
steps:
- uses: actions/checkout@v2
- name: Checkout code
uses: actions/checkout@v2

- name: Checkout submodules
run: git submodule update --init --recursive

- name: Setup .NET
uses: actions/setup-dotnet@v1
with:
dotnet-version: ${{ env.DOTNET_SDK_VERSION }}

- name: Restore dependencies
run: dotnet restore
- name: Build with .NET Core
run: dotnet publish -c Release -f net5.0 -o out/generic

- name: Build with .NET Framework
run: dotnet publish -c Release -f net48 -o out/generic-netf
- name: Upload generic artifacts
uses: actions/upload-artifact@v2
with:
name: ${{ github.event.repository.name }}-generic
path: out/generic

- name: Archive generic-netf release
uses: thedoctor0/zip-release@master
with:
files: out/generic-netf
type: 'zip'
filename: 'out/generic-netf.zip'

- name: Upload generic-netf artifacts
uses: actions/upload-artifact@v2
with:
name: ${{ github.event.repository.name }}-generic-netf
path: out/generic-netf
path: out/generic-netf.zip

build-generic:
runs-on: windows-latest
steps:
- name: Checkout code
uses: actions/checkout@v2

- name: Checkout submodules
run: git submodule update --init --recursive

- name: Setup .NET
uses: actions/setup-dotnet@v1
with:
dotnet-version: ${{ env.DOTNET_SDK_VERSION }}

- name: Restore dependencies
run: dotnet restore

- name: Build with .NET Core
run: dotnet publish -c Release -f net5.0 -o out/generic

- name: Archive generic release
uses: thedoctor0/zip-release@master
with:
files: out/generic
type: 'zip'
filename: 'out/generic.zip'

- name: Upload generic artifacts
uses: actions/upload-artifact@v2
with:
name: ${{ github.event.repository.name }}-generic
path: out/generic.zip

release:
if: ${{ github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') }}
needs: [build-generic-netf, build-generic]
runs-on: ubuntu-latest

steps:
- name: Download generic artifacts
uses: actions/download-artifact@v2.0.10
with:
name: ${{ github.event.repository.name }}-generic
path: out

- name: Download generic-netf artifacts
uses: actions/download-artifact@v2.0.10
with:
name: ${{ github.event.repository.name }}-generic-netf
path: out

- name: Create GitHub release
id: github_release
uses: actions/create-release@v1.1.4
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ github.ref }}
release_name: ${{ github.event.repository.name }} V${{ github.ref }}

- name: Upload generic artifacts to GitHub release
uses: actions/upload-release-asset@v1.0.2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.github_release.outputs.upload_url }}
asset_path: out/generic.zip
asset_name: generic.zip
asset_content_type: application/zip

- name: Upload generic-netf artifacts to GitHub release
uses: actions/upload-release-asset@v1.0.2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.github_release.outputs.upload_url }}
asset_path: out/generic-netf.zip
asset_name: generic-netf.zip
asset_content_type: application/zip
17 changes: 17 additions & 0 deletions Directory.Build.props
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<Project>

<PropertyGroup>
<ApplicationIcon/>
<Authors>Vital7</Authors>
<Company>$(Authors)</Company>
<Copyright>Copyright © $(Company) 2020-$([System.DateTime]::UtcNow.Year)</Copyright>
<PackageIcon/>
<PackageProjectUrl>https://github.com/$(Company)/$(MSBuildProjectName)</PackageProjectUrl>
<PackageReleaseNotes>$(PackageProjectUrl)/releases</PackageReleaseNotes>
<PublicSign>false</PublicSign>
<OutputType>Library</OutputType>
<RepositoryUrl>$(PackageProjectUrl).git</RepositoryUrl>
<SignAssembly>false</SignAssembly>
</PropertyGroup>

</Project>
13 changes: 13 additions & 0 deletions Directory.Packages.props
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<Project>

<ItemGroup>
<PackageVersion Include="AngleSharp" Version="0.14.0" />
</ItemGroup>

<ItemGroup Condition="'$(TargetFramework)' == 'net48'">
<PackageVersion Include="IndexRange" Version="1.0.0" />
</ItemGroup>

<Import Project="ArchiSteamFarm/Directory.Packages.props" />

</Project>
3 changes: 3 additions & 0 deletions GameRemover/AssemblyInfo.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
using System;

[assembly: CLSCompliant(true)]
12 changes: 12 additions & 0 deletions GameRemover/Directory.Build.props
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<Project>

<Import Project="$([MSBuild]::GetPathOfFileAbove('Directory.Build.props', '$(MSBuildThisFileDirectory)../ArchiSteamFarm/'))"/>

<PropertyGroup>
<Description>ASF plugin to remove games from account.</Description>
<Version>2.0.0.0</Version>
</PropertyGroup>

<Import Project="$([MSBuild]::GetPathOfFileAbove('Directory.Build.props', '$(MSBuildThisFileDirectory)../'))"/>

</Project>
18 changes: 7 additions & 11 deletions GameRemover/GameRemover.csproj
Original file line number Diff line number Diff line change
@@ -1,18 +1,14 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<AssemblyVersion>1.1.0.0</AssemblyVersion>
<FileVersion>1.1.0.0</FileVersion>
<Nullable>enable</Nullable>
<TargetFrameworks>net5.0;net48</TargetFrameworks>
<LangVersion>latest</LangVersion>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="AngleSharp" Version="*" IncludeAssets="compile" />
<PackageReference Include="JetBrains.Annotations" Version="*" IncludeAssets="compile" />
<PackageReference Include="System.Composition.AttributedModel" Version="*" IncludeAssets="compile" />
<PackageReference Include="AngleSharp" IncludeAssets="compile" />
<PackageReference Include="JetBrains.Annotations" IncludeAssets="compile" />
<PackageReference Include="System.Composition.AttributedModel" IncludeAssets="compile" />
<ProjectReference Include="..\ArchiSteamFarm\ArchiSteamFarm\ArchiSteamFarm.csproj" Private="false" ExcludeAssets="all" />
</ItemGroup>

<ItemGroup Condition="'$(TargetFramework)' == 'net48'">
<PackageReference Include="IndexRange" IncludeAssets="compile" />
</ItemGroup>

</Project>
34 changes: 31 additions & 3 deletions GameRemover/GameRemover.cs → GameRemover/GameRemoverPlugin.cs
Original file line number Diff line number Diff line change
Expand Up @@ -20,17 +20,45 @@ namespace GameRemover {
// ReSharper disable once UnusedMember.Global
[Export(typeof(IPlugin))]
[UsedImplicitly]
public class GameRemover : IBotCommand {
public class GameRemoverPlugin : IBotCommand {
public void OnLoaded() {
ASF.ArchiLogger.LogGenericInfo(nameof(GameRemover) + " by Vital7 | Support & source code: https://github.com/Vital7/GameRemover");
Assembly assembly = Assembly.GetExecutingAssembly();
string repository = assembly
.GetCustomAttributes<AssemblyMetadataAttribute>()
.First(x => x.Key == "RepositoryUrl")
.Value ?? throw new InvalidOperationException(nameof(AssemblyMetadataAttribute));

const string git = ".git";
int index = repository.IndexOf(git, StringComparison.Ordinal);
if (index >= 0) {
repository = repository[..(index + 1)];
}

string company = assembly
.GetCustomAttribute<AssemblyCompanyAttribute>()?.Company ?? throw new InvalidOperationException(nameof(AssemblyCompanyAttribute));

ASF.ArchiLogger.LogGenericInfo(Name + " by " + company + " | Support & source code: " + repository);
}

public string Name => nameof(GameRemover);
public Version Version => Assembly.GetExecutingAssembly().GetName().Version ?? throw new InvalidOperationException(nameof(Version));

[CLSCompliant(false)]
public async Task<string?> OnBotCommand(Bot bot, ulong steamID, string message, string[] args) {
if (bot == null) {
throw new ArgumentNullException(nameof(bot));
}

if (string.IsNullOrEmpty(message)) {
throw new ArgumentNullException(nameof(message));
}

if (args == null) {
throw new ArgumentNullException(nameof(args));
}

return args[0].ToUpperInvariant() switch {
"DELETEGAME" when args.Length > 2 => await ResponseDeleteGame(steamID, args[1], args[2]),
"DELETEGAME" when args.Length > 2 => await ResponseDeleteGame(steamID, args[1], args[2]).ConfigureAwait(false),
"DELETEGAME" when args.Length > 1 => await ResponseDeleteGame(bot, steamID, args[1]).ConfigureAwait(false),
_ => null
};
Expand Down

0 comments on commit d51b1f6

Please sign in to comment.