Skip to content

Release preview

Release preview #109

Workflow file for this run

name: Release preview
on:
workflow_dispatch:
inputs:
force:
description: 'Ignore lockfile mismatch (pnpm install --no-frozen-lockfile)'
required: false
default: 'false'
jobs:
preview:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: 'Checkout'
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup pnpm
uses: pnpm/action-setup@v4
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: 24
cache: 'pnpm'
- name: Publish preview
env:
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
run: |
INSTALL_FLAGS="--frozen-lockfile"
if [[ "${{ inputs.force }}" == "true" ]]; then
# pnpm-аналог прежнего npm --force: единственное, что имеет смысл
# ослабить при ручном запуске — сверку локфайла. Сам --force у pnpm
# означает пересоздание локфайла и с --frozen-lockfile несовместим.
INSTALL_FLAGS="--no-frozen-lockfile"
echo "Lockfile check is disabled"
fi
git config --global user.email "robot@cloud.ru"
git config --global user.name "cloud-ru-tech-robot"
npm config --global set //registry.npmjs.org/:_authToken=${{ secrets.NPM_TOKEN }}
pnpm install $INSTALL_FLAGS
SHORT_SHA=$(echo $GITHUB_SHA | cut -c1-7)
pnpm exec lerna version prerelease --yes --exact --no-push --no-commit-hooks --preid "preview-$SHORT_SHA"
pnpm run build:packages
# catalog: разворачивает корневой prepack — см. комментарий в release.yml
pnpm exec lerna publish from-git --yes --dist-tag preview
shell: bash