Răsfoiți Sursa

chore: do not run unnecessary commands

Gerald 2 ani în urmă
părinte
comite
1ba5839f43
3 a modificat fișierele cu 48 adăugiri și 43 ștergeri
  1. 2 42
      scripts/action-helper.js
  2. 10 0
      scripts/common.js
  3. 36 1
      scripts/release-helper.mjs

+ 2 - 42
scripts/action-helper.js

@@ -1,6 +1,6 @@
-const childProcess = require('child_process');
 const core = require('@actions/core');
 const { getVersion, isBeta } = require('./version-helper');
+const { exec } = require('./common');
 
 const version = getVersion();
 const beta = isBeta();
@@ -19,8 +19,7 @@ const envs = {
   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)}`,
+  GIT_DESCRIBE: ci ? exec('git describe --abbrev=7') : `v${version}`,
   ACTION_BUILD_URL: process.env.ACTION_BUILD_URL,
   DISCORD_WEBHOOK_RELEASE: process.env.DISCORD_WEBHOOK_RELEASE,
 };
@@ -30,45 +29,6 @@ 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
-  }
-}

+ 10 - 0
scripts/common.js

@@ -1,7 +1,16 @@
+const childProcess = require('child_process');
 const path = require('path');
 
 const isProd = process.env.NODE_ENV === 'production';
 
+function exec(cmd) {
+  try {
+    return childProcess.execSync(cmd, { encoding: 'utf8' }).trim();
+  } catch (e) {
+    // ignore
+  }
+}
+
 exports.isProd = isProd;
 exports.alias = {
   '@': path.resolve('src'),
@@ -9,3 +18,4 @@ exports.alias = {
 exports.extensions = [
   '.ts', '.tsx', '.mjs', '.js', '.jsx', '.vue',
 ];
+exports.exec = exec;

+ 36 - 1
scripts/release-helper.mjs

@@ -1,6 +1,7 @@
 import { readdir, readFile } from 'fs/promises';
 import { join } from 'path';
 import github from '@actions/github';
+import { exec } from './common.js';
 
 const { VERSION, ASSETS_DIR, GITHUB_TOKEN } = process.env;
 const tag = `v${VERSION}`;
@@ -24,13 +25,47 @@ export async function getRelease() {
   }
 }
 
+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 getReleaseNote() {
+  const { PRERELEASE } = process.env;
+  return PRERELEASE ? `\
+**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.
+`;
+}
+
 export async function createRelease() {
   console.info('Create release:', tag);
   const result = await getOctokit().rest.repos.createRelease({
     ...github.context.repo,
     tag_name: tag,
     name: process.env.RELEASE_NAME,
-    body: process.env.RELEASE_NOTE,
+    body: getReleaseNote(),
     prerelease: process.env.PRERELEASE == 'true',
   });
   return result.data;