Skip to content

Commit

Permalink
Merge pull request #22 from KevinEyo1/2464-check-release-tag
Browse files Browse the repository at this point in the history
2464 check release tag
  • Loading branch information
KevinEyo1 authored Mar 21, 2024
2 parents f798b1d + 1c65962 commit 55fea6f
Show file tree
Hide file tree
Showing 3 changed files with 80 additions and 2 deletions.
75 changes: 75 additions & 0 deletions .github/workflows/pr-merge.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
name: PR Merge
on:
pull_request:
types:
- closed

concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true

jobs:
check-pr-label:
if: ${{ github.event.pull_request.merged }}
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3
- name: Check for PR description label
id: check_pr_description_label
run: |
python scripts/process_message.py "${TEXT_BODY}" > processed_body.txt
processed_body=$(cat processed_body.txt)
proposed_version_impact=$(echo "$processed_body" | awk '/Major \\\(when you make incompatible API changes\\\)/,/Patch \\\(when you make backward compatible bug fixes\\\)/')
is_major=$(echo "$proposed_version_impact" | grep -qi '\[X\] Major'; echo $((1-$?)))
is_minor=$(echo "$proposed_version_impact" | grep -qi '\[X\] Minor'; echo $((1-$?)))
is_patch=$(echo "$proposed_version_impact" | grep -qi '\[X\] Patch'; echo $((1-$?)))
sum=$(($is_major + $is_minor + $is_patch))
echo "sum=$sum" >> $GITHUB_OUTPUT
if [[ "$sum" -eq 0 ]]; then
echo "message=$(echo "@${MERGE_AUTHOR} Each PR must have a SEMVER impact label, remember to label the PR properly.")" >> $GITHUB_OUTPUT
elif [[ "$sum" -ge 2 ]]; then
echo "message=$(echo "@${MERGE_AUTHOR} Each PR can only have one SEMVER impact label, remember to label the PR properly.")" >> $GITHUB_OUTPUT
else
echo "message=$(echo "SEMVER impact selected.")" >> $GITHUB_OUTPUT
echo "chosen_label=$(
if [ "$is_major" -eq 1 ]; then
echo "r.Major"
elif [ "$is_minor" -eq 1 ]; then
echo "r.Minor"
elif [ "$is_patch" -eq 1 ]; then
echo "r.Patch"
fi
)" >> $GITHUB_OUTPUT
fi
env:
TEXT_BODY: ${{ github.event.pull_request.body }}
MERGE_AUTHOR: ${{ github.event.pull_request.merged_by.login }}

- name: Assign label based on version impact
uses: actions/github-script@v7
with:
script: |
if (process.env.SUM != 1) {
github.rest.issues.createComment({
issue_number: context.payload.pull_request.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: process.env.MESSAGE,
});
} else {
github.rest.issues.addLabels({
issue_number: context.payload.pull_request.number,
owner: context.repo.owner,
repo: context.repo.repo,
labels: [process.env.CHOSEN_LABEL]
});
}
env:
SUM: ${{ steps.check_pr_description_label.outputs.sum }}
MESSAGE: ${{ steps.check_pr_description_label.outputs.message }}
CHOSEN_LABEL: ${{ steps.check_pr_description_label.outputs.chosen_label }}



5 changes: 4 additions & 1 deletion packages/core/src/utils/fsUtil.ts
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,10 @@ export function copySyncWithOptions(src: string, dest: string, options: CopyOpti
const files = fs.readdirSync(src);
files.forEach((file) => {
const curSource = path.join(src, file);
const curDest = path.join(dest, file);
let curDest = path.join(dest, file);
if (file === 'gitignore') {
curDest = path.join(dest, '.gitignore');
}

if (fs.lstatSync(curSource).isDirectory()) {
if (!fs.existsSync(curDest)) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,4 +20,4 @@ _site/
# IDE configs
.vscode/
.idea/*
*.iml
*.iml

0 comments on commit 55fea6f

Please sign in to comment.