From a48c8627e88898ad3a960148557ef7834f52d9b4 Mon Sep 17 00:00:00 2001
From: Calvin Wilkinson <85414302+CalvinWilkinson@users.noreply.github.com>
Date: Fri, 21 Jul 2023 16:39:29 +0100
Subject: [PATCH] =?UTF-8?q?=F0=9F=9A=A7Project=20and=20ci=20improvements?=
=?UTF-8?q?=20(#112)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* Start work for issue #111
* ci: rename workflows
* ci: improve workflows
* ide: simple ide improvements
* docs: move images folder
* docs: move release notes
* ide: update tab settings
* ci: update workflow command syntax & update reusable workflow versions
---
.../workflows/add-new-issue-to-project.yml | 2 +-
...tatus-check.yml => build-status-check.yml} | 21 +++--
.github/workflows/prepare-release.yml | 81 ++++++++++++++++++
.github/workflows/prev-release.yml | 31 -------
.github/workflows/release.yml | 47 ++++++++++
.../workflows/sonar-scan-pr-status-check.yml | 10 ++-
.github/workflows/sync-bot.yml | 17 ++--
.github/workflows/sync-issue-to-pr.yml | 20 ++---
.github/workflows/sync-status-check.yml | 12 +--
...status-check.yml => test-status-check.yml} | 24 ++++--
.vscode/settings.json | 10 +--
.vscode/workflow.code-snippets | 49 +++++++++++
Carbonate.sln | 7 +-
Carbonate/Carbonate.csproj | 2 +-
.../Preview-Release-Notes-TEMPLATE.md | 36 --------
.../Production-Release-Notes-TEMPLATE.md | 27 ------
.../carbonate-logo-dark-mode.png | Bin
.../carbonate-logo-light-mode.png | Bin
README.md | 11 +--
.../Release-Notes-v1.0.0-preview.1.md | 0
.../Release-Notes-v1.0.0-preview.10.md | 0
.../Release-Notes-v1.0.0-preview.11.md | 0
.../Release-Notes-v1.0.0-preview.12.md | 0
.../Release-Notes-v1.0.0-preview.13.md | 0
.../Release-Notes-v1.0.0-preview.14.md | 0
.../Release-Notes-v1.0.0-preview.2.md | 0
.../Release-Notes-v1.0.0-preview.3.md | 0
.../Release-Notes-v1.0.0-preview.4.md | 0
.../Release-Notes-v1.0.0-preview.5.md | 0
.../Release-Notes-v1.0.0-preview.6.md | 0
.../Release-Notes-v1.0.0-preview.7.md | 0
.../Release-Notes-v1.0.0-preview.8.md | 0
.../Release-Notes-v1.0.0-preview.9.md | 0
renovate.json | 2 +-
34 files changed, 258 insertions(+), 151 deletions(-)
rename .github/workflows/{build-pr-status-check.yml => build-status-check.yml} (58%)
create mode 100644 .github/workflows/prepare-release.yml
delete mode 100644 .github/workflows/prev-release.yml
create mode 100644 .github/workflows/release.yml
rename .github/workflows/{testing-pr-status-check.yml => test-status-check.yml} (50%)
create mode 100644 .vscode/workflow.code-snippets
delete mode 100644 Documentation/ReleaseNotes/Preview-Release-Notes-TEMPLATE.md
delete mode 100644 Documentation/ReleaseNotes/Production-Release-Notes-TEMPLATE.md
rename {Documentation/Images => Images}/carbonate-logo-dark-mode.png (100%)
rename {Documentation/Images => Images}/carbonate-logo-light-mode.png (100%)
rename {Documentation/ReleaseNotes => ReleaseNotes}/PreviewReleases/Release-Notes-v1.0.0-preview.1.md (100%)
rename {Documentation/ReleaseNotes => ReleaseNotes}/PreviewReleases/Release-Notes-v1.0.0-preview.10.md (100%)
rename {Documentation/ReleaseNotes => ReleaseNotes}/PreviewReleases/Release-Notes-v1.0.0-preview.11.md (100%)
rename {Documentation/ReleaseNotes => ReleaseNotes}/PreviewReleases/Release-Notes-v1.0.0-preview.12.md (100%)
rename {Documentation/ReleaseNotes => ReleaseNotes}/PreviewReleases/Release-Notes-v1.0.0-preview.13.md (100%)
rename {Documentation/ReleaseNotes => ReleaseNotes}/PreviewReleases/Release-Notes-v1.0.0-preview.14.md (100%)
rename {Documentation/ReleaseNotes => ReleaseNotes}/PreviewReleases/Release-Notes-v1.0.0-preview.2.md (100%)
rename {Documentation/ReleaseNotes => ReleaseNotes}/PreviewReleases/Release-Notes-v1.0.0-preview.3.md (100%)
rename {Documentation/ReleaseNotes => ReleaseNotes}/PreviewReleases/Release-Notes-v1.0.0-preview.4.md (100%)
rename {Documentation/ReleaseNotes => ReleaseNotes}/PreviewReleases/Release-Notes-v1.0.0-preview.5.md (100%)
rename {Documentation/ReleaseNotes => ReleaseNotes}/PreviewReleases/Release-Notes-v1.0.0-preview.6.md (100%)
rename {Documentation/ReleaseNotes => ReleaseNotes}/PreviewReleases/Release-Notes-v1.0.0-preview.7.md (100%)
rename {Documentation/ReleaseNotes => ReleaseNotes}/PreviewReleases/Release-Notes-v1.0.0-preview.8.md (100%)
rename {Documentation/ReleaseNotes => ReleaseNotes}/PreviewReleases/Release-Notes-v1.0.0-preview.9.md (100%)
diff --git a/.github/workflows/add-new-issue-to-project.yml b/.github/workflows/add-new-issue-to-project.yml
index 59adce2..505762a 100644
--- a/.github/workflows/add-new-issue-to-project.yml
+++ b/.github/workflows/add-new-issue-to-project.yml
@@ -9,7 +9,7 @@ on:
jobs:
add_new_issue_to_project:
name: Add New Issue
- uses: KinsonDigital/Infrastructure/.github/workflows/add-issue-to-project.yml@v9.1.0
+ uses: KinsonDigital/Infrastructure/.github/workflows/add-issue-to-project.yml@v10.0.1
with:
org-name: "${{ vars.ORGANIZATION_NAME }}"
org-project-name: "${{ vars.ORG_PROJECT_NAME }}"
diff --git a/.github/workflows/build-pr-status-check.yml b/.github/workflows/build-status-check.yml
similarity index 58%
rename from .github/workflows/build-pr-status-check.yml
rename to .github/workflows/build-status-check.yml
index 17e8a4f..be0d8df 100644
--- a/.github/workflows/build-pr-status-check.yml
+++ b/.github/workflows/build-status-check.yml
@@ -1,5 +1,5 @@
name: ✅Build Status Check
-run-name: ✅Build Status Check ${{ github.base_ref == 'main' && '(Release Build)' || '(Debug Build)' }}
+run-name: ✅Build Status Check (${{ github.base_ref }} branch)
defaults:
@@ -8,15 +8,14 @@ defaults:
on:
- workflow_dispatch:
pull_request:
branches: [main, preview]
jobs:
main_build_status_check:
- name: ${{ vars.PROJECT_NAME }} Build Status Check
- uses: KinsonDigital/Infrastructure/.github/workflows/build-csharp-project.yml@v9.1.0
+ name: Build ${{ vars.PROJECT_NAME }}
+ uses: KinsonDigital/Infrastructure/.github/workflows/build-csharp-project.yml@v10.0.1
with:
project-name: "${{ vars.PROJECT_NAME }}"
build-config: Debug
@@ -24,9 +23,19 @@ jobs:
perf_build_status_check:
- name: ${{ vars.PROJECT_NAME }} Perf Tests Build Status Check
- uses: KinsonDigital/Infrastructure/.github/workflows/build-csharp-project.yml@v9.1.0
+ name: Build ${{ vars.PROJECT_NAME }}PerfTests
+ uses: KinsonDigital/Infrastructure/.github/workflows/build-csharp-project.yml@v10.0.1
with:
project-name: "${{ vars.PROJECT_NAME }}PerfTests"
build-config: Debug
net-sdk-version: "${{ vars.NET_SDK_VERSION }}"
+
+
+ build_status_check:
+ name: ${{ vars.PROJECT_NAME }} Build Status Check
+ needs: [main_build_status_check, perf_build_status_check]
+ runs-on: ubuntu-latest
+ steps:
+ - name: Print Status Check Pass Message
+ shell: pwsh
+ run: Write-Host "::notice::✅Test Status Check Passed✅";
diff --git a/.github/workflows/prepare-release.yml b/.github/workflows/prepare-release.yml
new file mode 100644
index 0000000..89876a5
--- /dev/null
+++ b/.github/workflows/prepare-release.yml
@@ -0,0 +1,81 @@
+name: 🚁Prepare Release
+
+
+defaults:
+ run:
+ shell: pwsh
+
+
+on:
+ workflow_dispatch:
+ inputs:
+ release-type:
+ description: The type of release. Choose 'Preview' or 'Production'.
+ required: true
+ type: choice
+ options: [Preview, Production]
+ release-version:
+ required: true
+ description: The version of the release to prepare.
+ type: string
+
+
+jobs:
+ print_validate_workflow:
+ name: Ptin & Validate Prepare Release Workflow
+ runs-on: ubuntu-latest
+ steps:
+ - name: Print Environment Variables
+ run: Get-ChildItem -Path Env:* | Sort-Object Name
+
+ - name: Validate Workflow Inputs
+ run: |
+ $releaseType = "${{ inputs.release-type }}".ToLower();
+
+ if (""${{ vars.PROJECT_NAME }}".Trim().ToLower() -eq "") {
+ Write-Host "::error::The 'PROJECT_NAME' org or repo variable be empty.";
+ exit 1;
+ }
+
+
+ if ($releaseType -eq "") {
+ Write-Host "::error::The 'release-type' workflow input cannot be empty.";
+ exit 1;
+ }
+
+
+ if ($releaseType -ne 'preview' -and $releaseType -ne 'roduction') {
+ Write-Host "::error::The release type input must be either 'Preview' or 'Production'.";
+ exit 1;
+ }
+
+ $releaseVersion = "${{ inputs.release-version }}".Trim().ToLower();
+
+ if ($releaseVersion -eq "") {
+ Write-Host "::error::The release version input cannot be empty.";
+ exit 1;
+ }
+
+
+ $prodVersionRegex = "v[0-9]+\.[0-9]+\.[0-9]+";
+ $prevVersionRegex = "v[0-9]+\.[0-9]+\.[0-9]+-preview\.[0-9]+";
+
+ # Verify that the version has valid syntax
+ if (($releaseVersion -match $prodVersionRegex) -or ($releaseVersion -match $prevVersionRegex)) {
+ Write-Host "::notice::The 'release-version' workflow input is valid.";
+ } else {
+ $versionSyntax = $releaseType == "production" ? "v#.#.#" : "v#.#.#-preview.#";
+ Write-Host "::error::The 'release-version' workflow input is not valid. Expected format: '$versionSyntax";
+ exit 1;
+ }
+
+
+ prepare_release:
+ name: Prepare ${{ inputs.release-type }} Release Of ${{ vars.PROJECT_NAME }}
+ uses: KinsonDigital/Infrastructure/.github/workflows/prepare-release.yml@v10.0.1
+ with:
+ project-name: ${{ vars.PROJECT_NAME }}
+ release-type: ${{ inputs.release-type }}
+ release-version: ${{ inputs.release-version }}
+ secrets:
+ cicd-pat: ${{ secrets.CICD_TOKEN }}
diff --git a/.github/workflows/prev-release.yml b/.github/workflows/prev-release.yml
deleted file mode 100644
index 8c58a66..0000000
--- a/.github/workflows/prev-release.yml
+++ /dev/null
@@ -1,31 +0,0 @@
-name: 🚀Preview Release
-
-
-defaults:
- run:
- shell: pwsh
-
-
-on:
- workflow_dispatch:
-
-
-jobs:
- preview_release:
- name: Preview Release
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v3
-
- - name: Restore DotNet Tools
- run: dotnet tool restore
-
- - name: Run Preview Release
- run: dotnet cicd PreviewRelease --skip-twitter-announcement
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- NugetOrgApiKey: ${{ secrets.NUGET_ORG_API_KEY }}
- TwitterConsumerApiKey: ${{ secrets.TWITTER_CONSUMER_API_KEY }}
- TwitterConsumerApiSecret: ${{ secrets.TWITTER_CONSUMER_API_SECRET }}
- TwitterAccessToken: ${{ secrets.TWITTER_ACCESS_TOKEN }}
- TwitterAccessTokenSecret: ${{ secrets.TWITTER_ACCESS_TOKEN_SECRET }}
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
new file mode 100644
index 0000000..1b0fdd5
--- /dev/null
+++ b/.github/workflows/release.yml
@@ -0,0 +1,47 @@
+name: 🚀Release
+run-name: ${{ vars.PROJECT_NAME }} ${{ inputs.release-type }} Release ${{ inputs.dry-run == true && '(Dry Run)' || '' }}
+
+
+defaults:
+ run:
+ shell: pwsh
+
+
+on:
+ workflow_dispatch:
+ inputs:
+ release-type:
+ description: The type of release. Choose 'Preview' or 'Production'.
+ required: true
+ type: choice
+ options: [Preview, Production]
+ dry-run:
+ description: Check to run the workflow without creating a release.
+ required: false
+ default: false
+ type: boolean
+
+
+jobs:
+ run_release:
+ name: Performing ${{ inputs.release-type }} Release of ${{ vars.PROJECT_NAME }} (${{ inputs.release-type == 'Production' && 'Release' || 'Debug' }})
+ uses: KinsonDigital/Infrastructure/.github/workflows/dotnet-lib-release.yml@v10.0.1
+ with:
+ project-name: "${{ vars.PROJECT_NAME}}"
+ release-type: "${{ inputs.release-type }}"
+ run-branch: "${{ github.ref_name }}"
+ net-sdk-version: "${{ vars.NET_SDK_VERSION }}"
+ relative-release-notes-dir-path: "${{ vars.RELATIVE_RELEASE_NOTES_DIR_PATH }}"
+ release-notes-file-name-prefix: "${{ vars.RELEASE_NOTES_FILE_NAME_PREFIX }}"
+ build-config: ${{ inputs.release-type == 'Production' && 'Release' || 'Debug' }}
+ pr-include-notes-label: "${{ vars.PR_INCLUDE_NOTES_LABEL }}"
+ send-release-tweet: ${{ vars.TWITTER_BROADCAST_ENABLED == 'true' }}
+ dry-run: ${{ inputs.dry-run }}
+ transpile-readme: true
+ secrets:
+ cicd-pat: "${{ secrets.CICD_TOKEN }}"
+ nuget-org-api-key: "${{ secrets.NUGET_ORG_API_KEY }}"
+ twitter-consumer-api-key: "${{ secrets.TWITTER_CONSUMER_API_KEY }}"
+ twitter-consumer-api-secret: "${{ secrets.TWITTER_CONSUMER_API_SECRET }}"
+ twitter-access-token: "${{ secrets.TWITTER_ACCESS_TOKEN }}"
+ twitter-access-token-secret: "${{ secrets.TWITTER_ACCESS_TOKEN_SECRET }}"
diff --git a/.github/workflows/sonar-scan-pr-status-check.yml b/.github/workflows/sonar-scan-pr-status-check.yml
index 3368f6d..26a8172 100644
--- a/.github/workflows/sonar-scan-pr-status-check.yml
+++ b/.github/workflows/sonar-scan-pr-status-check.yml
@@ -58,9 +58,11 @@ jobs:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
run: |
- ./.sonar/scanner/dotnet-sonarscanner begin /k:"KinsonDigital_Carbonate" /o:"kinsondigital" /d:sonar.login="${{ secrets.SONAR_TOKEN }}" /d:sonar.host.url="https://sonarcloud.io"
+ $orgNameLower = "${{ vars.ORGANIZATION_NAME }}".ToLower();
- dotnet clean "${{ github.workspace }}/Carbonate/Carbonate.csproj";
- dotnet build "${{ github.workspace }}/Carbonate/Carbonate.csproj" -c Debug;
+ ./.sonar/scanner/dotnet-sonarscanner begin -k:"${{ vars.ORGANIZATION_NAME }}_${{ vars.PROJECT_NAME }}" -o:"$orgNameLower" -d:sonar.login="${{ secrets.SONAR_TOKEN }}" -d:sonar.host.url="https://sonarcloud.io"
- ./.sonar/scanner/dotnet-sonarscanner end /d:sonar.login="${{ secrets.SONAR_TOKEN }}"
+ dotnet clean "${{ github.workspace }}/${{ vars.PROJECT_NAME }}/${{ vars.PROJECT_NAME }}.csproj";
+ dotnet build "${{ github.workspace }}/${{ vars.PROJECT_NAME }}/${{ vars.PROJECT_NAME }}.csproj" -c Debug;
+
+ ./.sonar/scanner/dotnet-sonarscanner end -d:sonar.login="${{ secrets.SONAR_TOKEN }}"
diff --git a/.github/workflows/sync-bot.yml b/.github/workflows/sync-bot.yml
index 760d998..e95e0b9 100644
--- a/.github/workflows/sync-bot.yml
+++ b/.github/workflows/sync-bot.yml
@@ -13,16 +13,18 @@ on:
jobs:
sync_bot:
- name: Sync Bot
+ name: Sync Bot Status Check
if: ${{ !github.event.issue.pull_request }}
runs-on: ubuntu-latest
steps:
- name: Set Up Deno
+ if: startsWith(github.ref_name, 'feature/')
uses: denoland/setup-deno@v1
with:
deno-version: v1.x
- name: Run Sync Bot (Issue Change)
+ if: startsWith(github.ref_name, 'feature/')
run: |
$scriptUrl = "${{ vars.SCRIPT_BASE_URL }}/${{ vars.CICD_SCRIPTS_VERSION }}/${{ vars.SCRIPT_RELATIVE_DIR_PATH}}/sync-bot-status-check.ts";
@@ -32,15 +34,16 @@ jobs:
Write-Host "::notice::Issue: $issueNumber";
if ($manuallyExecuted -and $issueNumber -eq "0") {
- Write-Host "::error::The issue or PR number must be a value greater than 0.";
+ Write-Host "::notice::The issue or PR number must be a value greater than 0.";
exit 1;
}
<# Deno Args:
- 1. Project name
- 2. Issue number
- 3. Event type - set to issue event type
- 4. PAT
+ 1. Organization name
+ 2. Project name
+ 3. Issue number
+ 4. Event Type - set to issue event type
+ 5. PAT
#>
deno run `
--allow-net `
@@ -48,4 +51,4 @@ jobs:
"${{ vars.PROJECT_NAME }}" `
"$issueNumber" `
"issue" `
- "cicd-pat: ${{ secrets.CICD_TOKEN }}";
+ "${{ secrets.CICD_TOKEN }}";
diff --git a/.github/workflows/sync-issue-to-pr.yml b/.github/workflows/sync-issue-to-pr.yml
index eaa148f..dc2ace5 100644
--- a/.github/workflows/sync-issue-to-pr.yml
+++ b/.github/workflows/sync-issue-to-pr.yml
@@ -17,7 +17,7 @@ jobs:
sync_issue_to_pr:
name: Start Sync Process
if: |
- github.event_name == 'issue_comment' ||
+ (github.event_name == 'issue_comment' && contains(github.event.comment.body, '[run-sync]')) ||
github.event_name == 'pull_request' && startsWith(github.head_ref, 'feature/')
runs-on: ubuntu-latest
steps:
@@ -30,23 +30,20 @@ jobs:
run: |
$eventName = "${{ github.event_name }}";
$scriptUrl = "${{ vars.SCRIPT_BASE_URL }}/${{ vars.CICD_SCRIPTS_VERSION }}/${{ vars.SCRIPT_RELATIVE_DIR_PATH }}/sync-issue-to-pr.ts";
- $prNumber = $eventName -eq "pull_request" ? "${{ github.event.number }}" : "${{ github.event.issue.number }}";
- $command = $eventName -eq "issue_comment" ? "${{ github.event.comment.body }}" : "[initial-sync]";
+ $issueOrPrNumber = $eventName -eq "pull_request" ? "${{ github.event.number }}" : "${{ github.event.issue.number }}";
- Write-Host "::notice::Event Name: $eventName";
+ Write-Host "::notice::Event Type: $eventName";
Write-Host "::notice::Organization Name: ${{ vars.ORGANIZATION_NAME }}";
Write-Host "::notice::Project Name: ${{ vars.PROJECT_NAME }}";
Write-Host "::notice::Requested By: ${{ github.event.sender.login }}";
- Write-Host "::notice::PR Number: $prNumber";
- Write-Host "::notice::Comment: $command";
+ Write-Host "::notice::PR Number: $issueOrPrNumber";
<# Deno Args:
1. Organization name
2. Project name
- 3. Login name of the user making the issue change
- 4. Pull request number
- 5. The sync command - Either '[initial-sync]' or '[run-sync]'
- 6. PAT
+ 3. Triggered by user
+ 4. Issue or pull request number
+ 5. PAT
#>
deno run `
--allow-net `
@@ -54,6 +51,5 @@ jobs:
"${{ vars.ORGANIZATION_NAME }}" `
"${{ vars.PROJECT_NAME }}" `
"${{ github.event.sender.login }}" `
- "$prNumber" `
- "$command" `
+ "$issueOrPrNumber" `
"${{ secrets.CICD_TOKEN }}";
diff --git a/.github/workflows/sync-status-check.yml b/.github/workflows/sync-status-check.yml
index ac452db..e1e85c7 100644
--- a/.github/workflows/sync-status-check.yml
+++ b/.github/workflows/sync-status-check.yml
@@ -32,19 +32,21 @@ jobs:
Write-Host "::notice::Event Type: pr";
if ($manuallyExecuted -and $prNumber -eq "0") {
- Write-Host "::error::The issue or PR number must be a value greater than 0.";
+ Write-Host "::notice::The issue or PR number must be a value greater than 0.";
exit 1;
}
<# Deno Args:
- 1. Project Name
- 2. Pull request number
- 3. Event Type - set to pull request event type
- 4. PAT
+ 1. Organization name
+ 2. Project name
+ 3. Pull request number
+ 4. Event Type - set to pull request event type
+ 5. PAT
#>
deno run `
--allow-net `
"$scriptUrl" `
+ "${{ vars.ORGANIZATION_NAME }}" `
"${{ vars.PROJECT_NAME }}" `
"$prNumber" `
"pr" `
diff --git a/.github/workflows/testing-pr-status-check.yml b/.github/workflows/test-status-check.yml
similarity index 50%
rename from .github/workflows/testing-pr-status-check.yml
rename to .github/workflows/test-status-check.yml
index 94d31f1..f080671 100644
--- a/.github/workflows/testing-pr-status-check.yml
+++ b/.github/workflows/test-status-check.yml
@@ -1,5 +1,5 @@
name: ✅Testing Status Check
-run-name: ✅Testing Status Check ${{ github.base_ref == 'main' && '(Release Build)' || '(Debug Build)' }}
+run-name: ✅Unit Testing Status Check (${{ github.base_ref }} branch)
defaults:
@@ -13,19 +13,29 @@ on:
jobs:
- run_unit_tests:
- name: ${{ vars.PROJECT_NAME }} Unit Tests Status Check
- uses: KinsonDigital/Infrastructure/.github/workflows/run-csharp-tests.yml@v9.1.0
+ main_tests:
+ name: Run ${{ vars.PROJECT_NAME }} Tests
+ uses: KinsonDigital/Infrastructure/.github/workflows/run-csharp-tests.yml@v10.0.1
with:
project-name: "${{ vars.PROJECT_NAME }}Tests"
build-config: Debug
net-sdk-version: "${{ vars.NET_SDK_VERSION }}"
- run_integration_tests:
- name: ${{ vars.PROJECT_NAME }} Integration Tests Status Check
- uses: KinsonDigital/Infrastructure/.github/workflows/run-csharp-tests.yml@v9.1.0
+ integration_tests:
+ name: Run ${{ vars.PROJECT_NAME }} Integration Tests
+ uses: KinsonDigital/Infrastructure/.github/workflows/run-csharp-tests.yml@v10.0.1
with:
project-name: "${{ vars.PROJECT_NAME }}IntegrationTests"
build-config: Debug
net-sdk-version: "${{ vars.NET_SDK_VERSION }}"
+
+
+ test_status_check:
+ name: ${{ vars.PROJECT_NAME }} Test Status Check
+ needs: [main_tests, integration_tests]
+ runs-on: ubuntu-latest
+ steps:
+ - name: Print Status Check Pass Message
+ shell: pwsh
+ run: Write-Host "::notice::✅Test Status Check Passed✅";
diff --git a/.vscode/settings.json b/.vscode/settings.json
index c900237..2323911 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -11,17 +11,17 @@
"unsubscriptions"
],
"dotnet.defaultSolution": "Carbonate.sln",
- "[typescript]": {
- "editor.insertSpaces": false,
- "editor.tabSize": 4,
+ "[csharp]": {
+ "editor.insertSpaces": true,
+ "editor.indentSize": 4,
},
"[yaml]": {
"editor.insertSpaces": true,
- "editor.tabSize": 2,
+ "editor.indentSize": 2,
},
"[jsonc]": {
"editor.insertSpaces": false,
- "editor.tabSize": 4,
+ "editor.indentSize": 4,
},
"editor.detectIndentation": false,
"[github-actions-workflow]": {
diff --git a/.vscode/workflow.code-snippets b/.vscode/workflow.code-snippets
new file mode 100644
index 0000000..a2dcf3f
--- /dev/null
+++ b/.vscode/workflow.code-snippets
@@ -0,0 +1,49 @@
+{
+ // Place your Release Notes workspace snippets here. Each snippet is defined under a snippet name and has a scope, prefix, body and
+ // description. Add comma separated ids of the languages where the snippet is applicable in the scope field. If scope
+ // is left empty or omitted, the snippet gets applied to all languages. The prefix is what is
+ // used to trigger the snippet and the body will be expanded and inserted. Possible variables are:
+ // $1, $2 for tab stops, $0 for the final cursor position, and ${1:label}, ${2:another} for placeholders.
+ // Placeholders with the same ids are connected.
+ // Example:
+ // "Print to console": {
+ // "scope": "javascript,typescript",
+ // "prefix": "log",
+ // "body": [
+ // "console.log('$1');",
+ // "$2"
+ // ],
+ // "description": "Log output to console"
+ // }
+
+ "Workflow Job": {
+ "prefix": "workflow-job",
+ "body": [
+ "${1: job id}:",
+ "\tname: ${2: display}",
+ "\truns-on: ${3|macos-10.15,macos-11,macos-12,macos-latest,self-hosted,ubuntu-18.04,ubuntu-20.04,ubuntu-22.04,ubuntu-latest,windows-2019,windows-2022,windows-latest|}",
+ "\tsteps:",
+ "\t\t- name: ${4: step name}",
+ "\t\t\trun: $5"
+ ],
+ "description": "Workflow Job"
+ },
+ "Set Up Deno Step": {
+ "prefix": "step-setup-deno",
+ "body": [
+ "- name: ${1:Set Up Deno}",
+ "\tuses: denoland/setup-deno@${2:v1}",
+ "\twith:",
+ "\t\tdeno-version: ${3:v1.x}",
+ ],
+ "description": "Installs deno"
+ },
+ "Checkout Repo": {
+ "prefix": "repo-checkout",
+ "body": [
+ "- name: ${1: Checkout Repo}",
+ "\tuses: actions/checkout@${2: v3}"
+ ],
+ "description": "Checks out the repository"
+ },
+}
diff --git a/Carbonate.sln b/Carbonate.sln
index 24cc5b1..20595ca 100644
--- a/Carbonate.sln
+++ b/Carbonate.sln
@@ -24,13 +24,14 @@ EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Workflows", "Workflows", "{8518113E-D0C3-4E63-8F2E-542EB6D1CCE9}"
ProjectSection(SolutionItems) = preProject
.github\workflows\add-new-issue-to-project.yml = .github\workflows\add-new-issue-to-project.yml
- .github\workflows\build-pr-status-check.yml = .github\workflows\build-pr-status-check.yml
- .github\workflows\prev-release.yml = .github\workflows\prev-release.yml
+ .github\workflows\build-status-check.yml = .github\workflows\build-status-check.yml
+ .github\workflows\prepare-release.yml = .github\workflows\prepare-release.yml
+ .github\workflows\release.yml = .github\workflows\release.yml
.github\workflows\sonar-scan-pr-status-check.yml = .github\workflows\sonar-scan-pr-status-check.yml
.github\workflows\sync-bot.yml = .github\workflows\sync-bot.yml
.github\workflows\sync-issue-to-pr.yml = .github\workflows\sync-issue-to-pr.yml
.github\workflows\sync-status-check.yml = .github\workflows\sync-status-check.yml
- .github\workflows\testing-pr-status-check.yml = .github\workflows\testing-pr-status-check.yml
+ .github\workflows\test-status-check.yml = .github\workflows\test-status-check.yml
EndProjectSection
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CarbonateIntegrationTests", "Testing\CarbonateIntegrationTests\CarbonateIntegrationTests.csproj", "{388E7191-CE3A-492C-9A19-AE67A659E466}"
diff --git a/Carbonate/Carbonate.csproj b/Carbonate/Carbonate.csproj
index 0d15109..5053cbd 100644
--- a/Carbonate/Carbonate.csproj
+++ b/Carbonate/Carbonate.csproj
@@ -47,7 +47,7 @@