|
34 | 34 | type: string |
35 | 35 | default: '' |
36 | 36 |
|
| 37 | + package-overrides: |
| 38 | + description: 'JSON object mapping mono-repo sub-package to its specific inputs.' |
| 39 | + required: false |
| 40 | + type: string |
| 41 | + default: '{}' |
| 42 | + |
37 | 43 | secrets: |
38 | 44 | ACCESS_TOKEN: |
39 | 45 | required: true |
@@ -73,11 +79,14 @@ jobs: |
73 | 79 | ORIGINAL_TAG_NAME="${PACKAGE_NAME}/${VERSION_TAG}" |
74 | 80 | else |
75 | 81 | # Monolith mode: label format is v<semver>. |
| 82 | + PACKAGE_NAME="" |
76 | 83 | RELEASE_VERSION="${RELEASE_LABEL#v}" |
77 | 84 | RELEASE_TITLE="${RELEASE_VERSION}" |
78 | 85 | ORIGINAL_TAG_NAME="${RELEASE_LABEL}" |
79 | 86 | fi |
80 | 87 |
|
| 88 | + printf 'package_name=%s\n' "$PACKAGE_NAME" >> "$GITHUB_OUTPUT" |
| 89 | +
|
81 | 90 | TAG_COMMIT_HASH=$(git rev-list -n 1 "$ORIGINAL_TAG_NAME") |
82 | 91 |
|
83 | 92 | if [ -z "$TAG_COMMIT_HASH" ]; then |
@@ -116,6 +125,38 @@ jobs: |
116 | 125 |
|
117 | 126 | printf 'enabled=true\n' >> "$GITHUB_OUTPUT" |
118 | 127 |
|
| 128 | + - name: 📝 Resolve NPM Config |
| 129 | + id: resolve_npm_config |
| 130 | + if: steps.verify_npm_token.outputs.enabled == 'true' |
| 131 | + env: |
| 132 | + PACKAGE_NAME: ${{ steps.extract_tag.outputs.package_name }} |
| 133 | + PACKAGE_OVERRIDES: ${{ inputs.package-overrides }} |
| 134 | + DEFAULT_NODE_VERSION: ${{ inputs.npm-node-version }} |
| 135 | + DEFAULT_PACKAGE_DIR: ${{ inputs.npm-package-dir }} |
| 136 | + DEFAULT_DEPLOY_COMMAND: ${{ inputs.npm-deploy-command }} |
| 137 | + run: | |
| 138 | + NODE_VERSION="$DEFAULT_NODE_VERSION" |
| 139 | + PACKAGE_DIR="$DEFAULT_PACKAGE_DIR" |
| 140 | + DEPLOY_COMMAND="$DEFAULT_DEPLOY_COMMAND" |
| 141 | +
|
| 142 | + if [ -n "$PACKAGE_NAME" ]; then |
| 143 | + OVERRIDE=$(printf '%s' "$PACKAGE_OVERRIDES" | jq -c --arg pkg "$PACKAGE_NAME" '.[$pkg] // empty') |
| 144 | +
|
| 145 | + if [ -n "$OVERRIDE" ]; then |
| 146 | + OVERRIDE_NODE_VERSION=$(printf '%s' "$OVERRIDE" | jq -r '."npm-node-version" // empty') |
| 147 | + OVERRIDE_PACKAGE_DIR=$(printf '%s' "$OVERRIDE" | jq -r '."npm-package-dir" // empty') |
| 148 | + OVERRIDE_DEPLOY_COMMAND=$(printf '%s' "$OVERRIDE" | jq -r '."npm-deploy-command" // empty') |
| 149 | +
|
| 150 | + [ -n "$OVERRIDE_NODE_VERSION" ] && NODE_VERSION="$OVERRIDE_NODE_VERSION" |
| 151 | + [ -n "$OVERRIDE_PACKAGE_DIR" ] && PACKAGE_DIR="$OVERRIDE_PACKAGE_DIR" |
| 152 | + [ -n "$OVERRIDE_DEPLOY_COMMAND" ] && DEPLOY_COMMAND="$OVERRIDE_DEPLOY_COMMAND" |
| 153 | + fi |
| 154 | + fi |
| 155 | +
|
| 156 | + printf 'npm_node_version=%s\n' "$NODE_VERSION" >> "$GITHUB_OUTPUT" |
| 157 | + printf 'npm_package_dir=%s\n' "$PACKAGE_DIR" >> "$GITHUB_OUTPUT" |
| 158 | + printf 'npm_deploy_command=%s\n' "$DEPLOY_COMMAND" >> "$GITHUB_OUTPUT" |
| 159 | +
|
119 | 160 | - name: 🔍 Verify TRB Inputs |
120 | 161 | id: verify_trb_inputs |
121 | 162 | run: | |
@@ -147,9 +188,9 @@ jobs: |
147 | 188 | if: steps.verify_npm_token.outputs.enabled == 'true' |
148 | 189 | uses: ./.release-workflow/.github/actions/npm-publish |
149 | 190 | with: |
150 | | - node-version: ${{ inputs.npm-node-version }} |
151 | | - package-dir: ${{ inputs.npm-package-dir }} |
152 | | - deploy-command: ${{ inputs.npm-deploy-command }} |
| 191 | + node-version: ${{ steps.resolve_npm_config.outputs.npm_node_version }} |
| 192 | + package-dir: ${{ steps.resolve_npm_config.outputs.npm_package_dir }} |
| 193 | + deploy-command: ${{ steps.resolve_npm_config.outputs.npm_deploy_command }} |
153 | 194 | access-token: ${{ secrets.NPM_TOKEN }} |
154 | 195 |
|
155 | 196 | - name: 🚀 Bump TRB Project Node Version |
|
0 commit comments