mirror of
https://gitlab.com/futo-org/fcast.git
synced 2025-06-24 21:25:23 +00:00
Allow for channel update to stable
This commit is contained in:
parent
fad2c2bfa2
commit
a2ded729d1
4 changed files with 33 additions and 4 deletions
|
@ -95,6 +95,7 @@ module.exports = {
|
|||
],
|
||||
hooks: {
|
||||
readPackageJson: async (forgeConfig, packageJson) => {
|
||||
packageJson.commit = cp.execSync('git rev-parse HEAD').toString().trim();
|
||||
packageJson.channel = process.env.FCAST_CHANNEL ? process.env.FCAST_CHANNEL : 'stable';
|
||||
if (packageJson.channel !== 'stable') {
|
||||
packageJson.channelVersion = process.env.FCAST_CHANNEL_VERSION ? process.env.FCAST_CHANNEL_VERSION : '1';
|
||||
|
|
|
@ -5,6 +5,7 @@ import shutil
|
|||
from functools import cmp_to_key
|
||||
from util import BUCKET_NAME, S3Client, PackageFormat, ArtifactVersion, compare_versions, generate_update_tarball
|
||||
|
||||
COMMIT_SHA = os.environ.get('CI_COMMIT_SHA')
|
||||
DEPLOY_DIR = os.environ.get('FCAST_DO_RUNNER_DEPLOY_DIR')
|
||||
TEMP_DIR = os.path.join(DEPLOY_DIR, 'temp')
|
||||
LOCAL_CACHE_DIR = os.path.join(DEPLOY_DIR, 'cache')
|
||||
|
@ -163,6 +164,7 @@ def generate_releases_json(artifact_version, delta_info):
|
|||
releases = json.load(file)
|
||||
|
||||
current_version = releases.get('currentVersion', '0.0.0')
|
||||
current_commit = releases.get('currentCommit', '')
|
||||
current_releases = releases.get('currentReleases', {})
|
||||
channel_current_versions = releases.get('channelCurrentVersions', {})
|
||||
|
||||
|
@ -214,8 +216,10 @@ def generate_releases_json(artifact_version, delta_info):
|
|||
|
||||
if artifact_version.channel == 'stable' and max([artifact_version.version, current_version], key=cmp_to_key(compare_versions)):
|
||||
releases['currentVersion'] = artifact_version.version
|
||||
releases['currentCommit'] = COMMIT_SHA
|
||||
else:
|
||||
releases['currentVersion'] = current_version
|
||||
releases['currentCommit'] = current_commit
|
||||
|
||||
releases['previousVersions'] = s3.get_versions(full=True)
|
||||
releases['fileVersion'] = RELEASES_JSON_FILE_VERSION
|
||||
|
|
|
@ -95,7 +95,13 @@ export default class Main {
|
|||
{
|
||||
label: 'About',
|
||||
click: async () => {
|
||||
let aboutMessage = `Version: ${Main.application.getVersion()}\nRelease channel: ${Updater.releaseChannel}\n`;
|
||||
let aboutMessage = `Version: ${Main.application.getVersion()}\n`;
|
||||
|
||||
if (Updater.getCommit()) {
|
||||
aboutMessage += `Commit: ${Updater.getCommit()}\n`;
|
||||
}
|
||||
|
||||
aboutMessage += `Release channel: ${Updater.releaseChannel}\n`;
|
||||
|
||||
if (Updater.releaseChannel !== 'stable') {
|
||||
aboutMessage += `Release channel version: ${Updater.getChannelVersion()}\n`;
|
||||
|
@ -446,6 +452,7 @@ export default class Main {
|
|||
Main.logger = log4js.getLogger();
|
||||
Main.logger.info(`Starting application: ${app.name} | ${app.getAppPath()}`);
|
||||
Main.logger.info(`Version: ${app.getVersion()}`);
|
||||
Main.logger.info(`Commit: ${Updater.getCommit()}`);
|
||||
Main.logger.info(`Release channel: ${Updater.releaseChannel} - ${Updater.getChannelVersion()}`);
|
||||
Main.logger.info(`OS: ${process.platform} ${process.arch}`);
|
||||
|
||||
|
|
|
@ -241,6 +241,11 @@ export class Updater {
|
|||
return Updater.localPackageJson.channelVersion;
|
||||
}
|
||||
|
||||
public static getCommit(): string {
|
||||
Updater.localPackageJson.commit = Updater.localPackageJson.commit ? Updater.localPackageJson.commit : null
|
||||
return Updater.localPackageJson.commit;
|
||||
}
|
||||
|
||||
public static async processUpdate(): Promise<void> {
|
||||
try {
|
||||
const updateInfo: UpdateInfo = JSON.parse(fs.readFileSync(Updater.updateMetadataPath, 'utf8'));
|
||||
|
@ -319,10 +324,22 @@ export class Updater {
|
|||
|
||||
const localChannelVersion: number = Updater.localPackageJson.channelVersion ? Updater.localPackageJson.channelVersion : 0;
|
||||
const currentChannelVersion: number = Updater.releasesJson.channelCurrentVersions[Updater.localPackageJson.channel] ? Updater.releasesJson.channelCurrentVersions[Updater.localPackageJson.channel] : 0;
|
||||
logger.info('Update check', { channel: Updater.localPackageJson.channel, channel_version: localChannelVersion, localVersion: Updater.localPackageJson.version,
|
||||
currentVersion: Updater.releasesJson.currentVersion, currentChannelVersion: currentChannelVersion });
|
||||
logger.info('Update check', {
|
||||
channel: Updater.localPackageJson.channel,
|
||||
channel_version: localChannelVersion,
|
||||
localVersion: Updater.localPackageJson.version,
|
||||
currentVersion: Updater.releasesJson.currentVersion,
|
||||
currentCommit: Updater.releasesJson.currentCommit,
|
||||
currentChannelVersion: currentChannelVersion
|
||||
});
|
||||
|
||||
if (Updater.localPackageJson.version !== Updater.releasesJson.currentVersion || (Updater.localPackageJson.channel !== 'stable' && localChannelVersion < currentChannelVersion)) {
|
||||
const newVersion = Updater.localPackageJson.version !== Updater.releasesJson.currentVersion;
|
||||
const newChannelVersion = (Updater.localPackageJson.channel !== 'stable' && localChannelVersion < currentChannelVersion);
|
||||
|
||||
// Allow for update promotion to stable, while still getting updates from the subscribed channel
|
||||
const newCommit = (Updater.localPackageJson.channel !== 'stable' && Updater.localPackageJson.commit !== Updater.releasesJson.currentCommit);
|
||||
|
||||
if (newVersion || newChannelVersion || newCommit) {
|
||||
logger.info('Update available...');
|
||||
return true;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue