Skip to content
Permalink
Browse files
build: improve cordova-js version ID in built file (#230)
- uses `git describe` instead of `git rev-parse HEAD`
- fallback to version from package.json if not in a cordova-js repo
- rename and factor out buildId
  • Loading branch information
raphinesse committed Dec 1, 2020
1 parent f1ec5af commit ad5b74ad1c173c30bf8dc9f7b70cfe3d7122877e
Showing 3 changed files with 43 additions and 11 deletions.
@@ -0,0 +1,37 @@
/*!
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/

const fs = require('fs');
const path = require('path');
const execa = require('execa');
const { pkgRoot } = require('./common');

async function getBuildId () {
// Use git describe if in cordova-js repo, else use package version
return fs.existsSync(path.join(pkgRoot, '.git'))
? describeGitRepo()
: require('../package').version;
}

async function describeGitRepo () {
const gitArgs = ['describe', '--always', '--tags', '--match=rel/*', '--dirty'];
return (await execa('git', gitArgs, { cwd: pkgRoot })).stdout;
}

module.exports = getBuildId;
@@ -17,26 +17,21 @@
* under the License.
*/

const execa = require('execa');
const bundle = require('./bundle');
const scripts = require('./scripts');
const modules = require('./modules');
const { pkgRoot } = require('./common');
const getBuildId = require('./build-id');

module.exports = function build (userConfig) {
const config = Object.assign({ preprocess: x => x }, userConfig);

return Promise.all([
scripts(config),
modules(config),
getCommitId()
getBuildId()
])
.then(([scripts, modules, commitId]) => {
Object.assign(config, { commitId });
.then(([scripts, modules, buildId]) => {
Object.assign(config, { buildId });
return bundle(scripts, modules, config);
});
};

function getCommitId () {
return execa('git', ['rev-parse', 'HEAD'], { cwd: pkgRoot }).then(data => data.stdout);
}
@@ -27,14 +27,14 @@ module.exports = function bundle (scripts, modules, config) {
};

const bundleTemplate = ({
commitId,
buildId,
platformName,
platformVersion,
includeScript,
modules
}) => `
// Platform: ${platformName}
// ${commitId}
// cordova-js ${buildId}
/*
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file

0 comments on commit ad5b74a

Please sign in to comment.