Skip to content

Commit 511bd84

Browse files
committed
work with published release instead of draft release
add beta/latest tag with `npm publish`
1 parent cd1c510 commit 511bd84

File tree

2 files changed

+22
-18
lines changed

2 files changed

+22
-18
lines changed

script/publish-to-npm.js

Lines changed: 20 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,8 @@ const jsonFields = [
4040
'keywords'
4141
]
4242

43+
let npmTag = ''
44+
4345
new Promise((resolve, reject) => {
4446
temp.mkdir('electron-npm', (err, dirPath) => {
4547
if (err) {
@@ -74,19 +76,19 @@ new Promise((resolve, reject) => {
7476
})
7577
})
7678
.then((releases) => {
77-
// download electron.d.ts from draft release
78-
const draftRelease = releases.data.find(
79-
(release) => release.draft && release.tag_name === `v${rootPackageJson.version}`
80-
// (release) => release.draft && release.tag_name === `test`
79+
// download electron.d.ts from release
80+
const release = releases.data.find(
81+
(release) => release.tag_name === `v${rootPackageJson.version}`
8182
)
82-
if (!draftRelease) {
83+
if (!release) {
8384
throw new Error(`cannot find release with tag v${rootPackageJson.version}`)
8485
}
85-
return draftRelease.assets.find((asset) => asset.name === 'electron.d.ts')
86+
return release
8687
})
87-
.then((tsdAsset) => {
88+
.then((release) => {
89+
const tsdAsset = release.assets.find((asset) => asset.name === 'electron.d.ts')
8890
if (!tsdAsset) {
89-
throw new Error(`cannot find electron.d.ts from v${rootPackageJson.version} draft release assets`)
91+
throw new Error(`cannot find electron.d.ts from v${rootPackageJson.version} release assets`)
9092
}
9193
return new Promise((resolve, reject) => {
9294
request.get({
@@ -101,27 +103,27 @@ new Promise((resolve, reject) => {
101103
reject(err)
102104
} else {
103105
fs.writeFileSync(path.join(tempDir, 'electron.d.ts'), body)
104-
resolve()
106+
resolve(release)
105107
}
106108
})
107109
})
108110
})
111+
.then((release) => {
112+
npmTag = release.prerelease ? 'beta' : 'latest'
113+
})
109114
.then(() => childProcess.execSync('npm pack', { cwd: tempDir }))
110115
.then(() => {
111-
// test that the package can install electron prebuilt from /dist
112-
const distDir = path.join(__dirname, '..', 'dist')
116+
// test that the package can install electron prebuilt from github release
113117
const tarballPath = path.join(tempDir, `electron-${rootPackageJson.version}.tgz`)
114118
return new Promise((resolve, reject) => {
115119
childProcess.execSync(`npm install ${tarballPath} --force --silent`, {
116-
env: Object.assign({}, process.env, { electron_config_cache: distDir }),
120+
env: Object.assign({}, process.env, { electron_config_cache: tempDir }),
117121
cwd: tempDir
118122
})
119-
const checkVersion = childProcess.exec(`${path.join(tempDir, 'node_modules', '.bin', 'electron')} -v`)
120-
checkVersion.stdout.on('data', (data) => {
121-
assert.strictEqual(data.trim(), `v${rootPackageJson.version}`)
122-
resolve(tarballPath)
123-
})
123+
const checkVersion = childProcess.execSync(`${path.join(tempDir, 'node_modules', '.bin', 'electron')} -v`)
124+
assert.strictEqual(checkVersion.toString().trim(), `v${rootPackageJson.version}`)
125+
resolve(tarballPath)
124126
})
125127
})
126-
.then((tarballPath) => childProcess.execSync(`npm publish ${tarballPath}`))
128+
.then((tarballPath) => childProcess.execSync(`npm publish ${tarballPath} --tag ${npmTag}`))
127129
.catch((err) => console.error(`Error: ${err}`))

script/upload.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,8 @@ def main():
7272
# Press the publish button.
7373
publish_release(github, release['id'])
7474

75+
# TODO: run publish-to-npm script here
76+
7577
# Do not upload other files when passed "-p".
7678
return
7779

0 commit comments

Comments
 (0)