Adding release pipeline (#173)
This commit is contained in:
Родитель
5dc2e810bf
Коммит
fb579915a7
|
@ -0,0 +1,85 @@
|
|||
name: CI
|
||||
on:
|
||||
schedule:
|
||||
- cron: '0 0 * * *'
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
workflow_dispatch:
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
actions: read
|
||||
checks: write
|
||||
deployments: write
|
||||
|
||||
jobs:
|
||||
build-and-test:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout Repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set up Node.js
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: '18'
|
||||
|
||||
- name: Install Dependencies
|
||||
run: npm install
|
||||
|
||||
- name: Check if package.json has changed
|
||||
id: check
|
||||
run: |
|
||||
if [ $(git diff --name-only HEAD^1 HEAD | grep 'package.json' | wc -l) -eq 0 ]; then
|
||||
echo "No version change detected in package.json."
|
||||
else
|
||||
echo "Version change detected."
|
||||
fi
|
||||
|
||||
- name: Create npm package
|
||||
run: npm pack
|
||||
|
||||
- name: Extract package contents
|
||||
run: npm pack
|
||||
id: npm_pack
|
||||
|
||||
- name: Checkout release branch
|
||||
uses: actions/checkout@v4
|
||||
ref: release
|
||||
path: './release'
|
||||
|
||||
- name: Extract package contents
|
||||
run: |
|
||||
tar -xzf *.tgz --strip-components=1 -C ./release
|
||||
|
||||
- name: Set up Git use
|
||||
run: |
|
||||
git config --global user.email "github-actions[bot]"
|
||||
git config user.email "github-actions[bot]@users.noreply.github.com"
|
||||
|
||||
- name: Push package contents to a new branch
|
||||
run: |
|
||||
VERSION=$(jq -r '.version' package.json)
|
||||
cd ./release
|
||||
git add .
|
||||
git commit -m "Release ${VERSION}"
|
||||
|
||||
- name: Generate release notes
|
||||
run: |
|
||||
PREV_TAG=$(git describe --tags --abbrev=0 HEAD^1)
|
||||
GIT_LOG=$(git log --pretty=format:"%h - %s (%an)" "${PREV_TAG}..HEAD")
|
||||
echo "RELEASE_NOTES<<EOF" >> $GITHUB_ENV
|
||||
echo "${GIT_LOG}" >> $GITHUB_ENV
|
||||
echo "EOF" >> $GITHUB_ENV
|
||||
|
||||
- name: Printing release notes
|
||||
run: |
|
||||
echo ${{ env.RELEASE_NOTES }}
|
||||
echo ${{ env.GIT_LOG }}
|
||||
echo ${{ env.RELEASE_NOTES }}
|
||||
echo v${{ steps.check.outputs.version }}
|
||||
|
||||
|
||||
|
Загрузка…
Ссылка в новой задаче