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

start migrating to net core 3.0 and 2.1 netstandard #41

Merged
merged 11 commits into from Jan 22, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
72 changes: 46 additions & 26 deletions .circleci/config.yml
Expand Up @@ -5,19 +5,6 @@ jobs:
docker_layer_caching: false
steps:
- checkout

test:
machine:
docker_layer_caching: false
steps:
- checkout
- run:
command: |
# cd BTCPayServer.Tests
# docker-compose down --v
# docker-compose build
# docker-compose run tests

# publish jobs require $DOCKERHUB_REPO, $DOCKERHUB_USER, $DOCKERHUB_PASS defined
publish_docker_linuxamd64:
machine:
Expand All @@ -27,12 +14,16 @@ jobs:
- run:
command: |
LATEST_TAG=${CIRCLE_TAG:1} #trim v from tag
if [ -z "$LATEST_TAG" ]
then
LATEST_TAG="latest"
fi
#
sudo docker build --pull -t $DOCKERHUB_REPO:$LATEST_TAG-amd64 -f BtcTransmuter/Dockerfile.linuxamd64 .
sudo docker build --pull -t $DOCKERHUB_REPO:$LATEST_TAG-amd64 -f Dockerfiles/amd64.Dockerfile .
sudo docker login --username=$DOCKERHUB_USER --password=$DOCKERHUB_PASS
sudo docker push $DOCKERHUB_REPO:$LATEST_TAG-amd64

publish_docker_linuxarm:
publish_docker_linuxarm32:
machine:
docker_layer_caching: false
steps:
Expand All @@ -41,11 +32,31 @@ jobs:
command: |
sudo docker run --rm --privileged multiarch/qemu-user-static:register --reset
LATEST_TAG=${CIRCLE_TAG:1} #trim v from tag
if [ -z "$LATEST_TAG" ]
then
LATEST_TAG="latest"
fi
#
sudo docker build --pull -t $DOCKERHUB_REPO:$LATEST_TAG-arm32v7 -f BtcTransmuter/Dockerfile.linuxarm32v7 .
sudo docker build --pull -t $DOCKERHUB_REPO:$LATEST_TAG-arm32v7 -f Dockerfiles/arm32v7.Dockerfile .
sudo docker login --username=$DOCKERHUB_USER --password=$DOCKERHUB_PASS
sudo docker push $DOCKERHUB_REPO:$LATEST_TAG-arm32v7

publish_docker_linuxarm64:
machine:
docker_layer_caching: false
steps:
- checkout
- run:
command: |
sudo docker run --rm --privileged multiarch/qemu-user-static:register --reset
LATEST_TAG=${CIRCLE_TAG:1} #trim v from tag
if [ -z "$LATEST_TAG" ]
then
LATEST_TAG="latest"
fi
#
sudo docker build --pull -t $DOCKERHUB_REPO:$LATEST_TAG-arm64v8 -f Dockerfiles/arm64v8.Dockerfile .
sudo docker login --username=$DOCKERHUB_USER --password=$DOCKERHUB_PASS
sudo docker push $DOCKERHUB_REPO:$LATEST_TAG-arm64v8
publish_docker_multiarch:
machine:
enabled: true
Expand All @@ -60,39 +71,48 @@ jobs:
sudo docker login --username=$DOCKERHUB_USER --password=$DOCKERHUB_PASS
#
LATEST_TAG=${CIRCLE_TAG:1} #trim v from tag
sudo docker manifest create --amend $DOCKERHUB_REPO:$LATEST_TAG $DOCKERHUB_REPO:$LATEST_TAG-amd64 $DOCKERHUB_REPO:$LATEST_TAG-arm32v7
if [ -z "$LATEST_TAG" ]
then
LATEST_TAG="latest"
fi
sudo docker manifest create --amend $DOCKERHUB_REPO:$LATEST_TAG $DOCKERHUB_REPO:$LATEST_TAG-amd64 $DOCKERHUB_REPO:$LATEST_TAG-arm32v7 $DOCKERHUB_REPO:$LATEST_TAG-arm64v8
sudo docker manifest annotate $DOCKERHUB_REPO:$LATEST_TAG $DOCKERHUB_REPO:$LATEST_TAG-amd64 --os linux --arch amd64
sudo docker manifest annotate $DOCKERHUB_REPO:$LATEST_TAG $DOCKERHUB_REPO:$LATEST_TAG-arm32v7 --os linux --arch arm --variant v7
sudo docker manifest annotate $DOCKERHUB_REPO:$LATEST_TAG $DOCKERHUB_REPO:$LATEST_TAG-arm64v8 --os linux --arch arm64 --variant v8
sudo docker manifest push $DOCKERHUB_REPO:$LATEST_TAG -p

workflows:
version: 2
build_and_test:
jobs:
- test

publish:
jobs:
- publish_docker_linuxamd64:
filters:
# ignore any commit on any branch by default
branches:
ignore: /.*/
only: master
# only act on version tags
tags:
only: /v[0-9]+(\.[0-9]+)*/
- publish_docker_linuxarm:
- publish_docker_linuxarm32:
filters:
branches:
only: master
tags:
only: /v[0-9]+(\.[0-9]+)*/
- publish_docker_linuxarm64:
filters:
branches:
ignore: /.*/
only: master
tags:
only: /v[0-9]+(\.[0-9]+)*/
- publish_docker_multiarch:
requires:
- publish_docker_linuxamd64
- publish_docker_linuxarm
- publish_docker_linuxarm32
- publish_docker_linuxarm64
filters:
branches:
ignore: /.*/
only: master
tags:
only: /v[0-9]+(\.[0-9]+)*/
@@ -1,7 +1,10 @@
<Project Sdk="Microsoft.NET.Sdk.Razor">
<Project Sdk="Microsoft.NET.Sdk.Web">

<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>

<TargetFramework>netcoreapp3.1</TargetFramework>
<AddRazorSupportForMvc>true</AddRazorSupportForMvc>
<OutputType>Library</OutputType>
</PropertyGroup>

<ItemGroup>
Expand Down
15 changes: 9 additions & 6 deletions BtcTransmuter.Abstractions/BtcTransmuter.Abstractions.csproj
@@ -1,15 +1,18 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>

<TargetFramework>netcoreapp3.1</TargetFramework>
<AddRazorSupportForMvc>true</AddRazorSupportForMvc>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="ExtCore.Mvc.Infrastructure" Version="4.0.0" />
<PackageReference Include="Microsoft.Extensions.Identity.Stores" Version="2.2.0" />
<PackageReference Include="NetCore.AutoRegisterDi" Version="1.0.0" />
<PackageReference Include="Newtonsoft.Json" Version="12.0.2" />
<PackageReference Include="System.Linq.Dynamic.Core" Version="1.0.19" />
<PackageReference Include="McMaster.NETCore.Plugins" Version="1.1.0" />
<PackageReference Include="McMaster.NETCore.Plugins.Mvc" Version="1.1.0" />
<PackageReference Include="Microsoft.Extensions.Identity.Stores" Version="3.1.0" />
<PackageReference Include="NetCore.AutoRegisterDi" Version="1.1.0" />
<PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
<PackageReference Include="System.Linq.Dynamic.Core" Version="1.0.20" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\BtcTransmuter.Data\BtcTransmuter.Data.csproj" />
Expand Down
3 changes: 1 addition & 2 deletions BtcTransmuter.Abstractions/Configuration/DatabaseType.cs
Expand Up @@ -3,7 +3,6 @@ namespace BtcTransmuter
public enum DatabaseType
{
Sqlite,
Postgres,
SqlServer
Postgres
}
}
Expand Up @@ -6,8 +6,6 @@
using BtcTransmuter.Abstractions.ExternalServices;
using BtcTransmuter.Abstractions.Helpers;
using BtcTransmuter.Abstractions.Triggers;
using ExtCore.Infrastructure;
using ExtCore.Infrastructure.Actions;
using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
Expand All @@ -16,7 +14,7 @@

namespace BtcTransmuter.Abstractions.Extensions
{
public abstract class BtcTransmuterExtension: ExtensionBase, IExtension, IConfigureAction, IConfigureServicesAction
public abstract class BtcTransmuterExtension: IExtension
{

public abstract string Name { get; }
Expand Down Expand Up @@ -45,10 +43,6 @@ public void Execute(IServiceCollection serviceCollection, IServiceProvider servi
Execute(serviceCollection);
}

int IConfigureServicesAction.Priority => 0;

int IConfigureAction.Priority=> 0;

public virtual void Execute(IServiceCollection serviceCollection)
{
RegisterInstances(serviceCollection, new Type[]
Expand Down
20 changes: 3 additions & 17 deletions BtcTransmuter.Abstractions/Extensions/ModelStateExtensions.cs
@@ -1,29 +1,15 @@
using System;
using System.Linq.Expressions;
using Microsoft.AspNetCore.Mvc.ModelBinding;
using Microsoft.AspNetCore.Mvc.ViewFeatures.Internal;

namespace BtcTransmuter.Abstractions.Extensions
{
public static class ModelStateExtensions
{
public static void AddModelError<TModel, TProperty>(
this ModelStateDictionary modelState,
Expression<Func<TModel, TProperty>> ex,
string message
)
{
var key = ExpressionHelper.GetExpressionText(ex);
modelState.AddModelError(key, message);
}

public static void AddModelError<TModel, TProperty>(this TModel source,
Expression<Func<TModel, TProperty>> ex,
public static void AddModelError<TModel>(this TModel source,
string name,
string message,
ModelStateDictionary modelState)
{
var key = ExpressionHelper.GetExpressionText(ex);
modelState.AddModelError(key, message);
modelState.AddModelError(name, message);
}
}
}
17 changes: 9 additions & 8 deletions BtcTransmuter.Data/BtcTransmuter.Data.csproj
@@ -1,17 +1,18 @@
<Project Sdk="Microsoft.NET.Sdk.Razor">
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>

<TargetFramework>netcoreapp3.1</TargetFramework>
<AddRazorSupportForMvc>true</AddRazorSupportForMvc>
<LangVersion>latest</LangVersion>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.2.0" />
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="2.2.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="2.2.4" />
<!--<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite.Design" Version="1.1.6" />-->
<PackageReference Include="Newtonsoft.Json" Version="12.0.2" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="2.2.4" />
<PackageReference Include="Microsoft.AspNetCore.DataProtection.Abstractions" Version="3.1.0" />
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="3.1.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="3.1.0" />
<PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="3.1.0" />
</ItemGroup>

</Project>
4 changes: 2 additions & 2 deletions BtcTransmuter.Data/Entities/BaseEntity.cs
@@ -1,11 +1,11 @@
using System.ComponentModel.DataAnnotations.Schema;
using BtcTransmuter.Data.Encryption;
using BtcTransmuter.Data.Models;

namespace BtcTransmuter.Data.Entities
{
public abstract class BaseEntity : IHasJsonData
public abstract class BaseEntity :BaseIdEntity, IHasJsonData
{
public string Id { get; set; }
[Encrypted] public string DataJson { get; set; }
}
}
10 changes: 10 additions & 0 deletions BtcTransmuter.Data/Entities/BaseIdEntity.cs
@@ -0,0 +1,10 @@
using System.ComponentModel.DataAnnotations.Schema;

namespace BtcTransmuter.Data.Entities
{
public abstract class BaseIdEntity
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public string Id { get; set; }
}
}
11 changes: 8 additions & 3 deletions BtcTransmuter.Data/Entities/Recipe.cs
Expand Up @@ -2,9 +2,8 @@

namespace BtcTransmuter.Data.Entities
{
public class Recipe
public class Recipe : BaseIdEntity
{
public string Id { get; set; }
public string UserId { get; set; }
public string Name { get; set; }
public bool Enabled { get; set; }
Expand All @@ -13,7 +12,13 @@ public class Recipe
public RecipeTrigger RecipeTrigger { get; set; }
public List<RecipeAction> RecipeActions { get; set; } // executes all actions

public List<RecipeActionGroup> RecipeActionGroups { get; set; } // executes actions in groups. Action in a group are executed syncrhonously and depending if the previous action executes
public List<RecipeActionGroup>
RecipeActionGroups
{
get;
set;
} // executes actions in groups. Action in a group are executed syncrhonously and depending if the previous action executes

public List<RecipeInvocation> RecipeInvocations { get; set; } // log
}
}
4 changes: 2 additions & 2 deletions BtcTransmuter.Data/Entities/RecipeActionGroup.cs
@@ -1,10 +1,10 @@
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;

namespace BtcTransmuter.Data.Entities
{
public class RecipeActionGroup
public class RecipeActionGroup : BaseIdEntity
{
public string Id { get; set; }
public string RecipeId { get; set; }

public Recipe Recipe { get; set; }
Expand Down
3 changes: 1 addition & 2 deletions BtcTransmuter.Data/Entities/RecipeInvocation.cs
Expand Up @@ -3,9 +3,8 @@

namespace BtcTransmuter.Data.Entities
{
public class RecipeInvocation
public class RecipeInvocation: BaseIdEntity
{
public string Id { get; set; }
public string RecipeId { get; set; }

public string RecipeAction { get; set; }
Expand Down
@@ -1,15 +1,17 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>

<TargetFramework>netcoreapp3.1</TargetFramework>
<AddRazorSupportForMvc>true</AddRazorSupportForMvc>

<IsPackable>false</IsPackable>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Mvc.Testing" Version="2.2.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.1.0" />
<PackageReference Include="Moq" Version="4.10.1" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.Testing" Version="3.1.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.4.0" />
<PackageReference Include="Moq" Version="4.13.1" />
<PackageReference Include="xunit" Version="2.4.1" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.1" />
</ItemGroup>
Expand Down
@@ -1,7 +1,9 @@
<Project Sdk="Microsoft.NET.Sdk.Razor">
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>

<TargetFramework>netcoreapp3.1</TargetFramework>
<AddRazorSupportForMvc>true</AddRazorSupportForMvc>
</PropertyGroup>

<ItemGroup>
Expand All @@ -11,9 +13,9 @@
</ItemGroup>

<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Hosting.Abstractions" Version="2.2.0" />
<PackageReference Include="NBitcoin" Version="4.2.14" />
<PackageReference Include="NBitpayClient" Version="1.0.0.34" />
<PackageReference Include="Microsoft.Extensions.Hosting.Abstractions" Version="3.1.0" />
<PackageReference Include="NBitcoin" Version="5.0.13" />
<PackageReference Include="NBitpayClient" Version="1.0.0.37" />
</ItemGroup>

<ItemGroup>
Expand Down