1
0
mirror of https://github.com/laurent22/joplin.git synced 2025-08-10 22:11:50 +02:00

Chore: Updated script to allow deploying Transcribe server (#12828)

This commit is contained in:
Laurent Cozic
2025-07-31 21:35:03 +01:00
committed by GitHub
parent 7ba61bb585
commit 0f94cb8c17
10 changed files with 69 additions and 15 deletions

View File

@@ -1765,6 +1765,7 @@ packages/tools/release-electron.js
packages/tools/release-ios.js
packages/tools/release-plugin-repo-cli.js
packages/tools/release-server.js
packages/tools/release-transcribe.js
packages/tools/saveClaConsentRecords.js
packages/tools/setupNewRelease.js
packages/tools/spellcheck.js

View File

@@ -7,9 +7,13 @@
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
ROOT_DIR="$SCRIPT_DIR/../.."
TRANSCRIBE_TAG_PREFIX=transcribe
TRANSCRIBE_REPOSITORY=joplin/transcribe
IS_PULL_REQUEST=0
IS_DESKTOP_RELEASE=0
IS_SERVER_RELEASE=0
IS_TRANSCRIBE_RELEASE=0
IS_LINUX=0
IS_MACOS=0
@@ -23,6 +27,10 @@ if [[ $GIT_TAG_NAME = $SERVER_TAG_PREFIX-* ]]; then
IS_SERVER_RELEASE=1
fi
if [[ $GIT_TAG_NAME = $TRANSCRIBE_TAG_PREFIX-* ]]; then
IS_TRANSCRIBE_RELEASE=1
fi
if [[ $GIT_TAG_NAME = v* ]]; then
IS_DESKTOP_RELEASE=1
fi
@@ -80,12 +88,14 @@ echo "GIT_TAG_NAME=$GIT_TAG_NAME"
echo "BUILD_SEQUENCIAL=$BUILD_SEQUENCIAL"
echo "SERVER_REPOSITORY=$SERVER_REPOSITORY"
echo "SERVER_TAG_PREFIX=$SERVER_TAG_PREFIX"
echo "TRANSCRIBE_TAG_PREFIX=$TRANSCRIBE_TAG_PREFIX"
echo "DOCKER_IMAGE_PLATFORM=$DOCKER_IMAGE_PLATFORM"
echo "IS_CONTINUOUS_INTEGRATION=$IS_CONTINUOUS_INTEGRATION"
echo "IS_PULL_REQUEST=$IS_PULL_REQUEST"
echo "IS_DESKTOP_RELEASE=$IS_DESKTOP_RELEASE"
echo "IS_SERVER_RELEASE=$IS_SERVER_RELEASE"
echo "IS_TRANSCRIBE_RELEASE=$IS_TRANSCRIBE_RELEASE"
echo "RUN_TESTS=$RUN_TESTS"
echo "IS_LINUX=$IS_LINUX"
echo "IS_MACOS=$IS_MACOS"
@@ -301,9 +311,13 @@ if [ "$IS_DESKTOP_RELEASE" == "1" ]; then
USE_HARD_LINKS=false yarn dist
fi
elif [[ $IS_LINUX = 1 ]] && [ "$IS_SERVER_RELEASE" == "1" ]; then
echo "Step: Building Docker Image..."
echo "Step: Building Joplin Server Docker Image..."
cd "$ROOT_DIR"
yarn buildServerDocker --platform $DOCKER_IMAGE_PLATFORM --tag-name $GIT_TAG_NAME --push-images --repository $SERVER_REPOSITORY
yarn buildServerDocker --docker-file Dockerfile.server --platform $DOCKER_IMAGE_PLATFORM --tag-name $GIT_TAG_NAME --push-images --repository $SERVER_REPOSITORY
elif [[ $IS_LINUX = 1 ]] && [ "$IS_TRANSCRIBE_RELEASE" == "1" ]; then
echo "Step: Building Joplin Transcribe Docker Image..."
cd "$ROOT_DIR"
yarn buildServerDocker --docker-file Dockerfile.transcribe --platform $DOCKER_IMAGE_PLATFORM --tag-name $GIT_TAG_NAME --push-images --repository $TRANSCRIBE_REPOSITORY
else
echo "Step: Building but *not* publishing desktop application..."

View File

@@ -141,7 +141,7 @@ jobs:
echo "DOCKER_IMAGE_PLATFORM=$DOCKER_IMAGE_PLATFORM"
yarn install
yarn buildServerDocker --platform $DOCKER_IMAGE_PLATFORM --tag-name server-v0.0.0 --repository joplin/server
yarn buildServerDocker --docker-file Dockerfile.server --platform $DOCKER_IMAGE_PLATFORM --tag-name server-v0.0.0 --repository joplin/server
# Basic test to ensure that the created build is valid. It should exit with
# code 0 if it works.

1
.gitignore vendored
View File

@@ -1738,6 +1738,7 @@ packages/tools/release-electron.js
packages/tools/release-ios.js
packages/tools/release-plugin-repo-cli.js
packages/tools/release-server.js
packages/tools/release-transcribe.js
packages/tools/saveClaConsentRecords.js
packages/tools/setupNewRelease.js
packages/tools/spellcheck.js

View File

@@ -51,6 +51,7 @@
"releasePluginGenerator": "node packages/tools/release-plugin-generator.js",
"releasePluginRepoCli": "node packages/tools/release-plugin-repo-cli.js",
"releaseServer": "node packages/tools/release-server.js",
"releaseTranscribe": "node packages/tools/release-transcribe.js",
"saveClaConsentRecords": "node packages/tools/saveClaConsentRecords.js",
"setupNewRelease": "node ./packages/tools/setupNewRelease",
"spellcheck": "node packages/tools/spellcheck.js",

View File

@@ -10,25 +10,28 @@ interface Argv {
platform?: string;
source?: string;
addLatestTag?: boolean;
dockerFile?: string;
}
function parseArgv(): Argv {
return require('yargs')
.scriptName('yarn buildServerDocker')
.usage('$0 --repository OWNER/IMAGE [args]')
.option('r', {
alias: 'repository',
.option('dockerFile', {
describe: 'Dockerfile - either Dockerfile.server or Dockerfile.transcribe',
demandOption: true,
type: 'string',
})
.option('repository', {
describe: 'Target image repository. Usually in format `OWNER/NAME`',
demandOption: true,
type: 'string',
})
.option('t', {
alias: 'tagName',
.option('tagName', {
describe: 'Base image tag. Usually should be in format `server-v1.2.3` or `server-v1.2.3-beta`. The latest `server-v*` git tag will be used by default.',
type: 'string',
})
.option('l', {
alias: 'addLatestTag',
.option('addLatestTag', {
describe: 'Add `latest` tag even for pre-release images.',
type: 'boolean',
default: false,
@@ -43,14 +46,12 @@ function parseArgv(): Argv {
type: 'string',
default: 'https://github.com/laurent22/joplin.git',
})
.option('p', {
alias: 'pushImages',
.option('pushImages', {
describe: 'Publish images to target repository.',
type: 'boolean',
default: false,
})
.option('dryRun', {
alias: 'dryRun',
describe: 'Do not call docker, just show command instead.',
type: 'boolean',
default: false,
@@ -80,8 +81,11 @@ async function main() {
const argv = parseArgv();
if (!argv.tagName) console.info('No `--tag-name` was specified. A latest git tag will be used instead.');
console.info('Raw arguments:', argv);
const dryRun = argv.dryRun;
const addLatestTag = argv.addLatestTag;
const dockerFile = argv.dockerFile;
const pushImages = argv.pushImages;
const repository = argv.repository;
const tagName = argv.tagName || `server-${await execCommand('git describe --tags --match v*', { showStdout: false })}`;
@@ -123,6 +127,7 @@ async function main() {
process.chdir(rootDir);
console.info(`Running from: ${process.cwd()}`);
console.info('dockerFile:', dockerFile);
console.info('repository:', repository);
console.info('tagName:', tagName);
console.info('platform:', platform);
@@ -138,7 +143,7 @@ async function main() {
if (pushImages) {
cliArgs.push('--push');
}
cliArgs.push('-f Dockerfile.server');
cliArgs.push(`--file ${dockerFile}`);
cliArgs.push('.');
const dockerCommand = `docker buildx build ${cliArgs.join(' ')}`;

View File

@@ -22,6 +22,7 @@ enum Platform {
Desktop = 'desktop',
Clipper = 'clipper',
Server = 'server',
Transcribe = 'transcribe',
Cloud = 'cloud',
Cli = 'cli',
PluginGenerator = 'plugin-generator',
@@ -104,6 +105,7 @@ function platformFromTag(tagName: string): Platform {
if (tagName.indexOf('clipper') === 0) return Platform.Clipper;
if (tagName.indexOf('cli') === 0) return Platform.Cli;
if (tagName.indexOf('server') === 0) return Platform.Server;
if (tagName.indexOf('transcribe') === 0) return Platform.Transcribe;
if (tagName.indexOf('cloud') === 0) return Platform.Cloud;
if (tagName.indexOf('plugin-generator') === 0) return Platform.PluginGenerator;
if (tagName.indexOf('plugin-repo-cli') === 0) return Platform.PluginRepoCli;
@@ -128,6 +130,7 @@ export const filesApplyToPlatform = (files: string[], platform: string): boolean
if (file.startsWith('packages/react-native-') && isMobile) return true;
if (file.startsWith('packages/renderer') && isMainApp) return true;
if (file.startsWith('packages/server') && platform === 'server') return true;
if (file.startsWith('packages/transcribe') && platform === 'transcribe') return true;
if (file.startsWith('packages/tools') && isMainApp) return true;
if (file.startsWith('packages/turndown') && isMainApp) return true;
}
@@ -264,6 +267,7 @@ function filterLogs(logs: LogEntry[], platform: Platform) {
if (platform === 'cli' && prefix.indexOf('cli') >= 0) addIt = true;
if (platform === 'clipper' && prefix.indexOf('clipper') >= 0) addIt = true;
if (platform === 'server' && prefix.indexOf('server') >= 0) addIt = true;
if (platform === 'transcribe' && prefix.indexOf('transcribe') >= 0) addIt = true;
if (platform === 'cloud' && (prefix.indexOf('cloud') >= 0 || prefix.indexOf('server') >= 0)) addIt = true;
if (isRenovate && filesApplyToPlatform(log.files, platform)) {
@@ -318,7 +322,7 @@ function formatCommitMessage(commit: string, msg: string, author: Author, option
const isPlatformPrefix = (prefixString: string) => {
const prefix = prefixString.split(',').map(p => p.trim().toLowerCase());
for (const p of prefix) {
if (['android', 'mobile', 'ios', 'desktop', 'windows', 'linux', 'macos', 'cli', 'clipper', 'all', 'api', 'plugins', 'server', 'cloud'].indexOf(p) >= 0) return true;
if (['android', 'mobile', 'ios', 'desktop', 'windows', 'linux', 'macos', 'cli', 'clipper', 'all', 'api', 'plugins', 'server', 'transcribe', 'cloud'].indexOf(p) >= 0) return true;
}
return false;
};

View File

@@ -0,0 +1,23 @@
import { execCommand } from '@joplin/utils';
import { rootDir, gitPullTry, completeReleaseWithChangelog } from './tool-utils';
const transcribeDir = `${rootDir}/packages/transcribe`;
async function main() {
await gitPullTry();
process.chdir(transcribeDir);
const version = (await execCommand('npm version patch')).trim();
const versionSuffix = '';
const tagName = `transcribe-${version}${versionSuffix}`;
const changelogPath = `${rootDir}/readme/about/changelog/transcribe.md`;
await completeReleaseWithChangelog(changelogPath, version, tagName, 'Transcribe', false);
}
main().catch((error) => {
console.error('Fatal error');
console.error(error);
process.exit(1);
});

View File

@@ -1,6 +1,6 @@
{
"name": "@joplin/transcribe",
"version": "3.3.0",
"version": "3.4.4",
"private": true,
"scripts": {
"rebuild": "yarn clean && yarn build && yarn tsc",

View File

@@ -0,0 +1,5 @@
# Transcribe Changelog
## [transcribe-v3.4.4](https://github.com/laurent22/joplin/releases/tag/transcribe-v3.4.4) - 2025-07-31T17:40:57Z
- Fixed: Removes file from temporary folder after storing it (#12795) (#12765 by [@pedr](https://github.com/pedr))