Skip to content

Commit

Permalink
Add Code
Browse files Browse the repository at this point in the history
  • Loading branch information
robinmanuelthiel committed May 16, 2023
1 parent 85df7dc commit a371b6f
Show file tree
Hide file tree
Showing 41 changed files with 11,520 additions and 2 deletions.
28 changes: 28 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# General files and folders to be ignored everywhere
**/.git
**/.DS_Store
*.md
**/docs
**/demo
**/.vscode

# Enviroment folder only to be ignored in the root of the project
# On root level, this folder contains Terraform and other files. Within a project, this folder can contain important
# files like stage and version information that should not be ignored.
/env

# Docker
**/Dockerfile
**/.dockerignore

# .NET Core
**/bin
**/obj
**/*.Development.json

# Azure Functions
**/local.settings.json

# JavaScript
**/node_modules
**/dist
60 changes: 60 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
################################
# EditorConfig is awesome #
# See: http://EditorConfig.org #
################################

# This file is the top-most EditorConfig file
root = true

# All files
[*]
indent_style = space
indent_size = 2
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true

# Define style of doc comments for indentation checks
block_comment_start = /*
block_comment = *
block_comment_end = */

# Exception for .provisionprofile files
[*.provisionprofile]
trim_trailing_whitespace = false
insert_final_newline = false

# Exception for .provisionprofile files
[*.p12]
trim_trailing_whitespace = false
insert_final_newline = false

# Exception for .sln files as they reformat themselves
[*.sln]
charset = utf-8-bom

[*.cs]
indent_size = 4

# ReSharper
resharper_braces_for_foreach = required
resharper_braces_for_ifelse = required
resharper_blank_lines_before_single_line_comment = 1
resharper_place_constructor_initializer_on_same_line = false
resharper_csharp_wrap_after_invocation_lpar = true
resharper_csharp_wrap_arguments_style = wrap_if_long
csharp_space_after_cast = false
resharper_space_within_single_line_array_initializer_braces = true
resharper_csharp_space_within_single_line_array_initializer_braces = true
resharper_max_attribute_length_for_same_line = 1
resharper_mvc_action_not_resolved_highlighting = none

# Ignore generated SDKs code
[src/sdk/**]
indent_style = unset
indent_size = unset
end_of_line = unset
charset = unset
trim_trailing_whitespace = unset
insert_final_newline = unset
30 changes: 30 additions & 0 deletions .github/actions/dotnet/action.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: "Build .NET"
description: "Build .NET"
inputs:
wemogy-packages-token:
description: "The token to use to authenticate with the wemogy-packages service"
required: true
version:
description: "The version of the build"
required: true
configuration:
description: "The Build Configuration"
required: true
default: "Release"
runs:
using: "composite"
steps:
- uses: actions/setup-dotnet@v1
with:
dotnet-version: 6.0.x
source-url: https://nuget.pkg.github.com/wemogy/index.json
env:
NUGET_AUTH_TOKEN: ${{ inputs.wemogy-packages-token }}
- name: Restore dependencies
working-directory: src
shell: bash
run: dotnet restore
- name: Build
working-directory: src
shell: bash
run: dotnet build --configuration ${{ inputs.configuration }} --no-restore
32 changes: 32 additions & 0 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: Build

on:
pull_request:
branches:
- main

jobs:
build-lib:
name: Build Library
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Build .NET
uses: ./.github/actions/dotnet
with:
wemogy-packages-token: ${{ secrets.WEMOGY_PACKAGES_TOKEN }}
version: ${{ steps.release-version.outputs.next-version }}${{ github.event.inputs.version && 'pre' || '' }}

build-docs:
name: Build Documentation
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Use Node.js
uses: actions/setup-node@v2
with:
node-version: "16.x"
- run: yarn install
working-directory: docs/public
- run: yarn build
working-directory: docs/public
69 changes: 69 additions & 0 deletions .github/workflows/release.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
name: Release

on:
workflow_dispatch:
inputs:
pre-release:
description: Genereates a Pre-Release when checked
type: boolean
required: false
default: "false"
push:
branches:
- release/**

jobs:
release:
name: Release
runs-on: ubuntu-latest
steps:
- name: Get version for next release
if: ${{ github.event.inputs.version == '' }}
uses: wemogy/next-version-action@2.0.3
id: release-version
with:
token: ${{ secrets.GITHUB_TOKEN }}

- uses: actions/checkout@v2

# Nuget
- name: Build .NET
uses: ./.github/actions/dotnet
with:
wemogy-packages-token: ${{ secrets.WEMOGY_PACKAGES_TOKEN }}
version: ${{ steps.release-version.outputs.next-version }}${{ github.event.inputs.version && 'pre' || '' }}
- name: Create Nuget package(s)
run: dotnet pack --no-build --configuration Release /p:VersionPrefix=${{ steps.release-version.outputs.next-version }}${{ github.event.inputs.version && 'pre' || '' }}
working-directory: src
- name: Publish Nuget package(s)
run: dotnet nuget push **/**/*.nupkg --skip-duplicate --source https://api.nuget.org/v3/index.json --api-key ${{ secrets.PUBLIC_NUGET_TOKEN }}
working-directory: src

# Update Documentation
- name: Use Node.js
uses: actions/setup-node@v2
with:
node-version: "16.x"
- run: yarn install
working-directory: docs/public
- run: yarn build
working-directory: docs/public
- run: |
git config --global user.name $GITHUB_ACTOR
git config --global user.email $GITHUB_ACTOR@users.noreply.github.com
yarn deploy --skip-build
working-directory: docs/public
env:
GIT_USER: $GITHUB_ACTOR
GIT_PASS: ${{ secrets.GITHUB_TOKEN }}
# GitHub
- name: Create GitHub Release
uses: softprops/action-gh-release@v1
with:
name: Version ${{ steps.release-version.outputs.next-version }}${{ github.event.inputs.version && 'pre' || '' }}
tag_name: ${{ steps.release-version.outputs.next-version-name }}${{ github.event.inputs.version && 'pre' || '' }}
prerelease: ${{ github.event.inputs.pre-release || false }}
generate_release_notes: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
19 changes: 19 additions & 0 deletions .github/workflows/style.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
name: Check Coding Style
on:
workflow_dispatch:
pull_request:
branches:
- main

jobs:
check-coding-syle:
name: Check Coding Style
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2

# Check EditorConfig
- name: Install eclint
run: sudo npm install -g eclint
- name: Check EditorConfig style
run: eclint check $(git ls-files)
41 changes: 41 additions & 0 deletions .github/workflows/test.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
name: Tests

on:
workflow_dispatch:
pull_request:
branches:
- main

jobs:
tests:
name: Tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2

# .NET Tests
- name: Build .NET
uses: ./.github/actions/dotnet
with:
wemogy-packages-token: ${{ secrets.WEMOGY_PACKAGES_TOKEN }}
version: ${{ steps.release-version.outputs.next-version }}${{ github.event.inputs.version && 'pre' || '' }}

- name: Test .NET Solution
working-directory: src
shell: bash
run: dotnet test -c Release /p:CollectCoverage=true -m:1

- name: Code Coverage Summary Report
uses: irongut/CodeCoverageSummary@v1.0.2
with:
filename: src/coverage.cobertura.xml
badge: true
format: 'markdown'
output: 'both'

- name: Add Coverage PR Comment
uses: marocchino/sticky-pull-request-comment@v2.5.0
if: github.event_name == 'pull_request'
with:
recreate: true
path: code-coverage-results.md
61 changes: 61 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
# dependencies
node_modules/
.pnp
.pnp.js

# testing
coverage*
coverage

# production
build
dist

# misc
.DS_Store
.env.local
.env.development.local
.env.test.local
.env.production.local

# logs
npm-debug.log*
yarn-debug.log*
yarn-error.log*

# visual studio
.vs

# jetbrains
.idea/
*.user

# helm
*.tgz

# .NET
bin/
obj/
nuget.config

# Terraform
.terraform/
terraform.tfstate.d/
*.tfstate
*.tfstate.*

# Git Guardian
.cache_ggshield

# Secrets
.cert
secrets.json
.env

# Yalc
.yalc
yalc.lock

# Generated files
.docusaurus
.cache-loader
12 changes: 12 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
node_modules/
dist/
bin/
obj/
out/

*.yaml
*.yml
*.md

# Ignore generated SDKs
src/sdk/
5 changes: 5 additions & 0 deletions .prettierrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
printWidth: 120
singleQuote: true
htmlWhitespaceSensitivity: "ignore"
trailingComma: "none"
arrowParens: "avoid"
3 changes: 3 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"cSpell.words": ["CQRS", "dapr", "Dapr", "dtos", "Dtos", "wemogy", "Xunit"]
}
15 changes: 13 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,13 @@
# libs-configuration
.NET Configuration Helpers
# ![wemogy logo](https://wemogyimages.blob.core.windows.net/logos/wemogy-github-tiny.png) .NET Configuration Library

Library for .NET Configuration

## Getting started

Install the [NuGet package](https://www.nuget.org/packages/Wemogy.Configuration) into your project.

```bash
dotnet add package Wemogy.Configuration
```

Checkout the [Documentation](https://libs-configuration.docs.wemogy.com/) to get information about the available classes and extensions.
Loading

0 comments on commit a371b6f

Please sign in to comment.