Skip to content

📦 Publish › NPM Package #40

📦 Publish › NPM Package

📦 Publish › NPM Package #40

Workflow file for this run

# ---------------------------------------------------------------------------------------
# @parent : github workflow
# @desc : publish to github & npmjs
# @author : Aetherinox
# @url : https://github.com/Aetherinox
# ---------------------------------------------------------------------------------------
name: "📦 Publish › NPM Package"
run-name: "📦 Publish › NPM Package"
on:
workflow_dispatch:
inputs:
# ---------------------------------------------------------------------------------------
# Name of the plugin to use when creating the release zip filename
# e.g: toasted-notifier-v1.0.0.zip
# ---------------------------------------------------------------------------------------
PLUGIN_NAME:
description: "📦 Name of Plugin"
required: true
default: 'toasted-notifier'
type: string
# ---------------------------------------------------------------------------------------
# ENABLE: the changelog generated in releases tab will only display single commits.
# DISABLE: the changelog shows pull requests completed based on their labels
# ---------------------------------------------------------------------------------------
CHANGELOG_MODE_COMMIT:
description: "📑 Use Commits Instead of PRs"
required: true
default: true
type: boolean
# ---------------------------------------------------------------------------------------
# ENABLE: Will show all types of commits, including uncategorized
# DISABLE: WIll only show actions that have been categorized using the format
# type(scope): description
# type: description
# ---------------------------------------------------------------------------------------
SHOW_UNCATEGORIZED:
description: "🗂️ Show Uncategorized Commits"
required: true
default: false
type: boolean
# ---------------------------------------------------------------------------------------
# ENABLE: released version will be marked as pre-release
# DISABLE: release version will be marked as stable / normal release
# ---------------------------------------------------------------------------------------
PRERELEASE:
description: "🧪 Build RC (Pre-release)"
required: true
default: false
type: boolean
# ---------------------------------------------------------------------------------------
# Release Candidate version number
# this will be added to the end of your released app in the releases page.
# e.g: toasted-notifier-v1.0.0-rc.1
# ---------------------------------------------------------------------------------------
VERSION_RC:
description: "🧪 RC (Pre-release) Ver (toasted-notifier-rc.v1)"
required: false
type: string
default: "1"
jobs:
# ---------------------------------------------------------------------------------------
# JOB > INITIALIZE
# ---------------------------------------------------------------------------------------
job-initialize:
name: >-
📦 Publish › Initialize
runs-on: ubuntu-latest
outputs:
package_version: ${{ steps.task_initialize_package_getversion.outputs.PACKAGE_VERSION }}
permissions:
contents: write
packages: write
steps:
- name: "✅ Start"
id: task_initialize_start
run: |
echo "Starting build"
# ---------------------------------------------------------------------------------------
# Job > Initialize > Checkout
# ---------------------------------------------------------------------------------------
- name: "☑️ Checkout"
id: task_initialize_checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
# ---------------------------------------------------------------------------------------
# Get version from package.json VERSION value
# ---------------------------------------------------------------------------------------
- name: "👁️‍🗨️ Package Version › Set"
id: task_initialize_package_getversion
run: |
VER=$(cat package.json | jq -r '.version')
echo "PACKAGE_VERSION=$VER" >> $GITHUB_OUTPUT
- name: "👁️‍🗨️ Package Version › Get"
id: task_initialize_package_getversion_debug
run: |
echo "VERSION: ${{ steps.task_initialize_package_getversion.outputs.PACKAGE_VERSION }}"
# ---------------------------------------------------------------------------------------
# JOB > PUBLISH > NPMJS
# ---------------------------------------------------------------------------------------
job-publish-npm:
name: >-
📦 Package › Npmjs
needs: job-initialize
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
# ---------------------------------------------------------------------------------------
# Checkout
# ---------------------------------------------------------------------------------------
- name: "☑️ Checkout"
id: task_npm_checkout
uses: actions/checkout@v4
# ---------------------------------------------------------------------------------------
# Select node version and registry
# ---------------------------------------------------------------------------------------
- name: "⚙️ Setup Node"
id: task_npm_node_setup
uses: actions/setup-node@v4
with:
node-version: '20.x'
registry-url: 'https://registry.npmjs.org/'
always-auth: true
scope: '@aetherinox'
# ---------------------------------------------------------------------------------------
# NPM > Install
# ---------------------------------------------------------------------------------------
- name: "🎚️ NPM: Install"
id: task_npm_install
run: |
npm install
# ---------------------------------------------------------------------------------------
# NPM > Publish (Dry Run)
# ---------------------------------------------------------------------------------------
- name: "🪛 NPM: Build"
id: task_npm_build
run: |
npm run build
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
# ---------------------------------------------------------------------------------------
# NPM > Publish (Dry Run)
# ---------------------------------------------------------------------------------------
- name: "🧪 Publish: Dry Run"
id: task_npm_publish_run_dry
run: |
npm publish --dry-run
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
# ---------------------------------------------------------------------------------------
# List files to be published
# ---------------------------------------------------------------------------------------
- name: "📂 List Files"
id: task_npm_publish_list
run: |
find . -type f ! -path './node_modules/*' ! -path './.git/*' ! -path './.github/*' \
| xargs stat --printf="%y %n\n" \
| sort -n
# ---------------------------------------------------------------------------------------
# NPM > Publish (Live)
# ---------------------------------------------------------------------------------------
- name: "📦 Publish: Live"
id: task_npm_publish_run_live
run: |
npm publish
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
# ---------------------------------------------------------------------------------------
# JOB > PUBLISH > GITHUB PACKAGE
# ---------------------------------------------------------------------------------------
job-publish-gpr:
name: >-
📦 Package › Github
needs: job-initialize
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
# ---------------------------------------------------------------------------------------
# Checkout
# ---------------------------------------------------------------------------------------
- name: "☑️ Checkout"
id: task_gpr_checkout
uses: actions/checkout@v4
# ---------------------------------------------------------------------------------------
# Select node version and registry
# ---------------------------------------------------------------------------------------
- name: "⚙️ Setup Node"
id: task_gpr_node_setup
uses: actions/setup-node@v4
with:
node-version: '20.x'
registry-url: https://npm.pkg.github.com/
scope: '@aetherinox'
# ---------------------------------------------------------------------------------------
# Required when pushing to Github. Package name must start with @scope / username.
# ---------------------------------------------------------------------------------------
- name: "🔎 Find and Replace (Start)"
uses: jacobtomlinson/gha-find-replace@v3
with:
find: '"name": "toasted-notifier"'
replace: '"name": "@aetherinox/toasted-notifier"'
include: "package.json"
regex: true
# ---------------------------------------------------------------------------------------
# NPM > Install
# ---------------------------------------------------------------------------------------
- name: "🎚️ NPM › Install"
id: task_gpr_install
run: |
npm install
# ---------------------------------------------------------------------------------------
# NPM > Publish (Dry Run)
# ---------------------------------------------------------------------------------------
- name: "🧪 Publish › Dry Run"
id: task_gpr_publish_run_dry
run: |
npm publish --dry-run
env:
NODE_AUTH_TOKEN: ${{ secrets.SELF_TOKEN_CL }}
# ---------------------------------------------------------------------------------------
# List files to be published
# ---------------------------------------------------------------------------------------
- name: "📂 List Files"
id: task_gpr_publish_list
run: |
find . -type f ! -path './node_modules/*' ! -path './.git/*' ! -path './.github/*' \
| xargs stat --printf="%y %n\n" \
| sort -n
# ---------------------------------------------------------------------------------------
# NPM > Publish (Live)
# ---------------------------------------------------------------------------------------
- name: "📦 Publish › Live"
id: task_gpr_publish_run_live
run: |
npm publish
env:
NODE_AUTH_TOKEN: ${{ secrets.SELF_TOKEN_CL }}
# ---------------------------------------------------------------------------------------
# Required when pushing to Github. Package name must start with @scope / username.
# After being built, change name back to original.
# ---------------------------------------------------------------------------------------
- name: "🔎 Find and Replace (Finish)"
uses: jacobtomlinson/gha-find-replace@v3
with:
find: '"name": "@aetherinox/toasted-notifier"'
replace: '"name": "toasted-notifier"'
include: "package.json"
regex: true
# ---------------------------------------------------------------------------------------
# Job > Release > Github
# ---------------------------------------------------------------------------------------
job-release:
name: >-
📦 Publish › Release
runs-on: ubuntu-latest
needs: [ job-initialize, job-publish-npm, job-publish-gpr ]
env:
PACKAGE_VERSION: ${{ needs.job-initialize.outputs.package_version }}
if: |
always()
&& contains(needs.*.result, 'success')
&& !contains(needs.*.result, 'failure')
permissions:
contents: write
packages: write
steps:
# ---------------------------------------------------------------------------------------
# Dist Releases > Checkout
# ---------------------------------------------------------------------------------------
- name: "☑️ Checkout"
id: task_release_checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
# ---------------------------------------------------------------------------------------
# Dist Releases > Print Version Debug
# ---------------------------------------------------------------------------------------
- name: "🪪 Test Next Job Version"
id: task_release_debug_print_ver
run: |
echo "VERSION: ${{ env.PACKAGE_VERSION }}"
# ---------------------------------------------------------------------------------------
# Dist Releases > Install package via NPM
# ---------------------------------------------------------------------------------------
- name: "🪪 Install Dependencies"
id: task_release_npm_install
run: |
npm install
# ---------------------------------------------------------------------------------------
# Dist Releases > Run pretty and lint
# ---------------------------------------------------------------------------------------
- name: "🪪 Run Pretty & Linter"
id: task_release_npm_lint
run: |
npm run lint
# ---------------------------------------------------------------------------------------
# Dist Releases > Execute npm generate so that a uuid and guid can be created
# ---------------------------------------------------------------------------------------
- name: "🪪 Generate IDs"
id: task_release_npm_env_generate
run: |
npm run ntfy:generate
# ---------------------------------------------------------------------------------------
# Get guid and uuid from env variable
# generated by npm
# ---------------------------------------------------------------------------------------
- name: "🪪 .ENV › Get"
id: task_release_dotenv_get
uses: falti/dotenv-action@v1
- name: "🪪 .ENV › Read"
id: task_dotenv_debug_print
run: |
echo "GUID: ${{ steps.task_release_dotenv_get.outputs.GUID }}"
echo "UUID: ${{ steps.task_release_dotenv_get.outputs.UUID }}"
# ---------------------------------------------------------------------------------------
# Build Project & Create Zip
#
# exclude folder:
# -x test/**\*
# ---------------------------------------------------------------------------------------
- name: "🔨 Build › Stable ( ${{ inputs.PLUGIN_NAME }}-${{ env.PACKAGE_VERSION }}.zip )"
id: task_release_build_st
if: ${{ startsWith( inputs.PRERELEASE, false ) }}
run: |
echo Building STABLE Package .zip PACKAGE_VERSION
zip -r ${{ inputs.PLUGIN_NAME }}-${{ env.PACKAGE_VERSION }}.zip package.json README.md LICENSE.md index.js .prettierrc lib notifiers vendor example test
ls
env:
NODE_AUTH_TOKEN: ${{ secrets.ADMINSERV_TOKEN_CL }}
- name: "🔨 Build › Release Candidate ( ${{ inputs.PLUGIN_NAME }}-${{ env.PACKAGE_VERSION }}-rc.${{ inputs.VERSION_RC }}.zip )"
id: task_release_build_rc
if: ${{ startsWith( inputs.PRERELEASE, true ) }}
run: |
echo Building PRE-RELEASE Package .zip PACKAGE_VERSION
zip -r ${{ inputs.PLUGIN_NAME }}-${{ env.PACKAGE_VERSION }}-rc.${{ inputs.VERSION_RC }}.zip package.json README.md LICENSE.md index.js .prettierrc lib notifiers vendor example test
ls
env:
NODE_AUTH_TOKEN: ${{ secrets.ADMINSERV_TOKEN_CL }}
# ---------------------------------------------------------------------------------------
# [ Tag ]: Pre Create
#
# in order to use the changelog github action, you must pre-create the tag otherwise
# the changelog action will have no idea what tag you are going to be creating and
# the list of commits will not be for the correct release.
# ---------------------------------------------------------------------------------------
- name: "🔖 Tag › Pre Create ${{ env.PACKAGE_VERSION }}"
uses: rickstaa/action-create-tag@v1
id: task_release_tag_create
with:
tag: ${{ env.PACKAGE_VERSION }}
tag_exists_error: false
message: "Latest release"
gpg_private_key: ${{ secrets.ADMINSERV_GPG_KEY_ASC }}
gpg_passphrase: ${{ secrets.ADMINSERV_GPG_PASSPHRASE }}
# ---------------------------------------------------------------------------------------
# [ Tag ]: Confirm
# ---------------------------------------------------------------------------------------
- name: "🔖 Tag › Confirm ${{ env.PACKAGE_VERSION }}"
id: task_release_tag_get
run: |
echo "Tag already present: ${{ env.TAG_EXISTS }}"
echo "Tag already present: ${{ steps.task_release_tag_create.outputs.tag_exists }}"
# ---------------------------------------------------------------------------------------
# [ Release Candidate ]: Checksum
# ---------------------------------------------------------------------------------------
- name: "🆔 Checksum › Stable"
id: task_release_checksum_st_set
if: ${{ startsWith( inputs.PRERELEASE, false ) }}
run: |
filename_zip="${{ inputs.PLUGIN_NAME }}-${{ env.PACKAGE_VERSION }}.zip"
sha256="$(shasum --algorithm 256 ${filename_zip} | awk '{ print $1 }')"
shasum --algorithm 256 ${filename_zip} > SHA256SUMS.txt
echo "FILE_ZIP=${filename_zip}" >> $GITHUB_ENV
echo "SHA256SUM=${sha256}" >> $GITHUB_ENV
- name: "🆔 Checksum › Release Candidate"
id: task_release_checksum_rc_set
if: ${{ startsWith( inputs.PRERELEASE, true ) }}
run: |
filename_zip="${{ inputs.PLUGIN_NAME }}-${{ env.PACKAGE_VERSION }}-rc.${{ inputs.VERSION_RC }}.zip"
sha256="$(shasum --algorithm 256 ${filename_zip} | awk '{ print $1 }')"
shasum --algorithm 256 ${filename_zip} > SHA256SUMS.txt
echo "FILE_ZIP=${filename_zip}" >> $GITHUB_ENV
echo "SHA256SUM=${sha256}" >> $GITHUB_ENV
# ---------------------------------------------------------------------------------------
# Checksum > Print
# ---------------------------------------------------------------------------------------
- name: "🆔 Checksum › Print"
id: task_release_checksum_print
run: |
echo ${{ env.SHA256SUM }}
# ---------------------------------------------------------------------------------------
# Contributor Images
# ---------------------------------------------------------------------------------------
- name: "🥸 Contributors › Generate"
id: task_release_contribs_generate
uses: jaywcjlove/github-action-contributors@main
with:
filter-author: (renovate\[bot\]|renovate-bot|dependabot\[bot\])
output: CONTRIBUTORS.svg
avatarSize: 42
# ---------------------------------------------------------------------------------------
# [ ZIP ] : Stable
# ---------------------------------------------------------------------------------------
- name: "📦 Zip › Add Checksum › Stable"
id: task_release_zip_st
if: ${{ startsWith( inputs.PRERELEASE, false ) }}
run: |
echo Zipping STABLE Package .zip PACKAGE_VERSION
zip -jr ${{ inputs.PLUGIN_NAME }}-${{ env.PACKAGE_VERSION }}.zip SHA256SUMS.txt
ls
- name: "📦 Zip › Add Checksum › Release Candidate"
id: task_release_zip_rc
if: ${{ startsWith( inputs.PRERELEASE, true ) }}
run: |
echo Zipping PRE-RELEASE Package .zip PACKAGE_VERSION
zip -jr ${{ inputs.PLUGIN_NAME }}-${{ env.PACKAGE_VERSION }}-rc.${{ inputs.VERSION_RC }}.zip SHA256SUMS.txt
ls
# ---------------------------------------------------------------------------------------
# Generate Changelog
#
# generates a changelog from the github api. requires a PREVIOUS_TAG in order to figure
# out the changes made between the two versions.
#
# outputs:
# ${{ steps.changelog.outputs.changelog }}
# ---------------------------------------------------------------------------------------
- name: "📝 Changelog › Pre Setup (Categorized Commits)"
id: task_release_changelog_categorized_sha_set
run: |
echo "TAG_LAST=$(git describe --tags --abbrev=0)" >> $GITHUB_ENV
echo "COMMIT_LAST=$(git rev-parse HEAD)" >> $GITHUB_ENV
- name: "📝 Changelog › Build (Categorized)"
id: task_release_changelog_categorized
if: ${{ startsWith( inputs.SHOW_UNCATEGORIZED, false ) }}
uses: mikepenz/release-changelog-builder-action@v4
with:
token: ${{ secrets.ADMINSERV_TOKEN }}
#fromTag: "${{ env.TAG_LAST }}"
#toTag: "${{ github.ref }}"
configuration: ".github/changelog-configuration.json"
ignorePreReleases: false
commitMode: ${{ inputs.CHANGELOG_MODE_COMMIT }}
fetchReleaseInformation: true
fetchViaCommits: true
configurationJson: |
{
"template": "## Release Info <sup>(${{ steps.task_release_dotenv_get.outputs.UUID }})</sup>\n| Item | Value |\n| --- | --- |\n|<sub>SHA256</sub>|<sub>${{ env.SHA256SUM }} 🔺 ${{ env.FILE_ZIP }}</sub>|\n|<sub>GUID</sub>|<sub>`${{ steps.task_release_dotenv_get.outputs.GUID }}`</sub>|\n|<sub>UUID</sub>|<sub>`${{ steps.task_release_dotenv_get.outputs.UUID }}`</sub>|\n|<sub>Stamp</sub>|<sub>`#{{FROM_TAG}}-#{{FROM_TAG_DATE}} 🔺 #{{TO_TAG}}-#{{TO_TAG_DATE}}`</sub>|\n|<sub>Last Release</sub>|<sub>`#{{DAYS_SINCE}} days ago`</sub>|\n\n<br>\n\n---\n\n<br>\n\n### What's New\nThis release contains the following changes:\n\n<br>\n\n---\n\n<br>\n\n### Statistics\nHow the files have changed:\n<ul><li><a href='#{{RELEASE_DIFF}}'>Changed files</a> : <b>#{{CHANGED_FILES}}</b> </li><li>Commits : <b>#{{COMMITS}}</b> </li><li>Additions : <b>#{{ADDITIONS}}</b></li><li>Deletions : <b>#{{DELETIONS}}</b></li>\n<br />\n</ul>\n\n<br>\n\n---\n\n<br>\n\n### Pull Requests\nThis release is associated with the following pull requests:\n#{{CHANGELOG}}\n\n<br>\n\n---\n\n<br>\n\n"
}
env:
GITHUB_TOKEN: ${{ secrets.ADMINSERV_TOKEN }}
# ---------------------------------------------------------------------------------------
# shows only categorized commits using the commit standards
# type(scope): description
# type: description
# ---------------------------------------------------------------------------------------
- name: "📝 Changelog › Build (Uncategorized)"
id: task_release_changelog_uncategorized
if: ${{ startsWith( inputs.SHOW_UNCATEGORIZED, true ) }}
uses: mikepenz/release-changelog-builder-action@v4
with:
token: ${{ secrets.ADMINSERV_TOKEN }}
#fromTag: "${{ env.TAG_LAST }}"
#toTag: "${{ github.ref }}"
configuration: ".github/changelog-configuration.json"
ignorePreReleases: false
commitMode: ${{ inputs.CHANGELOG_MODE_COMMIT }}
fetchReleaseInformation: true
fetchViaCommits: true
configurationJson: |
{
"template": "## Release Info <sup>(${{ steps.task_release_dotenv_get.outputs.UUID }})</sup>\n- <sub>**Version began on**: <sub>........</sub>`#{{FROM_TAG_DATE}}`</sub>\n- <sub>**SHA256**: <sub>................................</sub>`${{ env.SHA256SUM }} 🔺 ${{ env.FILE_ZIP }}`</sub>\n- <sub>**GUID**: <sub>.......................................</sub>`${{ steps.task_release_dotenv_get.outputs.GUID }}`</sub>\n- <sub>**UUID**: <sub>.......................................</sub>`${{ steps.task_release_dotenv_get.outputs.UUID }}`</sub>\n- <sub>**Stamp**: <sub>....................................</sub>`#{{FROM_TAG}}-#{{FROM_TAG_DATE}} 🔺 #{{TO_TAG}}-#{{TO_TAG_DATE}}`</sub>\n- <sub>**Last Release**: <sub>......................</sub>`#{{DAYS_SINCE}} days ago`\n</sup>\n\n<br>\n\n---\n\n<br>\n\n### What's New\nThis release contains the following changes:\n\n<br>\n\n---\n\n<br>\n\n### Statistics\nHow the files have changed:\n<ul><li><a href='#{{RELEASE_DIFF}}'>Changed files</a> : <b>#{{CHANGED_FILES}}</b> </li><li>Commits : <b>#{{COMMITS}}</b> </li><li>Additions : <b>#{{ADDITIONS}}</b></li><li>Deletions : <b>#{{DELETIONS}}</b></li>\n<br />\n</ul>\n\n<br>\n\n---\n\n<br>\n\n### Commits (#{{UNCATEGORIZED_COUNT}})\nThe following commits are uncategorized:\n#{{UNCATEGORIZED}}\n\n<br>\n\n---\n\n<br>\n\n### Pull Requests\nThis release is associated with the following pull requests:\n#{{CHANGELOG}}\n\n<br>\n\n---\n\n<br>\n\n"
}
env:
GITHUB_TOKEN: ${{ secrets.ADMINSERV_TOKEN }}
# ---------------------------------------------------------------------------------------
# Fetch Changelog
# ---------------------------------------------------------------------------------------
- name: "📝 Changelog › Print (Categorized)"
id: task_release_changelog_print_categorized
if: ${{ startsWith( inputs.SHOW_UNCATEGORIZED, false ) }}
run: |
echo "${{ steps.task_release_changelog_categorized.outputs.changelog }}"
- name: "📝 Changelog › Print (Uncategorized)"
id: task_release_changelog_print_uncategorized
if: ${{ startsWith( inputs.SHOW_UNCATEGORIZED, true ) }}
run: |
echo "${{ steps.task_release_changelog_uncategorized.outputs.changelog }}"
# ---------------------------------------------------------------------------------------
# [ Release ]: Post Release
#
# outputs:
# [RELEASE ID]:
# ${{ steps.task_release_bundle_rc.outputs.id
# ${{ steps.task_release_bundle_st.outputs.id
# ---------------------------------------------------------------------------------------
- name: "🏳️ Post › Stable"
id: task_release_bundle_st
if: ${{ startsWith( inputs.PRERELEASE, false ) }}
uses: softprops/action-gh-release@v2
env:
GITHUB_TOKEN: ${{ secrets.ADMINSERV_TOKEN_CL }}
with:
token: ${{ secrets.ADMINSERV_TOKEN_CL }}
name: v${{ env.PACKAGE_VERSION }}
tag_name: ${{ env.PACKAGE_VERSION }}
target_commitish: ${{ github.event.inputs.branch }}
draft: false
generate_release_notes: false
files: |
${{ inputs.PLUGIN_NAME }}-${{ env.PACKAGE_VERSION }}.zip
SHA256SUMS.txt
prerelease: false
body: |
${{ steps.task_release_changelog_categorized.outputs.changelog }}
${{ steps.task_release_changelog_uncategorized.outputs.changelog }}
- name: "🏳️ Post › Release Candidate"
id: task_release_bundle_rc
if: ${{ startsWith( inputs.PRERELEASE, true ) }}
uses: softprops/action-gh-release@v2
env:
GITHUB_TOKEN: ${{ secrets.ADMINSERV_TOKEN }}
with:
token: ${{ secrets.ADMINSERV_TOKEN }}
name: v${{ env.PACKAGE_VERSION }}
tag_name: ${{ env.PACKAGE_VERSION }}
target_commitish: ${{ github.event.inputs.branch }}
draft: false
generate_release_notes: false
files: |
${{ inputs.PLUGIN_NAME }}-${{ env.PACKAGE_VERSION }}-rc.${{ inputs.VERSION_RC }}.zip
SHA256SUMS.txt
prerelease: false
body: |
> [!WARNING]
> This is a **release candidate**, which means it is not a stable release and could contain bugs. You should download it at your own risk.
${{ steps.task_release_changelog_categorized.outputs.changelog }}
${{ steps.task_release_changelog_uncategorized.outputs.changelog }}
# ---------------------------------------------------------------------------------------
# Print Status
# ---------------------------------------------------------------------------------------
- name: "🎛️ Status › Print"
id: task_release_status_print
run: |
echo "Printing Variables"
echo
echo "---- CHANGELOG ---------------------------------------------------------------"
echo "${{ steps.task_release_changelog_categorized.outputs.changelog }}"
echo "${{ steps.task_release_changelog_uncategorized.outputs.changelog }}"
echo "---- CHANGELOG ---------------------------------------------------------------"
echo ""
echo ""
echo "---- VARIABLES ---------------------------------------------------------------"
echo "Package Version ............ ${{ env.PACKAGE_VERSION }}"
echo "Tag: Previous .............. ${{ env.TAG_LAST }}"
echo "Tag: Now.... ............... ${{ github.ref }}"
echo "Last Commit ................ ${{ env.COMMIT_LAST }}"
echo "ST Output ID ............... ${{ steps.task_release_bundle_st.outputs.id }}"
echo "RC Output ID ............... ${{ steps.task_release_bundle_rc.outputs.id }}"
echo "---- CHANGELOG ---------------------------------------------------------------"