Enable manual workflow run and add TypeScript types
Added `workflow_dispatch` to GitHub Actions to permit manual execution of pull request tests, enhancing flexibility in CI/CD processes. Included `types` field in `package.json` to specify TypeScript declaration file, improving TypeScript support and integration.
This commit is contained in:
97
.github/workflows/CreateRelease.yml
vendored
Normal file
97
.github/workflows/CreateRelease.yml
vendored
Normal file
@@ -0,0 +1,97 @@
|
|||||||
|
name: Create Release
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
paths:
|
||||||
|
- 'package.json'
|
||||||
|
workflow_dispatch: # Allows manual execution of the workflow.
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
|
||||||
|
- name: Set up Node.js
|
||||||
|
uses: actions/setup-node@v4
|
||||||
|
with:
|
||||||
|
node-version: '20.8.0'
|
||||||
|
|
||||||
|
- name: Install Dependencies
|
||||||
|
run: npm install
|
||||||
|
|
||||||
|
- name: Run Tests
|
||||||
|
run: npm run test:verbose
|
||||||
|
|
||||||
|
- name: Build the Project
|
||||||
|
run: npm run build:tsc
|
||||||
|
|
||||||
|
- name: Get the version
|
||||||
|
id: get_version
|
||||||
|
run: |
|
||||||
|
VERSION=$(npm run version:show | tail -n 1)
|
||||||
|
echo "VERSION=$VERSION" >> $GITHUB_ENV
|
||||||
|
shell: bash
|
||||||
|
|
||||||
|
- name: Get previous release tag
|
||||||
|
id: get_previous_release
|
||||||
|
run: |
|
||||||
|
echo "Fetching previous release tag..."
|
||||||
|
previous_tag=$(git describe --tags --abbrev=0 HEAD^ 2>/dev/null || echo "")
|
||||||
|
if [ -z "$previous_tag" ]; then
|
||||||
|
echo "No previous tag found, using initial commit."
|
||||||
|
previous_tag=$(git rev-list --max-parents=0 HEAD)
|
||||||
|
fi
|
||||||
|
echo "Previous tag: $previous_tag"
|
||||||
|
echo "PREVIOUS_TAG=$previous_tag" >> $GITHUB_ENV
|
||||||
|
shell: bash
|
||||||
|
|
||||||
|
- name: Check if version changed
|
||||||
|
id: check_version
|
||||||
|
run: |
|
||||||
|
if [ "${{ env.VERSION }}" == "${{ env.PREVIOUS_TAG }}" ]; then
|
||||||
|
echo "Version has not changed. No release will be created."
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
shell: bash
|
||||||
|
|
||||||
|
- name: Generate release notes
|
||||||
|
id: generate_notes
|
||||||
|
run: |
|
||||||
|
echo "Generating release notes from ${{ env.PREVIOUS_TAG }} to HEAD..."
|
||||||
|
repo_url=$(git config --get remote.origin.url)
|
||||||
|
notes=$(git log ${{ env.PREVIOUS_TAG }}..HEAD --pretty=format:"- [\`%h\`]($repo_url/commit/%H): %s%n")
|
||||||
|
echo "Release notes:"
|
||||||
|
echo "$notes"
|
||||||
|
echo "### Changes in this release" > release_notes.md
|
||||||
|
echo "$notes" >> release_notes.md
|
||||||
|
shell: bash
|
||||||
|
|
||||||
|
- name: Create Tag
|
||||||
|
id: create_tag
|
||||||
|
run: |
|
||||||
|
git tag ${{ env.VERSION }}
|
||||||
|
git push origin ${{ env.VERSION }}
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
shell: bash
|
||||||
|
|
||||||
|
- name: Release
|
||||||
|
uses: softprops/action-gh-release@v2
|
||||||
|
with:
|
||||||
|
tag_name: ${{ env.VERSION }}
|
||||||
|
name: Release ${{ env.VERSION }}
|
||||||
|
body_path: release_notes.md
|
||||||
|
files: |
|
||||||
|
./dist/**
|
||||||
|
./README.md
|
||||||
|
./LICENSE
|
||||||
|
./package.json
|
||||||
|
./tsconfig.json
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
1
.github/workflows/PullRequestTest.yml
vendored
1
.github/workflows/PullRequestTest.yml
vendored
@@ -4,6 +4,7 @@ on:
|
|||||||
pull_request:
|
pull_request:
|
||||||
branches:
|
branches:
|
||||||
- main
|
- main
|
||||||
|
workflow_dispatch: # Allows manual execution of the workflow.
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build-and-test:
|
build-and-test:
|
||||||
|
@@ -3,6 +3,7 @@
|
|||||||
"version": "0.0.1",
|
"version": "0.0.1",
|
||||||
"description": "",
|
"description": "",
|
||||||
"main": "dist/index.js",
|
"main": "dist/index.js",
|
||||||
|
"types": "dist/index.d.ts",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build:tsc": "tsc",
|
"build:tsc": "tsc",
|
||||||
"lint": "eslint --ext .ts .",
|
"lint": "eslint --ext .ts .",
|
||||||
|
Reference in New Issue
Block a user