Differentiate insider builds from stable builds

Summary: Each build will have an embedded file specifying the target release channel for the build. This allows us to do some customisations, e.g. show "Insiders" label in the title and enable Sandy by default for insiders builds.

Reviewed By: jknoxville

Differential Revision: D25399045

fbshipit-source-id: 8e26d0754d0713ced823f86b30b54491d55b4d97
This commit is contained in:
Anton Nikolaev
2020-12-08 12:35:53 -08:00
committed by Facebook GitHub Bot
parent bc9412426f
commit 56361debb2
6 changed files with 45 additions and 7 deletions

View File

@@ -7,10 +7,13 @@
* @format
*/
import ReleaseChannel from '../ReleaseChannel';
export default {
updateServer: 'https://www.facebook.com/fbflipper/public/latest.json',
showLogin: false,
showFlipperRating: false,
warnFBEmployees: true,
isFBBuild: false,
getReleaseChannel: () => ReleaseChannel.STABLE,
};

View File

@@ -20,6 +20,7 @@ import {Store} from './reducers/index';
import dispatcher from './dispatcher/index';
import TooltipProvider from './ui/components/TooltipProvider';
import config from './utils/processConfig';
import appConfig from '../src/fb-stubs/config';
import {initLauncherHooks} from './utils/launcher';
import {setPersistor} from './utils/persistor';
import React from 'react';
@@ -40,6 +41,7 @@ import {
_setGlobalInteractionReporter,
} from 'flipper-plugin';
import isProduction from './utils/isProduction';
import ReleaseChannel from './ReleaseChannel';
if (process.env.NODE_ENV === 'development' && os.platform() === 'darwin') {
// By default Node.JS has its internal certificate storage and doesn't use
@@ -116,7 +118,10 @@ function init() {
store,
{name: 'loadTheme', fireImmediately: true, throttleMs: 500},
(state) => ({
sandy: GK.get('flipper_sandy') && !state.settingsState.disableSandy,
sandy:
(GK.get('flipper_sandy') ||
appConfig.getReleaseChannel() === ReleaseChannel.INSIDERS) &&
!state.settingsState.disableSandy,
dark: state.settingsState.darkMode,
}),
(theme) => {

View File

@@ -18,6 +18,8 @@ import UpdateIndicator from '../chrome/UpdateIndicator';
import {Version} from '../chrome/TitleBar';
import {useStore} from '../utils/useStore';
import {remote} from 'electron';
import config from '../fb-stubs/config';
import ReleaseChannel from '../ReleaseChannel';
const version = remote.app.getVersion();
@@ -54,7 +56,13 @@ export function TemporarilyTitlebar() {
[Sandy] Flipper{' '}
{!isProduction() && <NetworkGraph height={20} width={60} />}
{!isProduction() && <FpsGraph height={20} width={60} />}
<Version>{version + (isProduction() ? '' : '-dev')}</Version>
<Version>
{version +
(isProduction() ? '' : '-dev') +
(config.getReleaseChannel() !== ReleaseChannel.STABLE
? `-${config.getReleaseChannel()}`
: '')}
</Version>
{isAutoUpdaterEnabled() ? (
<AutoUpdateVersion version={version} />
) : (

View File

@@ -8,7 +8,9 @@
*/
import {useStore} from '../../../app/src/utils/useStore';
import config from '../fb-stubs/config';
import GK from '../fb-stubs/GK';
import ReleaseChannel from '../ReleaseChannel';
/**
* This hook returns whether dark mode is currently being used.
* Generally should be avoided in favor of using the above theme object,
@@ -17,7 +19,8 @@ import GK from '../fb-stubs/GK';
export function useIsDarkMode(): boolean {
return useStore(
(state) =>
GK.get('flipper_sandy') &&
(GK.get('flipper_sandy') ||
config.getReleaseChannel() === ReleaseChannel.INSIDERS) &&
!state.settingsState.disableSandy &&
state.settingsState.darkMode,
);