chore(ci): publish pkg registries per package

This commit is contained in:
xilesun
2026-03-25 22:37:46 +08:00
parent 0c9ba6c2a0
commit ddc4318d37
+36 -9
View File
@@ -61,8 +61,10 @@ jobs:
DIST_TAG="${{ steps.get-info.outputs.defaultTag }}"
if [[ -n "$DIST_TAG" ]]; then
echo "DIST_TAG_ARG=--dist-tag=$DIST_TAG" >> $GITHUB_ENV
echo "NPM_TAG_ARG=--tag=$DIST_TAG" >> $GITHUB_ENV
else
echo "DIST_TAG_ARG=" >> $GITHUB_ENV
echo "NPM_TAG_ARG=" >> $GITHUB_ENV
fi
- name: Validate v1 tag exists in all selected repos
@@ -167,24 +169,33 @@ jobs:
shell: bash
run: |
set -euo pipefail
PACKAGE_NAMES=$(
PACKAGE_JSONS=$(
find packages/pro-plugins -name package.json \
-not -path '*/node_modules/*' \
-not -path 'packages/pro-plugins/package.json' \
-exec jq -r 'select(.private != true) | .name' {} + \
-exec jq -r 'select(.private != true) | input_filename' {} + \
| sort
)
SCOPE_ARGS=$(printf '%s\n' "$PACKAGE_NAMES" | sed '/^$/d; s/^/--scope /' | xargs)
if [[ -n "$SCOPE_ARGS" ]]; then
if [[ -n "$PACKAGE_JSONS" ]]; then
echo "Packages to publish:"
printf '%s\n' "$PACKAGE_NAMES"
while IFS= read -r package_json; do
[[ -n "$package_json" ]] || continue
jq -r '.name' "$package_json"
done <<< "$PACKAGE_JSONS"
echo "count=1" >> "$GITHUB_OUTPUT"
echo "args=$SCOPE_ARGS" >> "$GITHUB_OUTPUT"
{
echo 'package_jsons<<EOF'
printf '%s\n' "$PACKAGE_JSONS"
echo 'EOF'
} >> "$GITHUB_OUTPUT"
else
echo "No pro plugin packages to publish."
echo "count=0" >> "$GITHUB_OUTPUT"
echo "args=" >> "$GITHUB_OUTPUT"
{
echo 'package_jsons<<EOF'
echo 'EOF'
} >> "$GITHUB_OUTPUT"
fi
- name: publish pkg.nocobase.com
if: ${{ steps.pro-plugin-scopes.outputs.count != '0' }}
@@ -192,7 +203,15 @@ jobs:
run: |
git reset --hard
npm config set //pkg.nocobase.com/:_authToken=${{ env.PKG_NOCOBASE_TOKEN }}
yarn release:force --no-verify-access --no-git-reset --registry https://pkg.nocobase.com $DIST_TAG_ARG ${{ steps.pro-plugin-scopes.outputs.args }}
while IFS= read -r package_json; do
[[ -n "$package_json" ]] || continue
package_dir=$(dirname "$package_json")
package_name=$(jq -r '.name' "$package_json")
echo "Publishing $package_name to pkg.nocobase.com"
npm publish "$package_dir" --registry https://pkg.nocobase.com $NPM_TAG_ARG
done <<'EOF'
${{ steps.pro-plugin-scopes.outputs.package_jsons }}
EOF
- name: publish pkg-src.nocobase.com
if: ${{ steps.pro-plugin-scopes.outputs.count != '0' }}
shell: bash
@@ -200,7 +219,15 @@ jobs:
git reset --hard
bash generate-npmignore.sh ignore-src
npm config set //pkg-src.nocobase.com/:_authToken=${{ env.PKG_SRC_NOCOBASE_TOKEN }}
yarn release:force --no-verify-access --no-git-reset --registry https://pkg-src.nocobase.com $DIST_TAG_ARG ${{ steps.pro-plugin-scopes.outputs.args }}
while IFS= read -r package_json; do
[[ -n "$package_json" ]] || continue
package_dir=$(dirname "$package_json")
package_name=$(jq -r '.name' "$package_json")
echo "Publishing $package_name to pkg-src.nocobase.com"
npm publish "$package_dir" --registry https://pkg-src.nocobase.com $NPM_TAG_ARG
done <<'EOF'
${{ steps.pro-plugin-scopes.outputs.package_jsons }}
EOF
push-docker:
runs-on: ubuntu-latest
needs: