Skip to content

Commit

Permalink
Add action workflows and update features
Browse files Browse the repository at this point in the history
- Add the BlockExplorer feature (thanks to City Chain).
- Add the WalletNotify feature (thanks to City Chain).
- Add action workflows to build and publish packages to NuGet.
  • Loading branch information
sondreb committed Apr 24, 2020
1 parent 28db8c5 commit 5d1b217
Show file tree
Hide file tree
Showing 24 changed files with 1,478 additions and 281 deletions.
137 changes: 137 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,137 @@
# Editor configuration, see http://editorconfig.org
root = true

# Suppress: EC112 EC114
[*]
end_of_line = crlf
indent_size = 3
charset = utf-8
indent_style = space
indent_size = 3
insert_final_newline = true
trim_trailing_whitespace = true

[*.xml]
indent_style = space

[*.md]
max_line_length = off
trim_trailing_whitespace = false

[*.cs]
dotnet_sort_system_directives_first = true
dotnet_style_coalesce_expression = true : error
dotnet_style_collection_initializer = true : suggestion
dotnet_style_explicit_tuple_names = true : error
dotnet_style_null_propagation = true : warning
dotnet_style_object_initializer = true : warning
dotnet_style_parentheses_in_arithmetic_binary_operators = never_if_unnecessary : silent
dotnet_style_parentheses_in_other_binary_operators = never_if_unnecessary : silent
dotnet_style_parentheses_in_other_operators = always_for_clarity : suggestion
dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity : suggestion
dotnet_style_prefer_auto_properties = true : suggestion
dotnet_style_prefer_conditional_expression_over_assignment = true
dotnet_style_prefer_conditional_expression_over_return = true
dotnet_style_prefer_inferred_anonymous_type_member_names = false : warning
dotnet_style_prefer_inferred_tuple_names = false : warning
dotnet_style_prefer_is_null_check_over_reference_equality_method = true : warning
dotnet_style_qualification_for_event = false : error
dotnet_style_qualification_for_field = false : error
dotnet_style_qualification_for_method = false : error
dotnet_style_qualification_for_property = false : error
dotnet_style_readonly_field = true : error
dotnet_style_require_accessibility_modifiers = never : silent

csharp_indent_case_contents = true
csharp_indent_case_contents_when_block = true
csharp_indent_switch_labels = true
csharp_new_line_before_catch = true
csharp_new_line_before_else = true
csharp_new_line_before_finally = true
csharp_new_line_before_members_in_anonymous_types = true
csharp_new_line_before_members_in_object_initializers = true
csharp_new_line_before_open_brace = all
csharp_new_line_between_query_expression_clauses = true
csharp_preferred_modifier_order = public,private,protected,internal,static,extern,new,virtual,abstract,sealed,override,readonly,unsafe,volatile,async : error
csharp_prefer_braces = when_multiline : error
csharp_prefer_simple_default_expression = true : suggestion
csharp_preserve_single_line_blocks = true
csharp_preserve_single_line_statements = true
csharp_space_after_cast = false
csharp_space_after_colon_in_inheritance_clause = true
csharp_space_after_keywords_in_control_flow_statements = true
csharp_space_around_binary_operators = before_and_after
csharp_space_before_colon_in_inheritance_clause = true
csharp_space_between_method_call_empty_parameter_list_parentheses = false
csharp_space_between_method_call_name_and_opening_parenthesis = false
csharp_space_between_method_call_parameter_list_parentheses = false
csharp_space_between_parentheses = false

csharp_style_deconstructed_variable_declaration = true : suggestion
csharp_style_conditional_delegate_call = true : suggestion
csharp_style_expression_bodied_accessors = true : silent
csharp_style_expression_bodied_constructors = true : silent
csharp_style_expression_bodied_indexers = true : silent
csharp_style_expression_bodied_methods = true : silent
csharp_style_expression_bodied_operators = true : silent
csharp_style_expression_bodied_properties = true : silent
csharp_style_inlined_variable_declaration = true : error
csharp_style_pattern_local_over_anonymous_function = true : suggestion
csharp_style_pattern_matching_over_as_with_null_check = true : error
csharp_style_pattern_matching_over_is_with_cast_check = true : error
csharp_style_throw_expression = true : silent
csharp_style_var_elsewhere = false : error
csharp_style_var_for_built_in_types = false : error
csharp_style_var_when_type_is_apparent = true : suggestion



# CA1303: Do not pass literals as localized parameters
dotnet_diagnostic.CA1303.severity = silent

# CA1816: Dispose methods should call SuppressFinalize
dotnet_diagnostic.CA1816.severity = none

# CA1063: Implement IDisposable Correctly
dotnet_diagnostic.CA1063.severity = none

# CA2007: Consider calling ConfigureAwait on the awaited task
dotnet_diagnostic.CA2007.severity = error
# VSTHRD111: Consider calling ConfigureAwait on the awaited valuetask
dotnet_diagnostic.VSTHRD111.severity = error

# CA1051: Do not declare visible instance fields
dotnet_diagnostic.CA1051.severity = silent

# CA1707: Identifiers should not contain underscores
dotnet_diagnostic.CA1707.severity = none

# CA1031: Do not catch general exception types
dotnet_diagnostic.CA1031.severity = suggestion

# CA1001: Types that own disposable fields should be disposable
dotnet_diagnostic.CA1001.severity = suggestion

# CA1028: Enum Storage should be Int32
dotnet_diagnostic.CA1028.severity = suggestion

# CA1062: Validate arguments of public methods
dotnet_diagnostic.CA1062.severity = suggestion

# CA1308: Normalize strings to uppercase
dotnet_diagnostic.CA1308.severity = silent

# VSTHRD200: Use "Async" suffix for async methods
dotnet_diagnostic.VSTHRD200.severity = suggestion

# CA1812: DevControllerShard is an internal class that is apparently never instantiated. If so, remove the code from the assembly. If this class is intended to contain only static members, make it static (Shared in Visual Basic).
dotnet_diagnostic.CA1812.severity = none

# CA1819: Properties should not return arrays
dotnet_diagnostic.CA1819.severity = suggestion

# CA1040: Avoid empty interfaces
dotnet_diagnostic.CA1040.severity = suggestion

# CA1801: Review Unused Parameters
dotnet_diagnostic.CA1801.severity = suggestion
63 changes: 63 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
###############################################################################
# Set default behavior to automatically normalize line endings.
###############################################################################
* text=auto

###############################################################################
# Set default behavior for command prompt diff.
#
# This is need for earlier builds of msysgit that does not have it on by
# default for csharp files.
# Note: This is only used by command line
###############################################################################
#*.cs diff=csharp

###############################################################################
# Set the merge driver for project and solution files
#
# Merging from the command prompt will add diff markers to the files if there
# are conflicts (Merging from VS is not affected by the settings below, in VS
# the diff markers are never inserted). Diff markers may cause the following
# file extensions to fail to load in VS. An alternative would be to treat
# these files as binary and thus will always conflict and require user
# intervention with every merge. To do so, just uncomment the entries below
###############################################################################
#*.sln merge=binary
#*.csproj merge=binary
#*.vbproj merge=binary
#*.vcxproj merge=binary
#*.vcproj merge=binary
#*.dbproj merge=binary
#*.fsproj merge=binary
#*.lsproj merge=binary
#*.wixproj merge=binary
#*.modelproj merge=binary
#*.sqlproj merge=binary
#*.wwaproj merge=binary

###############################################################################
# behavior for image files
#
# image files are treated as binary by default.
###############################################################################
#*.jpg binary
#*.png binary
#*.gif binary

###############################################################################
# diff behavior for common document formats
#
# Convert binary document formats to text before diffing them. This feature
# is only available from the command line. Turn it on by uncommenting the
# entries below.
###############################################################################
#*.doc diff=astextplain
#*.DOC diff=astextplain
#*.docx diff=astextplain
#*.DOCX diff=astextplain
#*.dot diff=astextplain
#*.DOT diff=astextplain
#*.pdf diff=astextplain
#*.PDF diff=astextplain
#*.rtf diff=astextplain
#*.RTF diff=astextplain
60 changes: 60 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
name: Build

on:
push:
branches:
- master
repository_dispatch:
types: [build]

jobs:

buildAndUnitTest:

strategy:
matrix:
os: [ windows-latest, ubuntu-latest, macos-latest ]
fail-fast: false

runs-on: ${{ matrix.os }}

env:
SOLUTION_PATH: 'Blockcore.Features.sln'
BUILD_CONFIGURATION: 'Release'

steps:

- uses: actions/checkout@v1
name: Checkout

- name: Setup Node.js (12.x)
uses: actions/setup-node@v1
with:
node-version: 12.x

- name: Variables
run: |
echo "::set-env name=VERSION::$(npm run version --silent)"
- name: Setup .NET Core
uses: actions/setup-dotnet@v1
with:
dotnet-version: '3.1.101'

# - name: Unit Test
# run: dotnet test -v=normal --no-build --filter FullyQualifiedName!~IntegrationTests --configuration ${{env.BUILD_CONFIGURATION}} ${{env.SOLUTION_PATH}}

- name: Nuget Pack
run: dotnet pack --configuration ${{env.BUILD_CONFIGURATION}} --output "${{github.workspace}}/package/" ${{env.SOLUTION_PATH}}

- name: Release
if: matrix.os == 'ubuntu-latest'
uses: sondreb/action-release@master
with:
token: ${{ secrets.GITHUB_TOKEN }}
folder: "${{github.workspace}}/package/"
draft: true
prerelease: false
body: ''
name: "Blockcore ${{env.VERSION}}"
tag: ${{env.VERSION}}
46 changes: 46 additions & 0 deletions .github/workflows/pull-request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
name: Pull Request

on:
pull_request:
branches:
- master

jobs:

buildAndUnitTest:

strategy:
matrix:
os: [ windows-latest, ubuntu-latest, macos-latest ]
fail-fast: false

runs-on: ${{ matrix.os }}

env:
SOLUTION_PATH: 'Blockcore.Features.sln'
BUILD_CONFIGURATION: 'Release'

steps:

- uses: actions/checkout@v1
name: Checkout

- name: Setup Node.js (12.x)
uses: actions/setup-node@v1
with:
node-version: 12.x

- name: Variables
run: |
echo "::set-env name=VERSION::$(npm run version --silent)"
- name: Setup .NET Core
uses: actions/setup-dotnet@v1
with:
dotnet-version: '3.1.101'

# - name: Unit Test
# run: dotnet test -v=normal --no-build --filter FullyQualifiedName!~IntegrationTests --configuration ${{env.BUILD_CONFIGURATION}} ${{env.SOLUTION_PATH}}

- name: Nuget Pack
run: dotnet pack --configuration ${{env.BUILD_CONFIGURATION}} --output "${{github.workspace}}/package/" ${{env.SOLUTION_PATH}}
35 changes: 35 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
name: Publish Release Packages

on:
release:
types: [published]
repository_dispatch:
types: [publish-packages]

jobs:

publishPackages:

runs-on: windows-latest

env:
SOLUTION_PATH: 'Blockcore.Features.sln'
BUILD_CONFIGURATION: 'Release'

steps:

- uses: actions/checkout@v1

- name: Setup .NET Core
uses: actions/setup-dotnet@v1
with:
dotnet-version: '3.1.101'

- name: Setup NuGet
uses: NuGet/setup-nuget@v1.0.2

- name: Nuget Pack
run: dotnet pack --configuration ${{env.BUILD_CONFIGURATION}} --output "${{github.workspace}}\package\" ${{env.SOLUTION_PATH}}

- name: Nuget Push
run: nuget push ${{github.workspace}}\package\*.nupkg -ApiKey ${{secrets.NUGET_KEY}} -Source "https://api.nuget.org/v3/index.json" -SkipDuplicate -NoSymbols
Loading

0 comments on commit 5d1b217

Please sign in to comment.