Skip to content

feat: add reusable workflow to check PR labels for release conditions #3

feat: add reusable workflow to check PR labels for release conditions

feat: add reusable workflow to check PR labels for release conditions #3

name: TypeScript Service Release
on:
workflow_call:
inputs:
service-name:
type: string
required: true
description: "The name of the service to release"
bun-version:
type: string
required: false
default: "latest"
description: "Bun version to use"
prerelease:
type: boolean
required: true
description: "Whether to create a prerelease"
github-release:
type: boolean
required: true
description: "Whether to create a GitHub release"
npm-release:
type: boolean
required: true
description: "Whether to publish to npm"
npm-tag:
type: string
required: false
default: "latest"
description: "NPM tag to publish with"
secrets:
OPENAI_API_KEY:
required: true
description: "OpenAI API key for version and notes"
NPM_TOKEN:
required: false
description: "NPM token (required if npm-release is true)"
jobs:
check-labels:
uses: ./.github/workflows/blocks/conditions/check-pr-labels.yml

Check failure on line 42 in .github/workflows/typescript-service-release.yaml

View workflow run for this annotation

GitHub Actions / .github/workflows/typescript-service-release.yaml

Invalid workflow file

invalid value workflow reference: workflows must be defined at the top level of the .github/workflows/ directory
permissions:
pull-requests: read
contents: read
release-info:
needs: check-labels
if: |
(needs.check-labels.outputs.has_github_release == 'true' || inputs.github-release == 'true') ||
(needs.check-labels.outputs.has_npm_release == 'true' || inputs.npm-release == 'true')
uses: ./.github/workflows/blocks/actions/generate-release-info.yml
permissions:
contents: read
with:
service-name: ${{ inputs.service-name }}
prerelease: ${{ inputs.prerelease }}
secrets:
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
github-release:
needs: release-info
if: inputs.github-release
uses: ./.github/workflows/blocks/actions/create-github-release.yml
permissions:
contents: write
with:
version: ${{ needs.release-info.outputs.version }}
title: "${{ inputs.service-name }} v${{ needs.release-info.outputs.version }}"
notes: ${{ needs.release-info.outputs.release_notes }}
prerelease: ${{ inputs.prerelease }}
npm-publish:
needs: release-info
if: inputs.npm-release
uses: ./.github/workflows/blocks/actions/publish-npm.yml
permissions:
contents: read
with:
bun-version: ${{ inputs.bun-version }}
tag: ${{ inputs.prerelease && 'beta' || inputs.npm-tag }}
secrets:
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}