mirror of
https://github.com/nocobase/nocobase.git
synced 2026-09-01 14:57:36 +08:00
chore(ci): publish pkg registries per package
This commit is contained in:
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user