@@ -13,6 +13,7 @@ permissions:
1313jobs :
1414 integration :
1515 name : integration node v24 macos-15-intel
16+ if : github.event.release.prerelease == false
1617 runs-on : macos-15-intel
1718
1819 steps :
2930
3031 publish :
3132 name : publish to npmjs
33+ if : github.event.release.prerelease == false
3234 runs-on : ubuntu-latest
3335 needs : integration
3436
7779 - name : verify cli runtime dependency tree
7880 run : npm ls --omit=dev --all --prefix packages/cli
7981
82+ - name : check appdmg npm package version
83+ id : npm_appdmg
84+ run : |
85+ package_name="$(node -p "require('./package.json').name")"
86+ package_version="$(node -p "require('./package.json').version")"
87+
88+ if npm view "${package_name}@${package_version}" version --json >/dev/null 2>&1; then
89+ echo "exists=true" >> "$GITHUB_OUTPUT"
90+ else
91+ echo "exists=false" >> "$GITHUB_OUTPUT"
92+ fi
93+
94+ echo "package=${package_name}@${package_version}" >> "$GITHUB_OUTPUT"
95+
96+ - name : check cli npm package version
97+ id : npm_cli
98+ run : |
99+ package_name="$(node -p "require('./packages/cli/package.json').name")"
100+ package_version="$(node -p "require('./packages/cli/package.json').version")"
101+
102+ if npm view "${package_name}@${package_version}" version --json >/dev/null 2>&1; then
103+ echo "exists=true" >> "$GITHUB_OUTPUT"
104+ else
105+ echo "exists=false" >> "$GITHUB_OUTPUT"
106+ fi
107+
108+ echo "package=${package_name}@${package_version}" >> "$GITHUB_OUTPUT"
109+
80110 - name : pack appdmg package
111+ if : steps.npm_appdmg.outputs.exists == 'false'
81112 id : pack_appdmg
82113 run : |
83114 mkdir -p dist/appdmg
87118 echo "tarball=$tarball" >> "$GITHUB_OUTPUT"
88119
89120 - name : pack cli package
121+ if : steps.npm_cli.outputs.exists == 'false'
90122 id : pack_cli
91123 run : |
92124 mkdir -p dist/cli
@@ -99,24 +131,28 @@ jobs:
99131 echo "tarball=$tarball" >> "$GITHUB_OUTPUT"
100132
101133 - name : attest npm package artifacts
134+ if : steps.npm_appdmg.outputs.exists == 'false' || steps.npm_cli.outputs.exists == 'false'
102135 uses : actions/attest@v4
103136 with :
104137 subject-path : dist/**/*.tgz
105138
106139 - name : upload npm package artifacts
140+ if : steps.npm_appdmg.outputs.exists == 'false' || steps.npm_cli.outputs.exists == 'false'
107141 uses : actions/upload-artifact@v4
108142 with :
109143 name : npm-packages
110144 path : dist/**/*.tgz
111145 if-no-files-found : error
112146
113147 - name : publish appdmg package
148+ if : steps.npm_appdmg.outputs.exists == 'false'
114149 run : npm publish "$TARBALL" --provenance --access public
115150 env :
116151 TARBALL : ${{ steps.pack_appdmg.outputs.tarball }}
117152 NODE_AUTH_TOKEN : ${{ secrets.NPM_TOKEN }}
118153
119154 - name : publish cli package
155+ if : steps.npm_cli.outputs.exists == 'false'
120156 run : npm publish "$TARBALL" --provenance --access public
121157 env :
122158 TARBALL : ${{ steps.pack_cli.outputs.tarball }}
0 commit comments