Skip to content

release

release #505

Workflow file for this run

name: release
run-name: release
on:
push:
# NOTE: pushes from CI without a PAT will not trigger the tags below
tags:
- "jco-v[0-9]+.[0-9]+.[0-9]+*"
- "jco-v[0-9]+.[0-9]+.[0-9]+-*"
- "bare-jco-v[0-9]+.[0-9]+.[0-9]+*"
- "bare-jco-v[0-9]+.[0-9]+.[0-9]+-*"
- "jco-transpile-v[0-9]+.[0-9]+.[0-9]+*"
- "jco-transpile-v[0-9]+.[0-9]+.[0-9]+-*"
- "jco-std-v[0-9]+.[0-9]+.[0-9]+*"
- "jco-std-v[0-9]+.[0-9]+.[0-9]+-*"
- "preview2-shim-v[0-9]+.[0-9]+.[0-9]+*"
- "preview2-shim-v[0-9]+.[0-9]+.[0-9]+-*"
- "preview3-shim-v[0-9]+.[0-9]+.[0-9]+*"
- "preview3-shim-v[0-9]+.[0-9]+.[0-9]+-*"
- "js-component-bindgen-v[0-9]+.[0-9]+.[0-9]+*"
- "js-component-bindgen-v[0-9]+.[0-9]+.[0-9]+-*"
branches:
- "prep-release-jco-v[0-9]+.[0-9]+.[0-9]+*"
- "prep-release-jco-v[0-9]+.[0-9]+.[0-9]+-*"
- "prep-release-bare-jco-v[0-9]+.[0-9]+.[0-9]+*"
- "prep-release-bare-jco-v[0-9]+.[0-9]+.[0-9]+-*"
- "prep-release-jco-transpile-v[0-9]+.[0-9]+.[0-9]+*"
- "prep-release-jco-transpile-v[0-9]+.[0-9]+.[0-9]+-*"
- "prep-release-jco-std-v[0-9]+.[0-9]+.[0-9]+*"
- "prep-release-jco-std-v[0-9]+.[0-9]+.[0-9]+-*"
- "prep-release-preview2-shim-v[0-9]+.[0-9]+.[0-9]+*"
- "prep-release-preview2-shim-v[0-9]+.[0-9]+.[0-9]+-*"
- "prep-release-preview3-shim-v[0-9]+.[0-9]+.[0-9]+*"
- "prep-release-preview3-shim-v[0-9]+.[0-9]+.[0-9]+-*"
- "prep-release-js-component-bindgen-v[0-9]+.[0-9]+.[0-9]+*"
- "prep-release-js-component-bindgen-v[0-9]+.[0-9]+.[0-9]+-*"
workflow_dispatch:
inputs:
project:
type: choice
required: true
default: "jco"
options:
- jco
- bare-jco
- jco-transpile
- jco-std
- js-component-bindgen
- preview2-shim
- preview3-shim
description: |
Project to tag for release (ex. `0.1.0`)
version:
type: string
required: true
description: |
Version tag to release (e.x. `0.1.0`, `0.2.0`)
permissions:
contents: none
jobs:
meta:
runs-on: ubuntu-24.04
outputs:
version: ${{ steps.meta.outputs.version }}
project: ${{ steps.meta.outputs.project }}
project-dir: ${{ steps.project-meta.outputs.project-dir }}
project-package-name: ${{ steps.project-meta.outputs.project-package-name }}
is-js-project: ${{ steps.project-meta.outputs.is-js-project }}
is-rust-project: ${{ steps.project-meta.outputs.is-rust-project }}
artifacts-glob: ${{ steps.project-meta.outputs.artifacts-glob }}
artifact-name: ${{ steps.project-meta.outputs.artifact-name }}
next-release-tag: ${{ steps.project-meta.outputs.next-release-tag }}
is-prerelease: ${{ steps.project-meta.outputs.is-prerelease }}
prerelease-tag: ${{ steps.project-meta.outputs.prerelease-tag }}
steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
persist-credentials: false
- name: install cargo-get
uses: taiki-e/cache-cargo-install-action@417450f3c33ee20393705369577571770643d4c7 # v3.0.7
with:
tool: cargo-get
- uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
with:
node-version: ">=22"
- uses: pnpm/action-setup@0ebf47130e4866e96fce0953f49152a61190b271 # v6.0.9
with:
version: 11
- name: Cache node modules
id: cache-node-modules
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
with:
key: node-modules-dev-${{ runner.os }}-${{ runner.arch }}-${{ hashFiles('pnpm-lock.yaml') }}
path: |
node_modules
- name: Install debug packages
run: |
pnpm install -D
- name: Collect metadata
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
id: meta
with:
script: |
if (context.payload.inputs?.project && context.payload.inputs?.version) {
core.setOutput('project', context.payload.inputs.project);
core.setOutput('version', context.payload.inputs.version);
return;
}
if (context.ref.startsWith('refs/tags/')) {
match = context.ref.replace('refs/tags/', '').match(/^(.*)-v([^\s]+)$/);
} else if (context.ref.startsWith('refs/heads/')) {
match = context.ref.replace('refs/heads/', '').match(/^prep-release-(.+)-v([^\s]+)$/);
} else {
throw new Error(`Unexpected context ref [${context.ref}]`);
}
if (!match) { throw new Error(`Failed to parse tag/branch: [${context.ref}]`); }
const [_, project, version] = match;
core.setOutput('project', project);
core.setOutput('version', version);
- name: Gather project metadata
id: project-meta
env:
NEXT_VERSION: ${{ steps.meta.outputs.version }}
PROJECT: ${{ steps.meta.outputs.project }}
shell: bash
run: |
if [[ "$NEXT_VERSION" == v* ]]; then
echo "::error::next version [$NEXT_VERSION] starts with 'v' -- enter only the semver version (ex. '0.1.0', not 'v0.1.0')";
exit 1;
fi
case "$PROJECT" in
jco)
export PROJECT_DIR="$PWD/packages/$PROJECT";
export PROJECT_PACKAGE_NAME="@bytecodealliance/$PROJECT";
CURRENT_VERSION=$(node -e "process.stdout.write(require(process.env.PROJECT_DIR + '/package.json').version)");
export CURRENT_VERSION;
export IS_JS_PROJECT=true;
export ARTIFACTS_GLOB="packages/jco/bytecodealliance-jco-*.tgz";
export ARTIFACT_NAME="bytecodealliance-jco-$NEXT_VERSION.tgz";
;;
bare-jco)
export PROJECT_DIR="$PWD/packages/$PROJECT";
export PROJECT_PACKAGE_NAME="@bytecodealliance/$PROJECT";
CURRENT_VERSION=$(node -e "process.stdout.write(require(process.env.PROJECT_DIR + '/package.json').version)");
export CURRENT_VERSION;
export IS_JS_PROJECT=true;
export ARTIFACTS_GLOB="packages/bare-jco/bytecodealliance-jco-*.tgz";
export ARTIFACT_NAME="bytecodealliance-jco-$NEXT_VERSION.tgz";
;;
jco-transpile)
export PROJECT_DIR="$PWD/packages/$PROJECT";
export PROJECT_PACKAGE_NAME="@bytecodealliance/$PROJECT";
CURRENT_VERSION=$(node -e "process.stdout.write(require(process.env.PROJECT_DIR + '/package.json').version)");
export CURRENT_VERSION;
export IS_JS_PROJECT=true;
export ARTIFACTS_GLOB="packages/jco-transpile/bytecodealliance-jco-transpile-*.tgz";
export ARTIFACT_NAME="bytecodealliance-jco-transpile-$NEXT_VERSION.tgz";
;;
jco-std)
export PROJECT_DIR="$PWD/packages/$PROJECT";
export PROJECT_PACKAGE_NAME="@bytecodealliance/$PROJECT";
CURRENT_VERSION=$(node -e "process.stdout.write(require(process.env.PROJECT_DIR + '/package.json').version)");
export CURRENT_VERSION;
export IS_JS_PROJECT=true;
export ARTIFACTS_GLOB="packages/jco-std/bytecodealliance-jco-std-*.tgz";
export ARTIFACT_NAME="bytecodealliance-jco-std-$NEXT_VERSION.tgz";
;;
preview2-shim)
export PROJECT_DIR="$PWD/packages/$PROJECT";
export PROJECT_PACKAGE_NAME="@bytecodealliance/$PROJECT";
CURRENT_VERSION=$(node -e "process.stdout.write(require(process.env.PROJECT_DIR + '/package.json').version)");
export CURRENT_VERSION;
export IS_JS_PROJECT=true;
export ARTIFACTS_GLOB="packages/preview2-shim/bytecodealliance-preview2-shim-*.tgz";
export ARTIFACT_NAME="bytecodealliance-preview2-shim-$NEXT_VERSION.tgz";
;;
preview3-shim)
export PROJECT_DIR="$PWD/packages/$PROJECT";
export PROJECT_PACKAGE_NAME="@bytecodealliance/$PROJECT";
CURRENT_VERSION=$(node -e "process.stdout.write(require(process.env.PROJECT_DIR + '/package.json').version)");
export CURRENT_VERSION;
export IS_JS_PROJECT=true;
export ARTIFACTS_GLOB="packages/preview3-shim/bytecodealliance-preview3-shim-*.tgz";
export ARTIFACT_NAME="bytecodealliance-preview3-shim-$NEXT_VERSION.tgz";
;;
js-component-bindgen)
export PROJECT_DIR="$PWD/crates/$PROJECT";
export PROJECT_PACKAGE_NAME="$PROJECT";
CURRENT_VERSION=$(cargo get package.version --terminator Nul --entry="$PROJECT_DIR");
export CURRENT_VERSION;
export IS_RUST_PROJECT=true;
export ARTIFACTS_GLOB="target/package/js-component-bindgen-*.crate";
export ARTIFACT_NAME="js-component-bindgen-$NEXT_VERSION.crate";
;;
*)
echo "unexpected project type (neither Rust nor JS)";
exit 1;
esac
{
echo -e "project-dir=$PROJECT_DIR";
echo -e "project-package-name=$PROJECT_PACKAGE_NAME";
echo -e "is-rust-project=$IS_RUST_PROJECT";
echo -e "is-js-project=$IS_JS_PROJECT";
echo -e "artifacts-glob=$ARTIFACTS_GLOB";
echo -e "artifact-name=$ARTIFACT_NAME";
echo -e "next-release-tag=${PROJECT}-v${NEXT_VERSION}";
} >> "$GITHUB_OUTPUT";
IS_PRERELEASE="$(node scripts/semver-is-prerelease.mjs "$NEXT_VERSION")";
export IS_PRERELEASE;
echo -e "is-prerelease=$IS_PRERELEASE" >> "$GITHUB_OUTPUT";
PRERELEASE_TAG="$(node scripts/semver-get-prerelease.mjs "$NEXT_VERSION")";
export PRERELEASE_TAG;
echo -e "prerelease-tag=$PRERELEASE_TAG" >> "$GITHUB_OUTPUT";
pack-crate-release:
if: ${{ needs.meta.outputs.is-rust-project == 'true' }}
runs-on: ubuntu-24.04
needs:
- meta
permissions:
actions: write
id-token: write
attestations: write
steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
fetch-depth: 0
persist-credentials: false
- uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1
with:
shared-key: jco-${{ hashFiles('Cargo.lock') }}
lookup-only: true
- name: Release crate (dry run)
working-directory: ${{ needs.meta.outputs.project-dir }}
run: |
cargo publish --locked --dry-run
- name: Create release package
working-directory: ${{ needs.meta.outputs.project-dir }}
run: |
cargo package
- uses: actions/attest-build-provenance@0f67c3f4856b2e3261c31976d6725780e5e4c373 # v4.1.1
with:
subject-path: ${{ needs.meta.outputs.artifacts-glob }}
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
if-no-files-found: error
name: ${{ needs.meta.outputs.project }}
path: |
${{ needs.meta.outputs.artifacts-glob }}
pack-npm-release:
if: ${{ needs.meta.outputs.is-js-project == 'true' }}
runs-on: ubuntu-24.04
needs:
- meta
permissions:
id-token: write
attestations: write
steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
fetch-depth: 0
persist-credentials: false
- uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1
with:
shared-key: jco-${{ hashFiles('Cargo.lock') }}
lookup-only: true
# NOTE: we must use a node version new-enough to have --experimental-wasm-jspi
- uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
with:
node-version: ">=22"
- uses: pnpm/action-setup@0ebf47130e4866e96fce0953f49152a61190b271 # v6.0.9
with:
version: 11
- name: Cache node modules
id: cache-node-modules
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
with:
key: node-modules-${{ runner.os }}-${{ runner.arch }}-${{ hashFiles('pnpm-lock.yaml') }}
path: |
node_modules
- name: Install NPM packages
run: |
pnpm install
- name: Create release package
working-directory: ${{ needs.meta.outputs.project-dir }}
env:
PROJECT_PACKAGE_NAME: ${{ needs.meta.outputs.project-package-name }}
run: |
pnpm --filter "$PROJECT_PACKAGE_NAME" pack
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
if-no-files-found: error
name: ${{ needs.meta.outputs.project }}
path: |
${{ needs.meta.outputs.artifacts-glob }}
- name: Print package size
env:
ARTIFACT_GLOB: ${{ needs.meta.outputs.artifacts-glob }}
run: |
wc -c "$ARTIFACT_GLOB"
test-crate-release:
runs-on: ubuntu-24.04
needs:
- meta
- pack-crate-release
steps:
- uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
path: gh-artifacts
- name: Test built crates.io crate
if: ${{ needs.meta.outputs.project == 'js-component-bindgen' }}
env:
PROJECT: ${{ needs.meta.outputs.project }}
ARTIFACT_NAME: ${{ needs.meta.outputs.artifact-name }}
shell: bash
run: |
mkdir -p "/tmp/$PROJECT"
cp -r gh-artifacts/* "/tmp/$PROJECT/"
cd "/tmp/$PROJECT"
tar --strip-components=1 -xvf "$ARTIFACT_NAME"
rm Cargo.toml.orig
cargo build
test-npm-release:
runs-on: ubuntu-24.04
needs:
- meta
- pack-npm-release
steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
persist-credentials: false
- uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
path: gh-artifacts
- uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
with:
node-version: ">=22"
- uses: pnpm/action-setup@0ebf47130e4866e96fce0953f49152a61190b271 # v6.0.9
with:
version: 11
# NOTE: jco-transpile packed should be ~2.1MB
- name: Test jco-transpile package size
if: ${{ needs.meta.outputs.project == 'jco-transpile' }}
shell: bash
env:
ARTIFACT_NAME: ${{ needs.meta.outputs.artifact-name }}
GH_WORKSPACE: ${{ github.workspace }}
run: |
export FILE="$GH_WORKSPACE/gh-artifacts/$ARTIFACT_NAME";
SIZE=$(wc -c < "$FILE");
MAX_SIZE=$((3 * 1024 * 1024));
echo -e "jco-transpile package size ${SIZE} bytes";
if (( SIZE > MAX_SIZE )); then
echo "::error:: next jco-transpile NPM package artifacts should less than 3MB";
exit 1;
fi
- name: Test built jco NPM package
if: ${{ needs.meta.outputs.project == 'jco' }}
shell: bash
env:
ARTIFACT_NAME: ${{ needs.meta.outputs.artifact-name }}
GH_WORKSPACE: ${{ github.workspace }}
run: |
export PACKAGE_DIR="$GH_WORKSPACE/gh-artifacts/$ARTIFACT_NAME"
cp -r examples/components/http-hello-world /tmp/test
cd /tmp/test
pnpm install --save "$PACKAGE_DIR"
pnpm run all
- name: Test built jco-transpile NPM package
if: ${{ needs.meta.outputs.project == 'jco-transpile' }}
shell: bash
env:
ARTIFACT_NAME: ${{ needs.meta.outputs.artifact-name }}
GH_WORKSPACE: ${{ github.workspace }}
run: |
export PACKAGE_DIR="$GH_WORKSPACE/gh-artifacts/$ARTIFACT_NAME"
cp -r examples/transpile/adder /tmp/test
cd /tmp/test
pnpm install --save "$PACKAGE_DIR"
pnpm run all
crate-publish:
runs-on: ubuntu-24.04
needs:
- meta
- test-crate-release
permissions:
id-token: write
attestations: write
steps:
- uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
path: gh-artifacts
- uses: rust-lang/crates-io-auth-action@c6f97d42243bad5fab37ca0427f495c86d5b1a18 # v1.0.5
id: auth
- name: Publish ${{ needs.meta.outputs.project }} to crates.io
env:
CARGO_REGISTRY_TOKEN: ${{ steps.auth.outputs.token }}
PROJECT: ${{ needs.meta.outputs.project }}
ARTIFACT_NAME: ${{ needs.meta.outputs.artifact-name }}
GH_REF_TYPE: ${{ github.ref_type }}
run: |
export OPT_DRY_RUN="--dry-run"
if [ "tag" == "$GH_REF_TYPE" ]; then
export OPT_DRY_RUN="";
fi
mkdir -p "/tmp/$PROJECT"
cp -r gh-artifacts/* "/tmp/$PROJECT/"
cd "/tmp/$PROJECT"
tar --strip-components=1 -xvf "$ARTIFACT_NAME"
rm Cargo.toml.orig
cargo publish $OPT_DRY_RUN
npm-publish:
runs-on: ubuntu-24.04
needs:
- meta
- test-npm-release
permissions:
id-token: write
attestations: write
steps:
# NOTE: We need to checkout to pull npmrc
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
persist-credentials: false
- uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
with:
node-version: ">=22"
- uses: pnpm/action-setup@0ebf47130e4866e96fce0953f49152a61190b271 # v6.0.9
with:
version: 11
- uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
path: gh-artifacts
# NOTE: We install node modules because the pre-pack for various projects may require
# the cargo xtask build in release mode (even though we're using),
- name: Cache npm install
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
with:
key: node-modules-${{ runner.os }}-${{ runner.arch }}-${{ hashFiles('pnpm-lock.yaml') }}
path: |
node_modules
- name: Install node modules
run: |
pnpm install
- name: Publish ${{ needs.meta.outputs.project }} to NPM
shell: bash
env:
PROJECT: ${{ needs.meta.outputs.project }}
ARTIFACT_NAME: ${{ needs.meta.outputs.artifact-name }}
IS_PRERELEASE: ${{ needs.meta.outputs.is-prerelease }}
PRERELEASE_TAG: ${{ needs.meta.outputs.prerelease-tag }}
GH_WORKSPACE: ${{ github.workspace }}
GH_REF_TYPE: ${{ github.ref_type }}
IS_TAG: ${{ github.ref_type == 'tag' }}
run: |
export PACKAGE_FILE_PATH="$GH_WORKSPACE/gh-artifacts/$ARTIFACT_NAME"
export OPT_DRY_RUN="--dry-run"
if [ "tag" == "$GH_REF_TYPE" ]; then
export OPT_DRY_RUN="";
fi
export OPT_RELEASE_TAG=""
if [ "true" == "$IS_PRERELEASE" ]; then
export OPT_RELEASE_TAG="--tag $PRERELEASE_TAG";
fi
export OPT_NO_GIT_CHECKS=""
if [ "true" == "$IS_TAG" ]; then
export OPT_NO_GIT_CHECKS="--no-git-checks";
fi
pnpm publish \
--filter "@bytecodealliance/$PROJECT" \
--verbose \
--access=public \
--provenance \
"$OPT_DRY_RUN" \
"$OPT_RELEASE_TAG" \
"$OPT_NO_GIT_CHECKS" \
"$PACKAGE_FILE_PATH"
create-gh-release:
runs-on: ubuntu-24.04
if: always()
needs:
- meta
- test-crate-release
- test-npm-release
- npm-publish
- crate-publish
permissions:
contents: write
steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
fetch-depth: 0
persist-credentials: false
- uses: pnpm/action-setup@0ebf47130e4866e96fce0953f49152a61190b271 # v6.0.9
with:
version: 11
- name: install git-cliff
uses: taiki-e/cache-cargo-install-action@417450f3c33ee20393705369577571770643d4c7 # v3.0.7
with:
tool: git-cliff
- uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
path: gh-artifacts
- name: extract latest changelog section
env:
OUTPUT_PATH: ${{ needs.meta.outputs.project-dir }}/CHANGELOG.latest
CHANGELOG_PATH: ${{ needs.meta.outputs.project-dir }}/CHANGELOG.md
run: |
node scripts/extract-latest-changelog-section.mjs
- name: Create GH release
if: ${{ github.ref_type == 'tag' }}
uses: softprops/action-gh-release@718ea10b132b3b2eba29c1007bb80653f286566b # v3.0.1
with:
token: ${{ secrets.RELEASE_PAT || github.token }}
prerelease: ${{ needs.meta.outputs.is-prerelease == 'true' }}
tag_name: ${{ needs.meta.outputs.next-release-tag }}
generate_release_notes: false
body_path: ${{ needs.meta.outputs.project-dir }}/CHANGELOG.latest
make_latest: ${{ needs.meta.outputs.project == 'jco' && github.ref_type == 'tag' && needs.meta.outputs.is-prerelease == 'false' }}
files: |
./gh-artifacts/*
- name: Cache node modules
continue-on-error: true
id: cache-node-modules
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
with:
key: node-modules-dev-${{ runner.os }}-${{ runner.arch }}-${{ hashFiles('pnpm-lock.yaml') }}
path: |
node_modules
- name: Install debug NPM packages
run: |
pnpm install -D
- name: Update related PRs with release note
continue-on-error: true
if: ${{ github.repository_owner == 'bytecodealliance' && github.ref_type == 'tag' }}
env:
IS_PRE_RELEASE: ${{ needs.meta.outputs.is-prerelease }}
GITHUB_TOKEN: ${{ secrets.RELEASE_PAT || github.token }}
GITHUB_OWNER: ${{ github.repository_owner }}
GITHUB_REPO: ${{ github.repository }}
PRE_RELEASE_TAG_PATTERN: "^${{ needs.meta.outputs.project }}-v[0-9]+.[0-9]+.[0-9]+(-beta|-rc|-alpha)?"
DEFAULT_TAG_PATTERN: "^${{ needs.meta.outputs.project }}-v[0-9]+.[0-9]+.[0-9]+$"
GIT_CLIFF_CONFIG_PATH: ${{ needs.meta.outputs.project-dir }}/cliff.toml
GIT_CLIFF_REPOSITORY: ${{ github.workspace }}/.git
GIT_CLIFF_RELEASE_TAG: ${{ needs.meta.outputs.next-release-tag }}
run: |
export GIT_CLIFF_TAG_PATTERN=$DEFAULT_TAG_PATTERN;
if [ "true" == "$IS_PRE_RELEASE" ]; then
export GIT_CLIFF_TAG_PATTERN=$PRE_RELEASE_TAG_PATTERN;
fi
node scripts/post-release-issue-update.mjs