build: unify build flags (#2891)

This commit is contained in:
Alex Yang
2023-06-28 16:45:05 +08:00
committed by GitHub
parent 87574c9993
commit fa45d8a718
7 changed files with 93 additions and 63 deletions

View File

@@ -1,23 +1,5 @@
NEXT_PUBLIC_FIREBASE_API_KEY=
NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=
NEXT_PUBLIC_FIREBASE_PROJECT_ID=
NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=
NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=
NEXT_PUBLIC_FIREBASE_APP_ID=
NEXT_PUBLIC_FIREBASE_MEASUREMENT_ID=
# absolute path to the block suite directory
LOCAL_BLOCK_SUITE=
# see next.config.js
API_SERVER_PROFILE=
# save workspace to idb
ENABLE_IDB_PROVIDER=1
PREFETCH_WORKSPACE=1
ENABLE_BC_PROVIDER=1
EXPOSE_INTERNAL=1
ENABLE_DEBUG_PAGE=
ENABLE_SUBPAGE=
ENABLE_CHANGELOG=1
ENABLE_LEGACY_PROVIDER=true
# Sentry
SENTRY_AUTH_TOKEN=

View File

@@ -11,31 +11,87 @@ export const blockSuiteFeatureFlags = {
enable_drag_handle: true,
enable_surface: true,
enable_linked_page: true,
enable_bookmark_operation: process.env.ENABLE_BOOKMARK_OPERATION === 'true',
enable_bookmark_operation: false,
};
/**
* @type {Record<string, import('@affine/env').BuildFlags>}
*/
const buildPreset = {
stable: {
enableAllPageFilter: true,
enablePlugin: false,
enableTestProperties: false,
enableBroadcastChannelProvider: true,
enableDebugPage: true,
enableLegacyCloud: false,
changelogUrl: 'https://affine.pro/blog/what-is-new-affine-0620',
enablePreloading: true,
enableNewSettingModal: false,
enableSQLiteProvider: false,
},
beta: {},
internal: {},
// canary will be aggressive and enable all features
canary: {
enableAllPageFilter: true,
enablePlugin: true,
enableTestProperties: true,
enableBroadcastChannelProvider: true,
enableDebugPage: true,
enableLegacyCloud: false,
changelogUrl: 'https://github.com/toeverything/AFFiNE/releases',
enablePreloading: true,
enableNewSettingModal: true,
enableSQLiteProvider: true,
},
};
// beta and internal versions are the same as stable
buildPreset.beta = buildPreset.stable;
buildPreset.internal = buildPreset.stable;
const currentBuild = process.env.BUILD_ENV || 'stable';
const currentBuildPreset = buildPreset[currentBuild];
const environmentPreset = {
enablePlugin: process.env.ENABLE_PLUGIN
? process.env.ENABLE_PLUGIN === 'true'
: buildPreset.canary.enablePlugin,
enableAllPageFilter: process.env.ENABLE_ALL_PAGE_FILTER
? process.env.ENABLE_ALL_PAGE_FILTER === 'true'
: buildPreset.canary.enableAllPageFilter,
enableTestProperties: process.env.ENABLE_TEST_PROPERTIES
? process.env.ENABLE_TEST_PROPERTIES === 'true'
: buildPreset.canary.enableTestProperties,
enableLegacyCloud: process.env.ENABLE_LEGACY_PROVIDER
? process.env.ENABLE_LEGACY_PROVIDER === 'true'
: buildPreset.canary.enableLegacyCloud,
enableBroadcastChannelProvider: process.env.ENABLE_BC_PROVIDER
? process.env.ENABLE_BC_PROVIDER !== 'false'
: buildPreset.canary.enableBroadcastChannelProvider,
changelogUrl: process.env.CHANGELOG_URL ?? buildPreset.canary.changelogUrl,
enablePreloading: process.env.ENABLE_PRELOADING
? process.env.ENABLE_PRELOADING === 'true'
: buildPreset.canary.enablePreloading,
enableNewSettingModal: process.env.ENABLE_NEW_SETTING_MODAL
? process.env.ENABLE_NEW_SETTING_MODAL === 'true'
: buildPreset.canary.enableNewSettingModal,
enableSQLiteProvider: process.env.ENABLE_SQLITE_PROVIDER
? process.env.ENABLE_SQLITE_PROVIDER === 'true'
: buildPreset.canary.enableSQLiteProvider,
};
/**
* @type {import('@affine/env').BuildFlags}
*/
export const buildFlags = {
enablePlugin: process.env.ENABLE_PLUGIN === 'true',
enableAllPageFilter:
!!process.env.VERCEL ||
(process.env.ENABLE_ALL_PAGE_FILTER
? process.env.ENABLE_ALL_PAGE_FILTER === 'true'
: false),
enableTestProperties: process.env.ENABLE_TEST_PROPERTIES
? process.env.ENABLE_TEST_PROPERTIES === 'true'
: true,
enableLegacyCloud: process.env.ENABLE_LEGACY_PROVIDER
? process.env.ENABLE_LEGACY_PROVIDER === 'true'
: true,
enableBroadcastChannelProvider: process.env.ENABLE_BC_PROVIDER !== 'false',
enableDebugPage: true,
changelogUrl:
process.env.CHANGELOG_URL ??
'https://affine.pro/blog/what-is-new-affine-0620',
enablePreloading: process.env.ENABLE_PRELOADING === 'true',
enableNewSettingModal: process.env.ENABLE_NEW_SETTING_MODAL === 'true',
enableSQLiteProvider: process.env.ENABLE_SQLITE_PROVIDER === 'true',
const buildFlags = {
...currentBuildPreset,
// environment preset will overwrite current build preset
// this environment variable is for debug proposes only
// do not put them into CI
...environmentPreset,
};
export { buildFlags };