comcigan.ts/.forgejo/workflows/publish-forgejo-npm.yml

43 lines
1.4 KiB
YAML

name: Publish to Forgejo npm Registry
on:
push:
tags:
- "v*"
workflow_dispatch:
jobs:
publish:
runs-on: native
env:
NODE_AUTH_TOKEN: ${{ secrets.FORGEJO_NPM_TOKEN }}
REGISTRY_URL: https://git.mizuki.guru/api/packages/imnyang/npm/
SCOPE: imnyang
steps:
- name: Checkout
uses: https://code.forgejo.org/actions/checkout@v4
- name: Configure npm auth for Forgejo registry
run: |
REGISTRY_HOST="${REGISTRY_URL#https://}"
REGISTRY_HOST="${REGISTRY_HOST#http://}"
{
echo "@${SCOPE}:registry=${REGISTRY_URL}"
echo "//${REGISTRY_HOST}:_authToken=${NODE_AUTH_TOKEN}"
echo "always-auth=true"
} > "$HOME/.npmrc"
- name: Install, build, and publish in Nix shell
run: |
source /etc/bashrc
nix shell --extra-experimental-features nix-command --extra-experimental-features flakes nixpkgs#nodejs_24 -c sh -lc '
export COREPACK_HOME="$PWD/.corepack"
export PNPM_HOME="$PWD/.pnpm-home"
export PATH="$PNPM_HOME:$PATH"
mkdir -p "$COREPACK_HOME" "$PNPM_HOME"
corepack enable
corepack prepare pnpm@10.28.0 --activate
pnpm install --frozen-lockfile
pnpm build
pnpm publish --no-git-checks --registry "$REGISTRY_URL"
'