From bca922c315493c99745de3e6026e652709d7f01c Mon Sep 17 00:00:00 2001 From: Kristen Wilkinson Date: Mon, 24 Jun 2024 17:53:38 +0100 Subject: [PATCH] config: add kdadmin --- create-pr.ps1 | 51 +--------------- dev-tools/bin/kd-admin | 3 + dev-tools/bin/kd-admin.cmd | 2 + dev-tools/create-pr-settings.json | 7 +++ dev-tools/prepare-release-settings.json | 38 ++++++++++++ .../prev-gen-release-notes-settings.json | 60 +++++++++++++++++++ .../prod-gen-release-notes-settings.json | 56 +++++++++++++++++ prepare-for-release.ps1 | 1 + templates/prev-prepare-release-template.md | 25 ++++++++ templates/prod-prepare-release-template.md | 25 ++++++++ 10 files changed, 218 insertions(+), 50 deletions(-) create mode 100644 dev-tools/bin/kd-admin create mode 100644 dev-tools/bin/kd-admin.cmd create mode 100644 dev-tools/create-pr-settings.json create mode 100644 dev-tools/prepare-release-settings.json create mode 100644 dev-tools/prev-gen-release-notes-settings.json create mode 100644 dev-tools/prod-gen-release-notes-settings.json create mode 100644 prepare-for-release.ps1 create mode 100644 templates/prev-prepare-release-template.md create mode 100644 templates/prod-prepare-release-template.md diff --git a/create-pr.ps1 b/create-pr.ps1 index d6a261f..6df9304 100644 --- a/create-pr.ps1 +++ b/create-pr.ps1 @@ -1,50 +1 @@ -Clear-Host; - -Write-Host -NoNewline "Please enter an issue number: " -ForegroundColor Cyan; -$issueNumber = Read-Host; - -if ($issueNumber -notmatch '^\d+$') { - Write-Error "User input is not a number"; - exit 1; -} - -Write-Host -NoNewline "Please enter a branch name: " -ForegroundColor Cyan; -$branchDescrip = Read-Host; - -$branchDescrip = $branchDescrip.ToLower(); -$branchDescrip = $branchDescrip.Replace(" ", "-").Replace("_", "-"); -$branchDescrip = $branchDescrip.TrimStart("-"); -$branchDescrip = $branchDescrip.TrimEnd("-"); - -$headBranch = "feature/$issueNumber-$branchDescrip"; -$commitMsg = "Start work for issue #$issueNumber"; - -$destBranch = "not-set"; - -$baseBranches = @("main", "preview"); -Write-Host -NoNewline "Please choose a base branch from the list [$($baseBranches -join ', ')]: " -ForegroundColor Cyan; -$chosenBaseBranch = Read-Host; - -if ($baseBranches -contains $chosenBaseBranch) { - $destBranch = $chosenBaseBranch; -} else { - Write-Error "Invalid base branch."; - exit 1; -} - -Write-Host "`n--------------------------------`n"; - -Write-Host "Creating branch. . ." -ForegroundColor Yellow; -git checkout -B "$headBranch"; -Write-Host ""; - -Write-Host "Creating empty commit. . ." -ForegroundColor Yellow; -git commit --allow-empty -m $commitMsg; -Write-Host ""; - -Write-Host "Pushing branch to remote. . ." -ForegroundColor Yellow; -git push --set-upstream origin "$headBranch"; -Write-Host ""; - -Write-Host "Creating PR. . ." -ForegroundColor Yellow; -gh pr create -B $destBranch -b "" -t "new pr" -d; +& "dev-tools/bin/kd-admin" create-pr; diff --git a/dev-tools/bin/kd-admin b/dev-tools/bin/kd-admin new file mode 100644 index 0000000..b873db2 --- /dev/null +++ b/dev-tools/bin/kd-admin @@ -0,0 +1,3 @@ +#!/bin/sh +# generated by deno install +deno "run" "--allow-read" "--allow-write" "--allow-net" "--allow-env" "--allow-run" "--no-config" "https://raw.githubusercontent.com/KinsonDigital/kd-admin/v1.0.0-preview.3/src/main.ts" "$@" diff --git a/dev-tools/bin/kd-admin.cmd b/dev-tools/bin/kd-admin.cmd new file mode 100644 index 0000000..8e3eaf4 --- /dev/null +++ b/dev-tools/bin/kd-admin.cmd @@ -0,0 +1,2 @@ +% generated by deno install % +@deno "run" "--allow-read" "--allow-write" "--allow-net" "--allow-env" "--allow-run" "--no-config" "https://raw.githubusercontent.com/KinsonDigital/kd-admin/v1.0.0-preview.3/src/main.ts" %* diff --git a/dev-tools/create-pr-settings.json b/dev-tools/create-pr-settings.json new file mode 100644 index 0000000..415fed1 --- /dev/null +++ b/dev-tools/create-pr-settings.json @@ -0,0 +1,7 @@ +{ + "$schema": "https://raw.githubusercontent.com/KinsonDigital/kd-admin/preview/schemas/create-pr-schema.json", + "ownerName": "KinsonDigital", + "repoName": "kd_clients", + "githubTokenEnvVarName": "CICD_TOKEN", + "baseBranches": [ "main", "preview"] +} diff --git a/dev-tools/prepare-release-settings.json b/dev-tools/prepare-release-settings.json new file mode 100644 index 0000000..959d0ae --- /dev/null +++ b/dev-tools/prepare-release-settings.json @@ -0,0 +1,38 @@ +{ + "$schema": "https://raw.githubusercontent.com/KinsonDigital/kd-admin/preview/schemas/prepare-release-schema.json", + "ownerName": "KinsonDigital", + "repoName": "kd_clients", + "orgProjectName": "KD-Team", + "releaseTypes": [ + { + "name": "Preview", + "reviewer": "KinsonDigitalAdmin", + "assignee": "CalvinWilkinson", + "headBranch": "prev-release", + "baseBranch": "preview", + "genReleaseSettingsFilePath": "./dev-tools/prev-gen-release-notes-settings.json", + "releaseNotesDirPath": "./ReleaseNotes", + "releasePrTemplateFilePath": "./templates/prev-prepare-release-template.md", + "releaseLabels": [ + "🚀preview-release" + ], + "prTitle": "🚀Preview Release (${VERSION})" + }, + { + "name": "Production", + "reviewer": "KinsonDigitalAdmin", + "assignee": "CalvinWilkinson", + "headBranch": "prod-release", + "baseBranch": "main", + "genReleaseSettingsFilePath": "./dev-tools/prod-gen-release-notes-settings.json", + "releaseNotesDirPath": "./release-notes", + "releasePrTemplateFilePath": "./templates/prod-prepare-release-template.md", + "releaseLabels": [ + "🚀production-release" + ], + "prTitle": "🚀Production Release (${VERSION})" + } + ], + "githubTokenEnvVarName": "CICD_TOKEN", + "versionFilePath": "./deno.json" +} diff --git a/dev-tools/prev-gen-release-notes-settings.json b/dev-tools/prev-gen-release-notes-settings.json new file mode 100644 index 0000000..c2b9aa0 --- /dev/null +++ b/dev-tools/prev-gen-release-notes-settings.json @@ -0,0 +1,60 @@ +{ + "$schema": "https://raw.githubusercontent.com/KinsonDigital/kd-admin/preview/schemas/gen-release-notes-schema.json", + "ownerName": "KinsonDigital", + "repoName": "kd_clients", + "githubTokenEnvVarName": "CICD_TOKEN", + "milestoneName": "${VERSION}", + "headerText": "${REPONAME} ${RELEASETYPE} Release Notes - ${VERSION}", + "releaseType": "Preview", + "extraInfo": { + "title": "Quick Reminder", + "text": "As with all software, there is always a chance for issues and bugs, especially for preview releases, so your input is greatly appreciated. 🙏🏼" + }, + "emojisToRemoveFromTitle": [ + "🚧", + "🐛", + "✨", + "🚀", + "🧪", + "🔬" + ], + "issueCategoryLabelMappings": { + "New Features ✨": "new-feature", + "Enhancements ✨": "enhancement", + "Bug Fixes 🐛": "bug", + "Breaking Changes 🧨": "🧨breaking-changes", + "Dependency Updates 📦": "📦dependency-update" + }, + "prCategoryLabelMappings": { + "Dependency Updates 📦": "📦dependency-update" + }, + "ignoreLabels": [ + "🚀preview-release" + ], + "wordReplacements": { + "chore(deps): ": "" + }, + "firstWordReplacements": { + "Add": "Added", + "Improve": "Improved", + "Fix": "Fixed", + "Update": "Updated", + "Upgrade": "Upgraded", + "Create": "Created", + "Refactor": "Refactored", + "Removed": "Removed", + "Implement": "Implemented", + "Move": "Moved", + "Change": "Changed", + "Increase": "Increased", + "Prevent": "Prevented", + "Introduce": "Introduced", + "Adjust": "Adjusted", + "Replace": "Replaced", + "Deprecate": "Deprecated", + "Integrate": "Integrated" + }, + "boldedVersions": true, + "italicVersions": true, + "otherCategoryName": "Other 🪧" +} diff --git a/dev-tools/prod-gen-release-notes-settings.json b/dev-tools/prod-gen-release-notes-settings.json new file mode 100644 index 0000000..6a536cf --- /dev/null +++ b/dev-tools/prod-gen-release-notes-settings.json @@ -0,0 +1,56 @@ +{ + "$schema": "https://raw.githubusercontent.com/KinsonDigital/kd-admin/preview/schemas/gen-release-notes-schema.json", + "ownerName": "KinsonDigital", + "repoName": "kd_clients", + "githubTokenEnvVarName": "CICD_TOKEN", + "milestoneName": "${VERSION}", + "headerText": "${REPONAME} ${RELEASETYPE} Release Notes - ${VERSION}", + "releaseType": "Production", + "emojisToRemoveFromTitle": [ + "🚧", + "🐛", + "✨", + "🚀", + "🧪", + "🔬" + ], + "issueCategoryLabelMappings": { + "New Features ✨": "new-feature", + "Enhancements ✨": "enhancement", + "Bug Fixes 🐛": "bug", + "Breaking Changes 🧨": "🧨breaking-changes", + "Dependency Updates 📦": "📦dependency-update" + }, + "prCategoryLabelMappings": { + "Dependency Updates 📦": "📦dependency-update" + }, + "ignoreLabels": [ + "🚀production-release" + ], + "wordReplacements": { + "chore(deps): ": "" + }, + "firstWordReplacements": { + "Add": "Added", + "Improve": "Improved", + "Fix": "Fixed", + "Update": "Updated", + "Upgrade": "Upgraded", + "Create": "Created", + "Refactor": "Refactored", + "Removed": "Removed", + "Implement": "Implemented", + "Move": "Moved", + "Change": "Changed", + "Increase": "Increased", + "Prevent": "Prevented", + "Introduce": "Introduced", + "Adjust": "Adjusted", + "Replace": "Replaced", + "Deprecate": "Deprecated", + "Integrate": "Integrated" + }, + "boldedVersions": true, + "italicVersions": true, + "otherCategoryName": "Other 🪧" +} diff --git a/prepare-for-release.ps1 b/prepare-for-release.ps1 new file mode 100644 index 0000000..dce1917 --- /dev/null +++ b/prepare-for-release.ps1 @@ -0,0 +1 @@ +& "dev-tools/bin/kd-admin" prepare-for-release; diff --git a/templates/prev-prepare-release-template.md b/templates/prev-prepare-release-template.md new file mode 100644 index 0000000..9a88d50 --- /dev/null +++ b/templates/prev-prepare-release-template.md @@ -0,0 +1,25 @@ +### Pre-Release ToDo List +```[tasklist] +- [ ] All issues in the assigned milestone are closed, and all issue tasks are complete. +- [ ] Add _**`🚀preview-release`**_ label to this pull request. +- [ ] The pull request is assigned to a project. +- [ ] The pull request is assigned to a milestone. +- [ ] All unit tests have been executed locally and have passed. _(Check out the appropriate release branch before running tests)_. +- [ ] Auto-generated release notes have been reviewed and updated if necessary. +- [ ] Manual QA Testing completed _(if applicable)_. +- [ ] Release to **_preview_** completed. _(The release is performed by running the `🚀Release` workflow)_. +``` + +### Post-Release ToDo List +```[tasklist] +- [ ] The GitHub release has been created and is correct. +``` + +### Additional Information: + +**_
Unit Tests_** + +Reasons for local unit test execution: +- Unit tests might pass locally but not in the CI environment during the status check process or vice-versa. +- Tests might pass on the developer's machine but not necessarily on the code reviewer's machine. +
diff --git a/templates/prod-prepare-release-template.md b/templates/prod-prepare-release-template.md new file mode 100644 index 0000000..047b593 --- /dev/null +++ b/templates/prod-prepare-release-template.md @@ -0,0 +1,25 @@ +### Pre-Release ToDo List +```[tasklist] +- [ ] All issues in the assigned milestone are closed, and all issue tasks are complete. +- [ ] Add _**`🚀production-release`**_ label to this pull request. +- [ ] The pull request is assigned to a project. +- [ ] The pull request is assigned to a milestone. +- [ ] All unit tests have been executed locally and have passed. _(Check out the appropriate release branch before running tests)_. +- [ ] Auto-generated release notes have been reviewed and updated if necessary. +- [ ] Manual QA Testing completed _(if applicable)_. +- [ ] Release to **_production_** completed. _(The release is performed by running the `🚀Release` workflow)_. +``` + +### Post-Release ToDo List +```[tasklist] +- [ ] The GitHub release has been created and is correct. +``` + +### Additional Information: + +**_
Unit Tests_** + +Reasons for local unit test execution: +- Unit tests might pass locally but not in the CI environment during the status check process or vice-versa. +- Tests might pass on the developer's machine but not necessarily on the code reviewer's machine. +