mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-11-25 20:02:58 +01:00
20d79cf46e
A bot command has been added that can update LavaMoat policies automatically. This helps contributors without a Linux machine to produce policy files that match exactly what CI expects. The README has been updated with instructions for this new workflow.
227 lines
7.8 KiB
YAML
227 lines
7.8 KiB
YAML
# TODO(ritave): Add support for environments (<root>/development/build/constants.js:@ENVIRONMENT)
|
|
# TODO(ritave): Add support for build targets (<root>/development/build/constants.js:@BUILD_TARGETS)
|
|
# TODO(ritave): Warn if not all of declared variables have been defined / used
|
|
|
|
# The priority order of variable definitions (most important to least important):
|
|
# <hardcoded build code>; <environmental variables>; .metamaskprodrc; .metamaskrc; builds.yml:.buildTypes.<type>.env; builds.yml:.features.<feature>.env; builds.yml:.env
|
|
|
|
# The build type to use when no build type provided in the cli
|
|
default: &default main
|
|
|
|
# Declaration of build types
|
|
# Each build type is composed of features, env variables and assets.
|
|
# Also known as productFlavors in Android lingo
|
|
# Note: These build types should be kept in sync with the list in `.github/workflows/update-lavamoat-policies.yml`
|
|
buildTypes:
|
|
main:
|
|
features:
|
|
- build-main
|
|
# Additional env variables that are specific to this build
|
|
env:
|
|
- INFURA_PROD_PROJECT_ID
|
|
- SEGMENT_PROD_WRITE_KEY
|
|
- INFURA_ENV_KEY_REF: INFURA_PROD_PROJECT_ID
|
|
- SEGMENT_WRITE_KEY_REF: SEGMENT_PROD_WRITE_KEY
|
|
# Main build uses the default browser manifest
|
|
manifestOverrides: false
|
|
|
|
beta:
|
|
features:
|
|
- build-beta
|
|
env:
|
|
- INFURA_BETA_PROJECT_ID
|
|
- SEGMENT_BETA_WRITE_KEY
|
|
- INFURA_ENV_KEY_REF: INFURA_BETA_PROJECT_ID
|
|
- SEGMENT_WRITE_KEY_REF: SEGMENT_BETA_WRITE_KEY
|
|
# Modifies how the version is displayed.
|
|
# eg. instead of 10.25.0 -> 10.25.0-beta.2
|
|
isPrerelease: true
|
|
# Folder which contains overrides to browser manifests
|
|
manifestOverrides: ./app/build-types/beta/manifest/
|
|
|
|
flask:
|
|
# Code surrounded using code fences for that feature
|
|
# will not be removed
|
|
features:
|
|
- snaps
|
|
- desktop
|
|
- build-flask
|
|
env:
|
|
- INFURA_FLASK_PROJECT_ID
|
|
- SEGMENT_FLASK_WRITE_KEY
|
|
- ALLOW_LOCAL_SNAPS: true
|
|
- REQUIRE_SNAPS_ALLOWLIST: false
|
|
- IFRAME_EXECUTION_ENVIRONMENT_URL: https://execution.metamask.io/0.16.1-flask.1/index.html
|
|
- SUPPORT_LINK: https://metamask-flask.zendesk.com/hc
|
|
- SUPPORT_REQUEST_LINK: https://metamask-flask.zendesk.com/hc/en-us/requests/new
|
|
- INFURA_ENV_KEY_REF: INFURA_FLASK_PROJECT_ID
|
|
- SEGMENT_WRITE_KEY_REF: SEGMENT_FLASK_WRITE_KEY
|
|
isPrerelease: true
|
|
manifestOverrides: ./app/build-types/flask/manifest/
|
|
|
|
desktop:
|
|
features:
|
|
- snaps
|
|
- desktop
|
|
- build-flask
|
|
env:
|
|
- INFURA_FLASK_PROJECT_ID
|
|
- SEGMENT_FLASK_WRITE_KEY
|
|
- ALLOW_LOCAL_SNAPS: true
|
|
- REQUIRE_SNAPS_ALLOWLIST: false
|
|
- IFRAME_EXECUTION_ENVIRONMENT_URL: https://execution.metamask.io/0.16.1-flask.1/index.html
|
|
- SUPPORT_LINK: https://metamask-flask.zendesk.com/hc
|
|
- SUPPORT_REQUEST_LINK: https://metamask-flask.zendesk.com/hc/en-us/requests/new
|
|
- INFURA_ENV_KEY_REF: INFURA_FLASK_PROJECT_ID
|
|
- SEGMENT_WRITE_KEY_REF: SEGMENT_FLASK_WRITE_KEY
|
|
isPrerelease: true
|
|
manifestOverrides: ./app/build-types/desktop/manifest/
|
|
|
|
mmi:
|
|
features:
|
|
- build-mmi
|
|
env:
|
|
- INFURA_MMI_PROJECT_ID
|
|
- SEGMENT_MMI_WRITE_KEY
|
|
- INFURA_ENV_KEY_REF: INFURA_MMI_PROJECT_ID
|
|
- SEGMENT_WRITE_KEY_REF: SEGMENT_MMI_WRITE_KEY
|
|
- SUPPORT_LINK: https://mmi-support.zendesk.com/hc/en-us
|
|
- SUPPORT_REQUEST_LINK: https://mmi-support.zendesk.com/hc/en-us/requests/new
|
|
- MMI_CONFIGURATION_SERVICE_URL: https://configuration.metamask-institutional.io/v1/configuration/default
|
|
# For some reason, MMI uses this type of versioning
|
|
# Leaving it on for backwards compatibility
|
|
isPrerelease: true
|
|
manifestOverrides: ./app/build-types/mmi/manifest/
|
|
|
|
# Build types are composed of a set of features.
|
|
# Each feature can have code fences that add new code
|
|
# as well declaring, defining and overriding env variables
|
|
features:
|
|
snaps:
|
|
# Each feature might have variables that only exist when built with that feature active
|
|
env:
|
|
# Whether to allow snaps from localhost - local://localhost:8080/snap.manifest.json
|
|
# Enabled in Flask, will be disabled in Main
|
|
- ALLOW_LOCAL_SNAPS
|
|
# Whether to verify that a snap can be installed using an allow list
|
|
- REQUIRE_SNAPS_ALLOWLIST
|
|
- IFRAME_EXECUTION_ENVIRONMENT_URL
|
|
assets:
|
|
- ./{app,shared,ui}/**/snaps/**
|
|
desktop:
|
|
env:
|
|
- COMPATIBILITY_VERSION_EXTENSION: 1
|
|
- DISABLE_WEB_SOCKET_ENCRYPTION: false
|
|
- SKIP_OTP_PAIRING_FLOW: false
|
|
- WEB_SOCKET_PORT: null
|
|
|
|
###
|
|
# Build Type code extensions. Things like different support links, warning pages, banners
|
|
###
|
|
|
|
build-main:
|
|
build-beta:
|
|
assets:
|
|
# Assets that will be copied
|
|
- src: ./app/build-types/beta/images/
|
|
dest: images
|
|
# Assets that are exclusively included in this feature and ignored in others
|
|
# Supports globs
|
|
- ./{app,shared,ui}/**/beta/**
|
|
build-mmi:
|
|
assets:
|
|
- src: ./app/build-types/mmi/images/
|
|
dest: images
|
|
- ./{app,shared,ui}/**/institutional/**
|
|
build-flask:
|
|
assets:
|
|
- src: ./app/build-types/flask/images/
|
|
dest: images
|
|
- ./{app,shared,ui}/**/flask/**
|
|
|
|
# Env variables that are required for all types of builds
|
|
#
|
|
# env object supports both declarations (- FOO), and definitions (- FOO: BAR).
|
|
# Variables that were declared have to be defined somewhere in the load chain before usage
|
|
env:
|
|
- SWAPS_USE_DEV_APIS: false
|
|
- PORTFOLIO_URL: https://portfolio.metamask.io
|
|
- TOKEN_ALLOWANCE_IMPROVEMENTS: false
|
|
- TRANSACTION_SECURITY_PROVIDER: false
|
|
# The unlock password
|
|
- PASSWORD: null
|
|
# Also see METAMASK_DEBUG and NODE_DEBUG
|
|
- DEBUG: null
|
|
- SUPPORT_LINK: https://support.metamask.io
|
|
- SUPPORT_REQUEST_LINK: https://metamask.zendesk.com/hc/en-us
|
|
- SKIP_BACKGROUND_INITIALIZATION: false
|
|
|
|
# TODO(ritave): Move ManifestV3 into a feature?
|
|
- ENABLE_MV3: false
|
|
- HARDWARE_WALLETS_MV3: false
|
|
# These are exclusively used for MV3
|
|
- APPLY_LAVAMOAT
|
|
- FILE_NAMES
|
|
|
|
# This variable is read by Trezor's source and breaks build if not included
|
|
- ASSET_PREFIX: null
|
|
|
|
###
|
|
# API keys to 3rd party services
|
|
###
|
|
|
|
- PUBNUB_PUB_KEY: null
|
|
- PUBNUB_SUB_KEY: null
|
|
- SEGMENT_HOST: null
|
|
- SENTRY_DSN: null
|
|
- SENTRY_DSN_DEV: null
|
|
- OPENSEA_KEY: null
|
|
- ETHERSCAN_KEY: null
|
|
# also INFURA_PROJECT_ID below
|
|
|
|
###
|
|
# Build system backwards compatibility
|
|
###
|
|
|
|
- INFURA_ENV_KEY_REF
|
|
- SEGMENT_WRITE_KEY_REF
|
|
|
|
###
|
|
# Variables that are modified with hardcoded code
|
|
###
|
|
|
|
# Used for debugging changes to the phishing warning page.
|
|
# Modified in <root>/development/build/scripts.js:@getPhishingWarningPageUrl
|
|
- PHISHING_WARNING_PAGE_URL: null
|
|
# Modified in <root>/development/build/scripts.js:@getInfuraProjectId
|
|
- INFURA_PROJECT_ID
|
|
# Modified in <root>/development/build/scripts.js:@getSegmentWriteKey
|
|
- SEGMENT_WRITE_KEY: ''
|
|
# Modified in <root>/development/build/scripts.js:@setEnvironmentVariables
|
|
# Also see DEBUG and NODE_DEBUG
|
|
- METAMASK_DEBUG: false
|
|
# Modified in <root>/development/build/scripts.js:@setEnvironmentVariables
|
|
- IN_TEST
|
|
# Modified in <root>/development/build/scripts.js:@setEnvironmentVariables
|
|
- METAMASK_ENVIRONMENT
|
|
# Modified in <root>/development/build/scripts.js:@setEnvironmentVariables
|
|
- METAMASK_VERSION
|
|
# Modified in <root>/development/build/scripts.js:@setEnvironmentVariables
|
|
- METAMASK_BUILD_TYPE
|
|
# Modified in <root>/development/build/scripts.js:@setEnvironmentVariables
|
|
- NODE_ENV
|
|
# Defined by node itself
|
|
# For the purposes of the build system we define it as empty below
|
|
# if it's not inside process.env
|
|
# Also see DEBUG and METAMASK_DEBUG
|
|
- NODE_DEBUG: ''
|
|
# Used by react-devtools-core
|
|
- EDITOR_URL: ''
|
|
|
|
###
|
|
# Meta variables
|
|
###
|
|
|
|
# Uses yaml anchors to DRY - https://juju.is/docs/sdk/yaml-anchors-and-aliases
|
|
- METAMASK_BUILD_TYPE_DEFAULT: *default
|