Create GitHub Release #527
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Create GitHub Release | |
on: | |
workflow_run: | |
workflows: | |
- Create Tag and Publish Package | |
types: | |
- completed | |
permissions: | |
contents: write | |
jobs: | |
create-release: | |
name: Create GitHub Release | |
runs-on: ubuntu-latest | |
if: ${{ github.event.workflow_run.conclusion == 'success' }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
fetch-tags: true | |
- name: Get latest tag | |
id: latest_tag | |
run: echo "tag=$(git describe --tags --abbrev=0 ${{ github.ref }})" >> "$GITHUB_OUTPUT" | |
- name: Extract package name from tag | |
id: extract_package | |
# yamllint disable-line rule:line-length | |
run: echo "package=$(echo ${{ steps.latest_tag.outputs.tag }} | sed -E 's#([^/]+)-[0-9]+\.[0-9]+\.[0-9]+.*#\1#')" >> "$GITHUB_OUTPUT" | |
- name: Extract version from tag | |
id: extract_version | |
# yamllint disable-line rule:line-length | |
run: echo "version=$(echo ${{ steps.latest_tag.outputs.tag }} | sed -E 's#[^/]+-([0-9]+\.[0-9]+\.[0-9]+.*)#\1#')" >> "$GITHUB_OUTPUT" | |
- name: Extract Changelog | |
id: changelog | |
uses: yashanand1910/[email protected] | |
with: | |
changelog_path: nodes/${{ steps.extract_package.outputs.package }}/CHANGELOG.md | |
version: ${{ steps.extract_version.outputs.version }} | |
- name: Store release notes | |
id: store_release_notes | |
run: | | |
RELEASE_NOTES_FILE=release_notes.txt | |
echo -e "${{ steps.changelog.outputs.release_notes }}" > $RELEASE_NOTES_FILE | |
echo "release_notes_file=$RELEASE_NOTES_FILE" >> "$GITHUB_OUTPUT" | |
- name: Setup pnpm | |
uses: pnpm/action-setup@v4 | |
- name: Setup Node.js | |
uses: actions/setup-node@v4 | |
with: | |
cache: pnpm | |
node-version-file: package.json | |
- name: Install dependencies | |
run: pnpm install | |
- name: Build package | |
run: pnpm exec nx build --project ${{ steps.extract_package.outputs.package }} | |
- name: Zip package | |
run: zip -9 -r -q ${{ steps.extract_package.outputs.package }}-${{ steps.extract_version.outputs.version }}.zip dist/nodes/${{ steps.extract_package.outputs.package }}/ | |
- name: Tar package | |
run: tar --create --file ${{ steps.extract_package.outputs.package }}-${{steps.extract_version.outputs.version }}.tar.gz --gzip dist/nodes/${{ steps.extract_package.outputs.package }}/ | |
- name: Create GitHub release | |
run: | | |
gh release create \ | |
${{ steps.extract_package.outputs.package }}-${{ steps.extract_version.outputs.version }} \ | |
${{ steps.extract_package.outputs.package }}-${{ steps.extract_version.outputs.version }}.zip \ | |
${{ steps.extract_package.outputs.package }}-${{ steps.extract_version.outputs.version }}.tar.gz \ | |
--notes-file ${{ steps.store_release_notes.outputs.release_notes_file }} \ | |
--title "${{ steps.extract_package.outputs.package }} ${{ steps.extract_version.outputs.version }}" \ | |
--verify-tag | |
env: | |
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} |