Files
vitanovaPackages/.github/workflows/release.yml
sdarbinyan 42bd01db3f
Some checks failed
Release / release (push) Has been cancelled
ci: add PR workflow, make release fail loudly when registry is unreachable, document setup
2026-08-18 01:46:04 +04:00

67 lines
2.1 KiB
YAML

name: Release
on:
push:
branches:
- main
# Requires two repo secrets:
# NPM_REGISTRY_URL - full URL of the Verdaccio registry, reachable FROM THE RUNNER.
# Not set yet: the registry currently listens on 127.0.0.1:4873 on
# the dev server and the firewall allows only 80/443/SSH, so no
# external runner can reach it. Until that is resolved this job
# will fail at the publish step by design, rather than silently
# skipping the release. See docs/PACKAGE-EXTRACTION.md in the
# marketplaces repo.
# NPM_TOKEN - publish token for that registry (npm login --registry=<url>).
jobs:
release:
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 20
cache: npm
- name: Install dependencies
run: npm ci
- name: Build
run: npm run build
- name: Test
run: npm test
- name: Configure registry auth
run: |
if [ -z "${{ secrets.NPM_REGISTRY_URL }}" ] || [ -z "${{ secrets.NPM_TOKEN }}" ]; then
echo "NPM_REGISTRY_URL and/or NPM_TOKEN are not set on this repo."
echo "The registry is not reachable from CI yet - see the comment at the top of this file."
exit 1
fi
REGISTRY="${{ secrets.NPM_REGISTRY_URL }}"
HOST_PATH="${REGISTRY#http://}"
HOST_PATH="${HOST_PATH#https://}"
{
echo "@marketplaces:registry=${REGISTRY}"
echo "//${HOST_PATH%/}/:_authToken=${{ secrets.NPM_TOKEN }}"
} >> .npmrc
- name: Create release PR or publish
uses: changesets/action@v1
with:
version: npm run version
publish: npm run release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}