chore(release): add release please configuration

This commit is contained in:
Daniel Sogl
2025-06-07 14:21:49 +02:00
parent 723488f16f
commit 94c5527aa4
8 changed files with 1252 additions and 1400 deletions

View File

@@ -1,35 +0,0 @@
name: Release Packages
on:
workflow_dispatch:
release:
types: [created]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4.2.2
- uses: actions/setup-node@v4.4.0
with:
node-version: 20
- name: Install dependencies
run: npm ci
- name: Build
run: npm run build
- name: Readmes
run: npm run readmes
publish-npm:
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4.2.2
- uses: actions/setup-node@v4.4.0
with:
node-version: 20
registry-url: https://registry.npmjs.org/
- run: npm ci
- run: npm run shipit
env:
NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}

75
.github/workflows/release-please.yml vendored Normal file
View File

@@ -0,0 +1,75 @@
name: Release Please
on:
push:
branches:
- main
# Manual trigger as backup
workflow_dispatch:
permissions:
contents: write
pull-requests: write
issues: write
jobs:
release-please:
runs-on: ubuntu-latest
outputs:
release_created: ${{ steps.release.outputs.release_created }}
tag_name: ${{ steps.release.outputs.tag_name }}
version: ${{ steps.release.outputs.version }}
pr: ${{ steps.release.outputs.pr }}
steps:
- name: Run Release Please
id: release
uses: googleapis/release-please-action@v4
with:
# GitHub token for creating PRs and releases
token: ${{ secrets.GITHUB_TOKEN }}
# Use manifest-based configuration (advanced setup)
config-file: release-please-config.json
manifest-file: .release-please-manifest.json
- name: Show Release Info
if: ${{ steps.release.outputs.release_created }}
run: |
echo "Release created: ${{ steps.release.outputs.release_created }}"
echo "Tag: ${{ steps.release.outputs.tag_name }}"
echo "Version: ${{ steps.release.outputs.version }}"
echo "PR: ${{ steps.release.outputs.pr }}"
publish:
runs-on: ubuntu-latest
needs: release-please
if: ${{ needs.release-please.outputs.release_created }}
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "20"
cache: "npm"
registry-url: "https://registry.npmjs.org"
- name: Install dependencies
run: npm ci
- name: Run linting
run: npm run lint
- name: Run tests
run: npm test
- name: Build packages
run: npm run build
- name: Generate README files
run: npm run readmes
- name: Publish all packages to NPM
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
run: npm run npmpub