Skip to content

changue pipeline

changue pipeline #3

name: Release on Merge to Main
on:
push:
branches:
- master
jobs:
release:
runs-on: ubuntu-latest
steps:
# 1. Checkout la rama main
- name: Checkout main branch
uses: actions/checkout@v4
# 2. Instalar dependencias y compilar el proyecto
- name: Install dependencies and run build
run: |
npm install
npm run build
# 3. Obtener la versión del package.json
- name: Get version from package.json
id: get-version
run: |
version=$(jq -r .version package.json)
echo "version=$version" >> $GITHUB_ENV
echo "Release version: $version"
# 4. Hacer ejecutable el script get_changelog.sh
- name: Make get_changelog.sh executable
run: chmod +x ./get_changelog.sh
# 5. Obtener el changelog desde el script
- name: Get release changelog
id: get-changelog
run: |
changelog=$(./get_changelog.sh ${{ env.version }})
if [ -z "$changelog" ]; then
echo "Error: No changelog found for version ${{ env.version }}"
exit 1
else
echo "$changelog" > changelog.txt
echo "Changelog saved to changelog.txt"
fi
# 6. Crear una nueva release en GitHub
- name: Create GitHub Release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: v${{ env.version }}
release_name: 'Release v${{ env.version }}'
body_path: ./changelog.txt
draft: false
prerelease: false
# 7. Publicar en npm
- name: Publish to npm
run: |
npm publish
env:
NODE_AUTH_TOKEN: ${{ secrets.NODE_AUTH_TOKEN }}