| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- const childProcess = require('child_process');
- const core = require('@actions/core');
- const { getVersion, isBeta } = require('./version-helper');
- const version = getVersion();
- const beta = isBeta();
- const ci = process.argv.includes('ci');
- const envs = {
- VERSION: version,
- RELEASE_NAME: [
- beta && 'BETA',
- `v${version}`,
- ].filter(Boolean).join(' '),
- RELEASE_PREFIX: [
- 'Violentmonkey',
- beta && 'beta',
- ].filter(Boolean).join('-'),
- PRERELEASE: !!beta,
- TEMP_DIR: 'tmp',
- ASSETS_DIR: 'dist-assets',
- GIT_DESCRIBE: ci && exec('git describe --abbrev=7')
- || `v${version}-${exec('git rev-parse HEAD').slice(0, 7)}`,
- ACTION_BUILD_URL: process.env.ACTION_BUILD_URL,
- DISCORD_WEBHOOK_RELEASE: process.env.DISCORD_WEBHOOK_RELEASE,
- };
- envs.SOURCE_ZIP = `${envs.RELEASE_PREFIX}-${envs.VERSION}-source.zip`;
- envs.ASSET_ZIP = `${envs.RELEASE_PREFIX}-webext-v${envs.VERSION}.zip`;
- envs.ASSET_CWS_BETA_ZIP = `${envs.RELEASE_PREFIX}-webext-beta-v${envs.VERSION}.zip`;
- envs.ASSET_SELF_HOSTED_ZIP = `${envs.RELEASE_PREFIX}-webext-ffself-v${envs.VERSION}.zip`;
- envs.RELEASE_NOTE = beta && !ci ? `\
- **This is a beta release of Violentmonkey (also in [WebStore](\
- https://chrome.google.com/webstore/detail/violentmonkey-beta/opokoaglpekkimldnlggpoagmjegichg\
- )), use it at your own risk.**<br>\
- If you already use Violentmonkey, click \`Export to zip\` in settings before installing the beta.
- Notable changes:
- ${listCommits()}
- ` : `\
- See <https://violentmonkey.github.io/> for more details.
- `;
- Object.entries(envs).forEach(([key, value]) => {
- core.exportVariable(key, value);
- });
- function listCommits() {
- const thisTag = exec('git describe --abbrev=0 --tags');
- const prevTag = exec(`git describe --abbrev=0 --tags "${thisTag}^"`);
- const tagRange = `${prevTag}...${thisTag}`;
- const list = exec(`git log --oneline --skip=1 --reverse "${tagRange}"`)
- .replace(/</g, '\\<')
- .split('\n')
- .map((str, i) => `${str.split(/\s/, 2)[1]}${10000 + i}\n* ${str}`)
- .sort()
- .map(str => str.split('\n')[1])
- .join('\n');
- return `${list}\n\nCommit log: ${
- process.env.GITHUB_SERVER_URL || 'https://github.com'
- }/${
- process.env.GITHUB_REPOSITORY || 'violentmonkey/violentmonkey'
- }/compare/${tagRange}`;
- }
- function exec(cmd) {
- try {
- return childProcess.execSync(cmd, { encoding: 'utf8' }).trim();
- } catch (e) {
- // ignore
- }
- }
|