-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #4 from Avivbens/improve-implementation
improve implementation
- Loading branch information
Showing
18 changed files
with
7,492 additions
and
5,857 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
--- | ||
name: '☑️ Install deps' | ||
description: 'Install dependencies and setup node' | ||
|
||
runs: | ||
using: composite | ||
steps: | ||
- name: 🖥️ Setup Node | ||
uses: actions/setup-node@v4 | ||
with: | ||
node-version: 20 | ||
|
||
- name: 🔗 Install Dependencies | ||
shell: bash | ||
run: | | ||
npm ci --no-fund --no-audit --no-progress --ignore-scripts --force |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,98 @@ | ||
--- | ||
name: Semantic Release Report 📝 | ||
on: | ||
pull_request: | ||
branches: | ||
- master | ||
|
||
permissions: | ||
contents: write | ||
issues: write | ||
pull-requests: write | ||
|
||
jobs: | ||
PR-checks: | ||
# https://docs.github.com/en/actions/hosting-your-own-runners/managing-self-hosted-runners/using-self-hosted-runners-in-a-workflow | ||
runs-on: ubuntu-latest | ||
name: Semantic Release Report 📝 | ||
steps: | ||
- name: 📀 Checkout | ||
uses: actions/checkout@v4 | ||
with: | ||
fetch-depth: 0 | ||
|
||
- name: 🖥️ Setup Env | ||
uses: ./.github/workflows/install | ||
|
||
- name: 🔬 Check Semantic Versioning | ||
id: semantic-release | ||
run: | | ||
GITHUB_REF=${{ github.head_ref }} | ||
npx semantic-release --no-ci --dry-run --plugins @semantic-release/commit-analyzer,@semantic-release/release-notes-generator --branches ${{ github.head_ref }} > output.txt | ||
REPORT=$(cat output.txt | base64 -w 0) | ||
VERSION=$(cat output.txt | \ | ||
grep "The next release version is" | \ | ||
node -e "console.log(require('fs').readFileSync(0, 'utf-8').match(/The next release version is (\d+\.\d+\.\d+(-beta\.\d+)?)/)?.[1] ?? '')") | ||
echo "releaseNote=$REPORT" >> $GITHUB_OUTPUT | ||
echo "version=$VERSION" >> $GITHUB_OUTPUT | ||
- name: 📝 Report semantic versioning | ||
uses: actions/github-script@v7 | ||
if: ${{ steps.semantic-release.outputs.releaseNote != '' }} | ||
with: | ||
github-token: ${{ secrets.GITHUB_TOKEN }} | ||
script: | | ||
// build release note | ||
const semanticReleaseOutput = Buffer.from('${{ steps.semantic-release.outputs.releaseNote }}', 'base64').toString('utf8'); | ||
const semanticReleaseLogMatch = /^[[0-9:\sAMPM]+\]\s\[semantic-release\].*$/; | ||
const lines = semanticReleaseOutput.split('\n'); | ||
const lastSemanticReleaseLogIndex = [...lines] | ||
.reverse() | ||
.findIndex((line) => line.match(semanticReleaseLogMatch)); | ||
const nextVersion = '${{ steps.semantic-release.outputs.version }}'; | ||
const releaseNoteIndex = lines.length - lastSemanticReleaseLogIndex; | ||
const releaseNote = lines.slice(releaseNoteIndex); | ||
let res = releaseNote.join('\n'); | ||
if (!releaseNote.length || !res) { | ||
res = '### No release note would be generated.'; | ||
} | ||
const SEMANTIC_RELEASE_BODY_HEADER = '## 📝 Semantic Release Report'; | ||
const NEXT_VERSION_HEADER = `### 🚀 Next Version: ${nextVersion}`; | ||
const body = [SEMANTIC_RELEASE_BODY_HEADER, NEXT_VERSION_HEADER, res].join('\n'); | ||
// get last comment | ||
const comments = await github.rest.issues.listComments({ | ||
issue_number: context.issue.number, | ||
owner: context.repo.owner, | ||
repo: context.repo.repo | ||
}); | ||
// find comments to delete | ||
const commentsToDelete = comments.data.filter((comment) => | ||
comment.body.startsWith(SEMANTIC_RELEASE_BODY_HEADER) | ||
); | ||
// delete comments | ||
const prms = commentsToDelete.map((comment) => | ||
github.rest.issues.deleteComment({ | ||
comment_id: comment.id, | ||
owner: context.repo.owner, | ||
repo: context.repo.repo | ||
}) | ||
); | ||
await Promise.all(prms); | ||
// create new comment for release note | ||
github.rest.issues.createComment({ | ||
issue_number: context.issue.number, | ||
owner: context.repo.owner, | ||
repo: context.repo.repo, | ||
body | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,4 @@ | ||
node_modules | ||
dist | ||
.DS_Store | ||
.eslintcache |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1 @@ | ||
#!/bin/sh | ||
. "$(dirname "$0")/_/husky.sh" | ||
|
||
npx --no -- commitlint --edit ${1} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1 @@ | ||
#!/bin/sh | ||
. "$(dirname "$0")/_/husky.sh" | ||
|
||
npm run pre-commit | ||
npx lint-staged |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
module.exports = { | ||
'*.{ts,cjs,js,json}': 'npx eslint --cache --fix', | ||
'**/*': 'npx prettier --cache --write --ignore-unknown', | ||
'package.json': 'npx sort-package-json', | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,10 +1,20 @@ | ||
{ | ||
"$schema": "https://json.schemastore.org/prettierrc", | ||
"tabWidth": 4, | ||
"singleQuote": true, | ||
"trailingComma": "all", | ||
"semi": false, | ||
"printWidth": 120, | ||
"importOrder": ["^@.*/(.*)$", "^[./]"], | ||
"importOrderSeparation": false, | ||
"importOrderSortSpecifiers": true | ||
"importOrderSortSpecifiers": true, | ||
"plugins": ["@trivago/prettier-plugin-sort-imports"], | ||
"overrides": [ | ||
{ | ||
"files": ["*.ts"], | ||
"options": { | ||
"importOrderParserPlugins": ["typescript", "decorators-legacy"] | ||
} | ||
} | ||
] | ||
} |
Oops, something went wrong.