build: determine electron version from tags not files (#36106)
* build: determine electron version from tags not files * build: make electron_version dependent on packed-refs and git HEAD * build: do not delete electron/.git * build: do not revert a commit we didn't make * build: gen version file instead of just writing it * build: update cache and ninja targets * build: copy resource.h to generated electron.rc * build: electron_win32_resources should be public deps * build: also copy the icon
This commit is contained in:
parent
ad289d120f
commit
7ca2bb5f9c
18 changed files with 145 additions and 260 deletions
20
script/lib/get-version.js
Normal file
20
script/lib/get-version.js
Normal file
|
@ -0,0 +1,20 @@
|
|||
const { spawnSync } = require('child_process');
|
||||
const rootPackageJson = require('../../package.json');
|
||||
|
||||
module.exports.getElectronVersion = () => {
|
||||
// Find the nearest tag to the current HEAD
|
||||
// This is equivilant to our old logic of "use a value in package.json" for the following reasons
|
||||
//
|
||||
// 1. Whenever we updated the package.json we ALSO pushed a tag with the same version
|
||||
// 2. Whenever we _reverted_ a bump all we actually did was push a commit that deleted the tag and changed the version number back
|
||||
//
|
||||
// The only difference in the "git describe" technique is that technically a commit can "change" it's version
|
||||
// number if a tag is created / removed retroactively. i.e. the first time a commit is pushed it will be 1.2.3
|
||||
// and after the tag is made rebuilding the same commit will result in it being 1.2.4
|
||||
const output = spawnSync('git', ['describe', '--tags', '--abbrev=0']);
|
||||
if (output.status !== 0) {
|
||||
console.error(output.stderr);
|
||||
throw new Error('Failed to get current electron version');
|
||||
}
|
||||
return output.stdout.toString().trim();
|
||||
};
|
Loading…
Add table
Add a link
Reference in a new issue