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 XDG_CACHE_HOME="$PWD/.cache" mkdir -p "$COREPACK_HOME" "$XDG_CACHE_HOME" corepack prepare pnpm@10.28.0 corepack pnpm install --frozen-lockfile corepack pnpm build corepack pnpm publish --no-git-checks --registry "$REGISTRY_URL" '