зеркало из https://github.com/mozilla/fxa.git
task(ci): Use docker base image
Because: - We want to speed up pipeline startup. This Commit: - Optimizes docker base image builds for the smallest images possible. - Enables hard links for yarn cache - Enables global yarn cache - Avoids needlessly installing playwright browsers. - Avoids needlessly running yarn install. - Uses mozilla/fxa-circleci:ci-base-latest image for running test pipelines - Uses mozilla/fxa-circleci:ci-base-browsers image for running functional tests pipelines - Creates configurable executors that can be reused across pipelines - Upgrades to yarn 3.3.0 - Enabled direct check out of PR code to test, which is faster than circle ci’s checkout command. - Upgrades functional test to X-Large. This was already the case for playwright tests, but is now extended to content server tests too. This decision was made due to running lots of pipelines and realizing flakiness was largely due to CPU or memory hitting 100% for long periods of time. - Turns off tracing, since it saves a bit of runtime.
This commit is contained in:
Родитель
2dafb0eb6d
Коммит
acf3c82590
|
@ -1,8 +1,43 @@
|
|||
#!/bin/bash -ex
|
||||
#!/bin/bash -e
|
||||
|
||||
DIR=$(dirname "$0")
|
||||
cd "$DIR/.."
|
||||
echo "Running base install!"
|
||||
echo " . Base commit reference: $(cat base_ref)"
|
||||
echo " . Current commit reference: $(git rev-parse HEAD)"
|
||||
echo " . Force yarn install: $FORCE_YARN_INSTALL \n"
|
||||
|
||||
yarn install --immutable
|
||||
node .circleci/modules-to-test.js | tee packages/test.list
|
||||
./_scripts/create-version-json.sh
|
||||
# Only run yarn install if there are changes in the lock file or the env, FORCE_YARN_INSTALL,
|
||||
# indicates a yarn install must be run. The file yarn.lock.base as well as node_modules and
|
||||
# the yarn cache are now part of the base docker image and represents the last known good state
|
||||
# of the main branch. If there is no change to the lock file, there is no point in rebuilding,
|
||||
# and we can use the last known good state.
|
||||
|
||||
if $FORCE_YARN_INSTALL == 'true'; then
|
||||
|
||||
# This is just here as safety net, in case we encounter an issue with base image state and
|
||||
# need to force an install.
|
||||
echo 'Forcing yarn install because FORCE_YARN_INSTALL == true.'
|
||||
set -x
|
||||
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 yarn install --immutable --inline-builds;
|
||||
|
||||
elif ! cmp --silent yarn.lock yarn.lock.base; then
|
||||
echo 'Changes detected on yarn.lock!'
|
||||
echo 'Note that pipelines execute faster if we can skip the yarn install step'
|
||||
echo 'which is possible when lock files are in sync with latest build from main.\n'
|
||||
echo 'Please consider rebasing on main, it may improve CI run times times!\n'
|
||||
|
||||
# There are a couple tricks here:
|
||||
# 1. Skip playwright browser install. We can do this because it's already been done in the base image. Installing
|
||||
# the browser introduces quite a bit of overhead.
|
||||
# 2. Add inline-builds. This prints out extra info about what is happening during the build step, this might provide
|
||||
# some insight into whether or not a build is repeatedly failing, or if an package is introducing a lot of overhead
|
||||
# during install.
|
||||
set -x
|
||||
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 yarn install --immutable --inline-builds;
|
||||
else
|
||||
echo 'No changes detected on yarn.lock! Skipping yarn install and running postinstall directly.\n'
|
||||
|
||||
# If we skip the yarn install, postinstall may still be needed on any workspace that have changed
|
||||
# since the base docker image was built.
|
||||
set -x
|
||||
yarn workspaces foreach --since=$(cat base_ref) -R run postinstall
|
||||
fi
|
||||
|
|
|
@ -1,48 +1,138 @@
|
|||
version: 2.1
|
||||
|
||||
parameters:
|
||||
docker-repo:
|
||||
type: string
|
||||
default: mozilla/fxa-circleci
|
||||
|
||||
orbs:
|
||||
browser-tools: circleci/browser-tools@1.2.3
|
||||
jira: circleci/jira@1.3.1
|
||||
|
||||
executors:
|
||||
content-server-executor:
|
||||
resource_class: large
|
||||
|
||||
# For creating docker builds
|
||||
docker-build-executor:
|
||||
parameters:
|
||||
resource_class:
|
||||
type: string
|
||||
default: medium
|
||||
image:
|
||||
type: string
|
||||
default: cimg/node:16.13
|
||||
resource_class: << parameters.resource_class >>
|
||||
docker:
|
||||
- image: cimg/node:16.13-browsers
|
||||
- image: << parameters.image >>
|
||||
environment:
|
||||
DOCKER_BUILDKIT: 1
|
||||
BUILDKIT_PROGRESS: plain
|
||||
# Note, the global cache is enabled, because otherwise two caches are created, one in .yarn/berry and one in .yarn/cache.
|
||||
# Turning this on results in a single cache - .yarn/berry
|
||||
YARN_ENABLE_GLOBAL_CACHE: true
|
||||
# Enabling hard links saves about 1.2 GB of space in the image.
|
||||
YARN_NM_MODE: hardlinks-global
|
||||
|
||||
# For any thing that does need context, ie linting, building, unit testing, etc...
|
||||
default-executor:
|
||||
parameters:
|
||||
resource_class:
|
||||
type: string
|
||||
default: medium
|
||||
resource_class: << parameters.resource_class >>
|
||||
docker:
|
||||
- image: << pipeline.parameters.docker-repo >>:ci-base-latest
|
||||
environment:
|
||||
NODE_ENV: development
|
||||
FIRESTORE_EMULATOR_HOST: localhost:9090
|
||||
|
||||
# For anything that needs a full stack to run
|
||||
fullstack-executor:
|
||||
parameters:
|
||||
resource_class:
|
||||
type: string
|
||||
default: medium+
|
||||
resource_class: << parameters.resource_class >>
|
||||
docker:
|
||||
- image: << pipeline.parameters.docker-repo >>:ci-base-latest
|
||||
- image: cimg/mysql:8.0.28
|
||||
command: --default-authentication-plugin=mysql_native_password
|
||||
- image: jdlk7/firestore-emulator
|
||||
- image: memcached
|
||||
- image: redis
|
||||
environment:
|
||||
NODE_ENV: development
|
||||
FIRESTORE_EMULATOR_HOST: localhost:9090
|
||||
|
||||
# For anything that needs a full stack to run and needs browsers available for
|
||||
# ui test automation
|
||||
functional-test-executor:
|
||||
parameters:
|
||||
resource_class:
|
||||
type: string
|
||||
default: xlarge
|
||||
resource_class: << parameters.resource_class >>
|
||||
docker:
|
||||
- image: << pipeline.parameters.docker-repo >>:ci-base-browsers-latest
|
||||
- image: redis
|
||||
- image: memcached
|
||||
- image: pafortin/goaws
|
||||
- image: cimg/mysql:8.0.28
|
||||
command: --default-authentication-plugin=mysql_native_password
|
||||
- image: jdlk7/firestore-emulator
|
||||
environment:
|
||||
NODE_ENV: dev
|
||||
FXA_EMAIL_ENV: dev
|
||||
FXA_EMAIL_LOG_LEVEL: debug
|
||||
RUST_BACKTRACE: 1
|
||||
AUTH_FIRESTORE_EMULATOR_HOST: localhost:9090
|
||||
TRACING_SERVICE_NAME: ci-content-server-executor
|
||||
TRACING_CONSOLE_EXPORTER_ENABLED: true
|
||||
environment:
|
||||
NODE_ENV: development
|
||||
FXA_EMAIL_ENV: development
|
||||
FXA_EMAIL_LOG_LEVEL: debug
|
||||
RUST_BACKTRACE: 1
|
||||
AUTH_FIRESTORE_EMULATOR_HOST: localhost:9090
|
||||
# Needed for sub plat playwright tests
|
||||
SUBSCRIPTIONS_PAYPAL_ENABLED: true
|
||||
PAYPAL_SANDBOX: true
|
||||
FXA_MX_RECORD_EXCLUSIONS: restmail.dev.lcip.org
|
||||
|
||||
commands:
|
||||
base-install:
|
||||
|
||||
# Note: Cloning this way allows us to run a git fetch later on download the road. This type of
|
||||
# clone operation will result in a .git/config with no user attached that is using a
|
||||
# https://github.com/mozilla/fxa for the remote origin.
|
||||
git-clone:
|
||||
steps:
|
||||
- run: git clone https://github.com/mozilla/fxa .
|
||||
- run: git checkout << pipeline.git.revision >>
|
||||
|
||||
# Note: Since we use a pre-populated base image that has a .git folder already present (see
|
||||
# comment above), running a fetch and checkout saves a considerable amount of time when compared
|
||||
# to a circleci `- checkout` command.
|
||||
git-checkout:
|
||||
steps:
|
||||
- run: git fetch
|
||||
- run: git checkout << pipeline.git.revision >>
|
||||
|
||||
# Note: We no longer cache in step. As long as packages used in the branch aren't that different
|
||||
# from the packages used in main, which is generally the case, we shouldn't see large install
|
||||
# times, since the base image will have everything cached.
|
||||
provision:
|
||||
steps:
|
||||
- run: ./.circleci/base-install.sh
|
||||
- run: node .circleci/modules-to-test.js | tee packages/test.list
|
||||
- run: ./_scripts/create-version-json.sh
|
||||
|
||||
cache-save-yarn:
|
||||
steps:
|
||||
- save_cache:
|
||||
key: fxa-yarn-07-{{ checksum "yarn.lock" }}
|
||||
paths:
|
||||
- /home/circleci/.yarn/berry
|
||||
- /home/circleci/project/.yarn/build-state.yml
|
||||
- /home/circleci/project/.yarn/install-state.gzs
|
||||
|
||||
cache-restore-yarn:
|
||||
steps:
|
||||
- checkout
|
||||
- restore_cache:
|
||||
keys:
|
||||
# prefer the exact hash
|
||||
- fxa-yarn-cache-4-{{ checksum "yarn.lock" }}
|
||||
# any cache to start with is better than nothing
|
||||
- fxa-yarn-cache-4-
|
||||
- run: ./.circleci/base-install.sh
|
||||
- save_cache:
|
||||
key: fxa-yarn-cache-4-{{ checksum "yarn.lock" }}
|
||||
paths:
|
||||
- .yarn/cache
|
||||
- .yarn/build-state.yml
|
||||
- .yarn/install-state.gz
|
||||
- fxa-yarn-07-{{ checksum "yarn.lock" }}
|
||||
- fxa-yarn-07-
|
||||
|
||||
test-content-server-part:
|
||||
parameters:
|
||||
index:
|
||||
|
@ -52,11 +142,9 @@ commands:
|
|||
type: integer
|
||||
default: 6
|
||||
steps:
|
||||
- browser-tools/install-firefox:
|
||||
version: 102.4.0esr
|
||||
- browser-tools/install-geckodriver:
|
||||
version: v0.32.0
|
||||
- base-install
|
||||
- git-checkout
|
||||
- provision
|
||||
- wait-for-infrastructure
|
||||
- run:
|
||||
name: Running test section << parameters.index >> of << parameters.total >>
|
||||
environment:
|
||||
|
@ -74,11 +162,7 @@ commands:
|
|||
|
||||
test-settings-server:
|
||||
steps:
|
||||
- browser-tools/install-firefox:
|
||||
version: 102.4.0esr
|
||||
- browser-tools/install-geckodriver:
|
||||
version: v0.32.0
|
||||
- base-install
|
||||
- provision
|
||||
- run:
|
||||
name: Running test...
|
||||
command: ./.circleci/test-package.sh fxa-settings
|
||||
|
@ -91,27 +175,98 @@ commands:
|
|||
- store_test_results:
|
||||
path: artifacts/tests
|
||||
|
||||
wait-for-infrastructure:
|
||||
steps:
|
||||
- run:
|
||||
name: Wait for MySQL DB
|
||||
command: ./_scripts/check-mysql.sh
|
||||
|
||||
jobs:
|
||||
|
||||
deploy-packages:
|
||||
parameters:
|
||||
executor:
|
||||
type: executor
|
||||
executor: << parameters.executor >>
|
||||
steps:
|
||||
- checkout
|
||||
- cache-restore-yarn
|
||||
- provision
|
||||
- setup_remote_docker:
|
||||
docker_layer_caching: true
|
||||
- run:
|
||||
name: Build docker images
|
||||
command: ./.circleci/build-all.sh
|
||||
no_output_timeout: 1h
|
||||
- run:
|
||||
name: Push to docker hub
|
||||
command: ./.circleci/deploy-all.sh
|
||||
- store_artifacts:
|
||||
path: artifacts
|
||||
|
||||
# This deploys a base image of fxa that is useful for CI testing. Think of this image as
|
||||
# the last known good state of fxa. The image is designed to come with everything required
|
||||
# to spin up tests pipelines quickly.
|
||||
deploy-fxa-ci-image:
|
||||
parameters:
|
||||
executor:
|
||||
type: executor
|
||||
executor: << parameters.executor >>
|
||||
steps:
|
||||
- setup_remote_docker:
|
||||
docker_layer_caching: true
|
||||
- git-clone
|
||||
- cache-restore-yarn
|
||||
- run:
|
||||
name: Build docker fxa ci image
|
||||
command: docker build . -f ./_dev/docker/ci-base/Dockerfile -t ci-base-latest
|
||||
- deploy:
|
||||
name: Push fxa ci image
|
||||
command: |
|
||||
docker login -u $DOCKER_USER_fxa_circleci -p $DOCKER_PASS_fxa_circleci
|
||||
docker tag ci-base-latest << pipeline.parameters.docker-repo >>:ci-base-latest
|
||||
docker push << pipeline.parameters.docker-repo >>:ci-base-latest
|
||||
|
||||
# This deploys another base image. It's built on top of the image produced above. This
|
||||
# image has all the libraries needed for running UI tests automation in headless browsers.
|
||||
deploy-fxa-ci-browser-image:
|
||||
parameters:
|
||||
executor:
|
||||
type: executor
|
||||
executor: << parameters.executor >>
|
||||
steps:
|
||||
- setup_remote_docker:
|
||||
docker_layer_caching: true
|
||||
- browser-tools/install-firefox:
|
||||
version: 102.4.0esr
|
||||
- browser-tools/install-geckodriver:
|
||||
version: v0.32.0
|
||||
- git-clone
|
||||
- cache-restore-yarn
|
||||
# Copies the browsers the browsers that were installed above into a location accessible to the
|
||||
# docker build.
|
||||
- run: mkdir -p /home/circleci/project/install
|
||||
- run: cp -r /usr/local/bin/firefox* /home/circleci/project/install/.
|
||||
- run: cp -r /usr/local/bin/gecko* /home/circleci/project/install/.
|
||||
- run:
|
||||
name: Build docker fxa ci image
|
||||
command: docker build . -f ./_dev/docker/ci-browsers/Dockerfile -t ci-base-browsers-latest
|
||||
- deploy:
|
||||
name: Push fxa ci image
|
||||
command: |
|
||||
docker login -u $DOCKER_USER_fxa_circleci -p $DOCKER_PASS_fxa_circleci
|
||||
docker tag ci-base-browsers-latest << pipeline.parameters.docker-repo >>:ci-base-browsers-latest
|
||||
docker push << pipeline.parameters.docker-repo >>:ci-base-browsers-latest
|
||||
|
||||
test-package:
|
||||
resource_class: medium+
|
||||
docker:
|
||||
- image: cimg/node:16.13
|
||||
- image: redis
|
||||
- image: memcached
|
||||
- image: pafortin/goaws
|
||||
- image: cimg/mysql:8.0.28
|
||||
command: --default-authentication-plugin=mysql_native_password
|
||||
- image: jdlk7/firestore-emulator
|
||||
environment:
|
||||
NODE_ENV: dev
|
||||
FIRESTORE_EMULATOR_HOST: localhost:9090
|
||||
TRACING_SERVICE_NAME: ci-test-package
|
||||
TRACING_CONSOLE_EXPORTER_ENABLED: true
|
||||
executor: fullstack-executor
|
||||
parameters:
|
||||
package:
|
||||
type: string
|
||||
steps:
|
||||
- base-install
|
||||
- git-checkout
|
||||
- provision
|
||||
- wait-for-infrastructure
|
||||
- run:
|
||||
name: Testing << parameters.package >>
|
||||
command: ./.circleci/test-package.sh << parameters.package >>
|
||||
|
@ -122,14 +277,9 @@ jobs:
|
|||
command: bash <(curl -s https://codecov.io/bash) -F << parameters.package >> -X gcov
|
||||
|
||||
lint:
|
||||
resource_class: medium+
|
||||
docker:
|
||||
- image: cimg/node:16.13
|
||||
environment:
|
||||
TRACING_SERVICE_NAME: ci-lint
|
||||
TRACING_CONSOLE_EXPORTER_ENABLED: true
|
||||
executor: default-executor
|
||||
steps:
|
||||
- base-install
|
||||
- git-checkout
|
||||
- run:
|
||||
name: Linting
|
||||
command: |
|
||||
|
@ -143,22 +293,11 @@ jobs:
|
|||
- jira/notify
|
||||
|
||||
test-many:
|
||||
resource_class: medium+
|
||||
docker:
|
||||
- image: cimg/node:16.13
|
||||
- image: cimg/mysql:8.0.28
|
||||
command: --default-authentication-plugin=mysql_native_password
|
||||
- image: jdlk7/firestore-emulator
|
||||
- image: memcached
|
||||
- image: redis
|
||||
environment:
|
||||
TRACING_SERVICE_NAME: ci-test-many
|
||||
TRACING_CONSOLE_EXPORTER_ENABLED: true
|
||||
executor: fullstack-executor
|
||||
steps:
|
||||
- base-install
|
||||
- run:
|
||||
name: Compiling back-end Typescript services...
|
||||
command: ./_scripts/compile-backend-ts-services.sh
|
||||
- git-checkout
|
||||
- provision
|
||||
- wait-for-infrastructure
|
||||
- run:
|
||||
name: Testing...
|
||||
command: |
|
||||
|
@ -190,96 +329,59 @@ jobs:
|
|||
- jira/notify
|
||||
|
||||
test-settings-server:
|
||||
executor: content-server-executor
|
||||
executor: functional-test-executor
|
||||
steps:
|
||||
- git-checkout
|
||||
- provision
|
||||
- wait-for-infrastructure
|
||||
- test-settings-server
|
||||
|
||||
test-content-server-0:
|
||||
executor: content-server-executor
|
||||
executor: functional-test-executor
|
||||
steps:
|
||||
- test-content-server-part:
|
||||
index: 0
|
||||
|
||||
test-content-server-1:
|
||||
executor: content-server-executor
|
||||
executor: functional-test-executor
|
||||
steps:
|
||||
- test-content-server-part:
|
||||
index: 1
|
||||
|
||||
test-content-server-2:
|
||||
executor: content-server-executor
|
||||
executor: functional-test-executor
|
||||
steps:
|
||||
- test-content-server-part:
|
||||
index: 2
|
||||
|
||||
test-content-server-3:
|
||||
executor: content-server-executor
|
||||
executor: functional-test-executor
|
||||
steps:
|
||||
- test-content-server-part:
|
||||
index: 3
|
||||
|
||||
test-content-server-4:
|
||||
executor: content-server-executor
|
||||
executor: functional-test-executor
|
||||
steps:
|
||||
- test-content-server-part:
|
||||
index: 4
|
||||
|
||||
test-content-server-5:
|
||||
executor: content-server-executor
|
||||
executor: functional-test-executor
|
||||
steps:
|
||||
- test-content-server-part:
|
||||
index: 5
|
||||
|
||||
deploy-fxa-ci-image:
|
||||
resource_class: small
|
||||
docker:
|
||||
- image: cimg/node:16.13
|
||||
environment:
|
||||
DOCKER_BUILDKIT: 1
|
||||
steps:
|
||||
- checkout
|
||||
- setup_remote_docker:
|
||||
version: 18.09.3
|
||||
docker_layer_caching: true
|
||||
- run:
|
||||
name: Build docker fxa ci image
|
||||
command: docker build . -f ./_dev/docker/ci/Dockerfile -t fxa-circleci
|
||||
- deploy:
|
||||
name: Push fxa ci image
|
||||
command: |
|
||||
docker login -u $DOCKER_USER_fxa_circleci -p $DOCKER_PASS_fxa_circleci
|
||||
docker tag fxa-circleci mozilla/fxa-circleci:ci-latest
|
||||
docker push mozilla/fxa-circleci:ci-latest
|
||||
|
||||
deploy-packages:
|
||||
resource_class: small
|
||||
docker:
|
||||
- image: cimg/node:16.13
|
||||
environment:
|
||||
DOCKER_BUILDKIT: 1
|
||||
steps:
|
||||
- base-install
|
||||
- setup_remote_docker:
|
||||
version: 18.09.3
|
||||
docker_layer_caching: true
|
||||
- run:
|
||||
name: Build docker images
|
||||
command: ./.circleci/build-all.sh
|
||||
no_output_timeout: 1h
|
||||
- run:
|
||||
name: Push to docker hub
|
||||
command: ./.circleci/deploy-all.sh
|
||||
- store_artifacts:
|
||||
path: artifacts
|
||||
|
||||
# This job is manually triggered for now. see .circleci/README.md
|
||||
test-content-server-remote:
|
||||
resource_class: large
|
||||
docker:
|
||||
# using the old image until we know why the orb is broken with manual jobs
|
||||
- image: mozilla/fxa-circleci
|
||||
parameters:
|
||||
executor:
|
||||
type: executor
|
||||
executor: << parameters.executor >>
|
||||
steps:
|
||||
- base-install
|
||||
- git-checkout
|
||||
- provision
|
||||
- wait-for-infrastructure
|
||||
- run:
|
||||
name: Running test section against a remote target
|
||||
command: ./packages/fxa-content-server/scripts/test-ci-remote.sh
|
||||
|
@ -291,14 +393,10 @@ jobs:
|
|||
|
||||
# This job is manually triggered for now. see .circleci/README.md
|
||||
production-smoke-tests:
|
||||
resource_class: medium+
|
||||
docker:
|
||||
- image: mcr.microsoft.com/playwright:v1.28.0-focal
|
||||
executor: default-executor
|
||||
steps:
|
||||
- base-install
|
||||
- run:
|
||||
name: Install playwright
|
||||
command: npx playwright install --with-deps
|
||||
- git-checkout
|
||||
- provision
|
||||
- run:
|
||||
name: Running smoke tests
|
||||
command: yarn workspace functional-tests test-production
|
||||
|
@ -308,33 +406,17 @@ jobs:
|
|||
path: artifacts/tests
|
||||
|
||||
playwright-functional-tests:
|
||||
resource_class: xlarge
|
||||
executor: functional-test-executor
|
||||
parallelism: 5
|
||||
docker:
|
||||
- image: mcr.microsoft.com/playwright:v1.28.0-focal
|
||||
- image: redis
|
||||
- image: memcached
|
||||
- image: cimg/mysql:8.0.28
|
||||
command: --default-authentication-plugin=mysql_native_password
|
||||
- image: jdlk7/firestore-emulator
|
||||
environment:
|
||||
NODE_ENV: dev
|
||||
TRACING_SERVICE_NAME: ci-playwright-functional-tests
|
||||
TRACING_CONSOLE_EXPORTER_ENABLED: true
|
||||
SUBSCRIPTIONS_PAYPAL_ENABLED: true
|
||||
PAYPAL_SANDBOX: true
|
||||
steps:
|
||||
# needed by check-mysql.sh
|
||||
- run: apt-get update && apt-get install -y netcat
|
||||
- base-install
|
||||
- run:
|
||||
name: Install playwright
|
||||
command: npx playwright install --with-deps
|
||||
- git-checkout
|
||||
- provision
|
||||
- run:
|
||||
name: Add localhost
|
||||
command: |
|
||||
tee -a /etc/hosts \<<<'127.0.0.1 localhost'
|
||||
cat /etc/hosts
|
||||
sudo tee -a /etc/hosts \<<<'127.0.0.1 localhost'
|
||||
sudo cat /etc/hosts
|
||||
- wait-for-infrastructure
|
||||
- run:
|
||||
name: Running playwright tests
|
||||
command: ./packages/functional-tests/scripts/test-ci.sh
|
||||
|
@ -347,16 +429,22 @@ jobs:
|
|||
path: artifacts/tests
|
||||
|
||||
build-and-deploy-storybooks:
|
||||
resource_class: medium
|
||||
docker:
|
||||
- image: cimg/node:16.13
|
||||
executor: default-executor
|
||||
steps:
|
||||
- base-install
|
||||
- git-checkout
|
||||
- provision
|
||||
- run:
|
||||
name: Build and deploy Storybooks
|
||||
command: npx github:mozilla-fxa/storybook-gcp-publisher
|
||||
|
||||
update-yarn-cache:
|
||||
executor: default-executor
|
||||
steps:
|
||||
- cache-save-yarn
|
||||
|
||||
|
||||
workflows:
|
||||
|
||||
test_pull_request:
|
||||
jobs:
|
||||
- lint:
|
||||
|
@ -365,18 +453,21 @@ workflows:
|
|||
ignore: main
|
||||
tags:
|
||||
ignore: /.*/
|
||||
|
||||
- test-many:
|
||||
filters:
|
||||
branches:
|
||||
ignore: main
|
||||
tags:
|
||||
ignore: /.*/
|
||||
|
||||
- test-settings-server:
|
||||
filters:
|
||||
branches:
|
||||
ignore: main
|
||||
tags:
|
||||
ignore: /.*/
|
||||
|
||||
- test-package:
|
||||
name: test-auth-server
|
||||
package: fxa-auth-server
|
||||
|
@ -385,6 +476,7 @@ workflows:
|
|||
ignore: main
|
||||
tags:
|
||||
ignore: /.*/
|
||||
|
||||
- test-content-server-0:
|
||||
filters:
|
||||
branches:
|
||||
|
@ -421,21 +513,25 @@ workflows:
|
|||
ignore: main
|
||||
tags:
|
||||
ignore: /.*/
|
||||
|
||||
- playwright-functional-tests:
|
||||
filters:
|
||||
branches:
|
||||
ignore: main
|
||||
tags:
|
||||
ignore: /.*/
|
||||
|
||||
- build-and-deploy-storybooks:
|
||||
filters:
|
||||
branches:
|
||||
ignore: main
|
||||
tags:
|
||||
ignore: /.*/
|
||||
|
||||
deploy_branch:
|
||||
jobs:
|
||||
- deploy-packages:
|
||||
executor: docker-build-executor
|
||||
filters:
|
||||
branches:
|
||||
only:
|
||||
|
@ -446,6 +542,20 @@ workflows:
|
|||
ignore: /.*/
|
||||
|
||||
- deploy-fxa-ci-image:
|
||||
executor: docker-build-executor
|
||||
filters:
|
||||
branches:
|
||||
only:
|
||||
- main
|
||||
tags:
|
||||
ignore: /.*/
|
||||
|
||||
- deploy-fxa-ci-browser-image:
|
||||
requires:
|
||||
- deploy-fxa-ci-image
|
||||
executor:
|
||||
name: docker-build-executor
|
||||
image: cimg/node:16.13-browsers
|
||||
filters:
|
||||
branches:
|
||||
only:
|
||||
|
@ -454,11 +564,15 @@ workflows:
|
|||
ignore: /.*/
|
||||
|
||||
- build-and-deploy-storybooks:
|
||||
filters:
|
||||
branches:
|
||||
only: main
|
||||
tags:
|
||||
ignore: /.*/
|
||||
requires:
|
||||
- deploy-fxa-ci-image
|
||||
|
||||
# Once the base image is deployed, go ahead and cache the yarn's state. This will save
|
||||
# us some time on the next build
|
||||
- update-yarn-cache:
|
||||
requires:
|
||||
- deploy-fxa-ci-image
|
||||
|
||||
test_and_deploy_tag:
|
||||
jobs:
|
||||
- lint:
|
||||
|
@ -518,6 +632,7 @@ workflows:
|
|||
tags:
|
||||
only: /.*/
|
||||
- deploy-packages:
|
||||
executor: docker-build-executor
|
||||
filters:
|
||||
branches:
|
||||
ignore: /.*/
|
||||
|
|
|
@ -16,7 +16,7 @@ if grep -e "$MODULE" -e 'all' "$DIR/../packages/test.list" > /dev/null; then
|
|||
time ./scripts/test-ci.sh
|
||||
else
|
||||
# default action
|
||||
time (yarn workspaces focus "$MODULE" && yarn test)
|
||||
time (yarn workspaces focus "$MODULE" && NODE_ENV=test yarn test)
|
||||
fi
|
||||
else
|
||||
echo -e "\n###################################"
|
||||
|
|
|
@ -69,6 +69,7 @@ Thumbs.db
|
|||
|
||||
# Yarn
|
||||
.yarn/cache
|
||||
.yarn/berry
|
||||
.yarn/build-state.yml
|
||||
.yarn/install-state.gz
|
||||
|
||||
|
@ -143,3 +144,7 @@ packages/fxa-react/test/
|
|||
packages/fxa-settings/fxa-content-server-l10n/
|
||||
packages/fxa-settings/public/locales
|
||||
packages/fxa-settings/test/
|
||||
|
||||
Library
|
||||
.node
|
||||
process.yml
|
||||
|
|
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
|
@ -1,3 +1,7 @@
|
|||
enableGlobalCache: true
|
||||
|
||||
nmMode: hardlinks-global
|
||||
|
||||
nodeLinker: node-modules
|
||||
|
||||
packageExtensions:
|
||||
|
@ -18,4 +22,4 @@ plugins:
|
|||
- path: .yarn/plugins/@yarnpkg/plugin-outdated.cjs
|
||||
spec: "https://mskelton.dev/yarn-outdated/v2"
|
||||
|
||||
yarnPath: .yarn/releases/yarn-3.1.1.cjs
|
||||
yarnPath: .yarn/releases/yarn-3.3.0.cjs
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
FROM cimg/node:16.13
|
||||
|
||||
ENV PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1
|
||||
ENV YARN_CHECKSUM_BEHAVIOR=throw
|
||||
ENV FXA_AUTO_INSTALL=0
|
||||
|
||||
COPY --chown=circleci:circleci . .
|
||||
|
||||
RUN git rev-parse HEAD > base_ref; \
|
||||
cp yarn.lock yarn.lock.base; \
|
||||
yarn install --immutable; \
|
||||
yarn workspace fxa-shared build; \
|
||||
yarn workspace fxa-auth-client build;
|
|
@ -0,0 +1,8 @@
|
|||
.vscode
|
||||
.DS_Store
|
||||
node_modules
|
||||
_dev/docker
|
||||
packages/fxa-auth-server/.mail_output
|
||||
**/docs
|
||||
!packages/fxa-auth-server/docs/swagger
|
||||
!packages/fxa-customs-server/docs/swagger
|
|
@ -0,0 +1,18 @@
|
|||
FROM mozilla/fxa-circleci:ci-base-latest
|
||||
# Empty pull. This has the latest and greatest from fxa.
|
||||
|
||||
FROM cimg/node:16.13-browsers
|
||||
|
||||
ENV FXA_AUTO_INSTALL=0
|
||||
|
||||
# Install playwright browsers
|
||||
# One of the biggest culprits of slow install times is playwright since it downloads browser binaries
|
||||
RUN yarn global add playwright; \
|
||||
rm -rf /home/circleci/.cache/ms-playwright/webkit*; \
|
||||
rm -rf /home/circleci/.cache/ms-playwright/chromium*;
|
||||
|
||||
# Copy over the installed browsers
|
||||
COPY --chown=circleci:circleci ./install /usr/local/bin/.
|
||||
|
||||
# Copy over the source from the ci-base-latest tag.
|
||||
COPY --chown=circleci:circleci --from=0 /home/circleci/project .
|
|
@ -0,0 +1,13 @@
|
|||
# This is probably not useful for the majority of users; however, it maybe helpful in the
|
||||
# event you are on a system plagued by checksum mismatches as described here:
|
||||
# - https://github.com/yarnpkg/berry/issues/2399
|
||||
#
|
||||
# By running a yarn install inside the same base container that we use in our CI, we can
|
||||
# ensure the same checksums are created correctly.
|
||||
#
|
||||
FROM cimg/node:16.13
|
||||
|
||||
COPY . .
|
||||
RUN sudo yarn cache clear --all
|
||||
RUN sudo YARN_CHECKSUM_BEHAVIOR=update yarn install --mode=skip-build
|
||||
CMD set +x && sudo cat yarn.lock
|
|
@ -0,0 +1,9 @@
|
|||
*
|
||||
!.yarn/releases
|
||||
!.yarn/plugins
|
||||
!yarn.lock
|
||||
!.yarnrc.yml
|
||||
!package.json
|
||||
!packages
|
||||
packages/*/*
|
||||
!packages/*/package.json
|
|
@ -1,12 +0,0 @@
|
|||
FROM cimg/node:16.3
|
||||
|
||||
# Copy over app code
|
||||
COPY --chown=circleci:circleci . /fxa
|
||||
WORKDIR /fxa
|
||||
|
||||
# Do a yarn install and make backup of yarn lock file.
|
||||
# RUN yarn install && cp yarn.lock yarn.lock.base
|
||||
|
||||
# Remove unneeded files
|
||||
RUN find . -regextype egrep ! -regex '.*(\.|\.\.|packages|node_modules).*' -type d -exec rm -rf {} +;
|
||||
RUN for d in ./packages/*/ ; do find $d -regextype egrep ! -regex '.*(dist|node_modules|fxa-content-server-l10n).*' -type d -exec rm -rf {} +; done;
|
|
@ -18,7 +18,8 @@
|
|||
"ports": "pm2 jlist | json -a -c 'this.pm2_env.env.PORT' pm2_env.env.PORT name",
|
||||
"heroku-postbuild": "yarn workspaces foreach --verbose --include 123done install",
|
||||
"mysql": "docker exec -it $(docker container ls | grep mysql | cut -d' ' -f1) mysql",
|
||||
"firefox": "./packages/fxa-dev-launcher/bin/fxa-dev-launcher.mjs"
|
||||
"firefox": "./packages/fxa-dev-launcher/bin/fxa-dev-launcher.mjs",
|
||||
"generate-lockfile": "docker build . -f _dev/docker/ci-lockfile-generator/Dockerfile -t generate-lockfile && docker run generate-lockfile > yarn.lock"
|
||||
},
|
||||
"homepage": "https://github.com/mozilla/fxa",
|
||||
"bugs": {
|
||||
|
@ -108,5 +109,5 @@
|
|||
"underscore": ">=1.13.2",
|
||||
"url-parse": "^1.5.8"
|
||||
},
|
||||
"packageManager": "yarn@3.1.1"
|
||||
"packageManager": "yarn@3.3.0"
|
||||
}
|
||||
|
|
|
@ -2,4 +2,4 @@
|
|||
|
||||
yarn workspaces focus fxa-admin-panel
|
||||
yarn build
|
||||
yarn test
|
||||
NODE_ENV=test yarn test
|
||||
|
|
|
@ -33,6 +33,6 @@
|
|||
"fast-text-encoding": "^1.0.4",
|
||||
"mocha": "^10.0.0",
|
||||
"typescript": "^4.9.3",
|
||||
"webcrypto-liner": "https://github.com/mozilla-fxa/webcrypto-liner.git#6b3ad971b3b1f0d4da3855c6ceee9b3afa9f0eeb"
|
||||
"webcrypto-liner": "https://github.com/dschom/webcrypto-liner.git#aba1a4d2049f4827d1feb2942bac42a252ae8546"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -113,7 +113,7 @@
|
|||
"moment-timezone": "^0.5.35",
|
||||
"mozlog": "^3.0.2",
|
||||
"mysql": "^2.18.1",
|
||||
"node-uap": "https://github.com/mozilla-fxa/node-uap.git#96dc1f9f224422ec184395b6408cd1fc40ee452a",
|
||||
"node-uap": "https://github.com/dschom/node-uap.git#1e0a696e4ad351fdc7dad2b704af2102467cf958",
|
||||
"node-zendesk": "^2.2.0",
|
||||
"nodemailer": "^6.7.3",
|
||||
"otplib": "^11.0.1",
|
||||
|
|
|
@ -17,7 +17,15 @@ node -r esbuild-register ./scripts/oauth_gen_keys.js
|
|||
../../_scripts/check-url.sh localhost:9090
|
||||
node ../db-migrations/bin/patcher.mjs
|
||||
|
||||
# Make sure we have a fresh version of l10n files... This is just a sanity check. It shouldn't be needed...
|
||||
# rm -rf public
|
||||
# yarn run postinstall
|
||||
|
||||
# Migrate current strings
|
||||
yarn run merge-ftl
|
||||
yarn run merge-ftl:test
|
||||
|
||||
# Process sass for rendering of email templates
|
||||
yarn run emails-scss
|
||||
|
||||
TESTS=(local oauth remote scripts)
|
||||
|
|
|
@ -134,7 +134,7 @@
|
|||
"ua-parser-js": "1.0.2",
|
||||
"underscore": "^1.13.1",
|
||||
"verror": "1.10.1",
|
||||
"webcrypto-liner": "https://github.com/mozilla-fxa/webcrypto-liner.git#6b3ad971b3b1f0d4da3855c6ceee9b3afa9f0eeb",
|
||||
"webcrypto-liner": "https://github.com/dschom/webcrypto-liner.git#aba1a4d2049f4827d1feb2942bac42a252ae8546",
|
||||
"webpack": "^4.41.2",
|
||||
"webpack-cli": "^4.10.0"
|
||||
},
|
||||
|
|
|
@ -19,6 +19,7 @@ mkdir -p config
|
|||
cp ../version.json ./
|
||||
cp ../version.json config
|
||||
|
||||
# TODO: Move this to build-lint phase
|
||||
yarn lint
|
||||
|
||||
cd ../../
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#!/bin/bash -e
|
||||
|
||||
yarn workspaces focus fxa-event-broker
|
||||
yarn test --runInBand
|
||||
yarn test --runInBand
|
||||
|
|
|
@ -2,4 +2,4 @@
|
|||
|
||||
yarn workspaces focus fxa-payments-server
|
||||
yarn build
|
||||
yarn test
|
||||
NODE_ENV=test yarn test
|
||||
|
|
|
@ -4,4 +4,4 @@ DIR=$(dirname "$0")
|
|||
|
||||
cp "$DIR/../../version.json" "$DIR/../config"
|
||||
yarn workspaces focus fxa-profile-server
|
||||
yarn test
|
||||
NODE_ENV=test yarn test
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#!/bin/bash -ex
|
||||
|
||||
yarn workspaces focus fxa-react
|
||||
CI=yes yarn test
|
||||
CI=yes NODE_ENV=test yarn test
|
||||
|
|
|
@ -103,8 +103,10 @@
|
|||
"@types/jest": "^26.0.23",
|
||||
"@types/lodash.groupby": "^4",
|
||||
"@types/node": "^16.11.3",
|
||||
"@types/reach__router": "^1.3.11",
|
||||
"@types/react": "^17.0.14",
|
||||
"@types/react-dom": "^17.0.9",
|
||||
"@types/react-router": "^5.1.19",
|
||||
"@types/react-test-renderer": "^17.0.1",
|
||||
"@types/testing-library__react-hooks": "^4",
|
||||
"@types/uuid": "^8",
|
||||
|
|
|
@ -4,8 +4,9 @@ DIR=$(dirname "$0")
|
|||
|
||||
cd "$DIR/.."
|
||||
|
||||
# yarn workspaces focus fxa-settings
|
||||
yarn build
|
||||
SKIP_PREFLIGHT_CHECK=true yarn test --coverage --watchAll=false
|
||||
NODE_ENV=test SKIP_PREFLIGHT_CHECK=true yarn test --coverage --watchAll=false
|
||||
|
||||
mkdir -p config
|
||||
|
||||
|
|
|
@ -179,7 +179,7 @@
|
|||
"moment": "^2.29.4",
|
||||
"mozlog": "^3.0.2",
|
||||
"mysql": "^2.18.1",
|
||||
"node-uap": "https://github.com/mozilla-fxa/node-uap.git#96dc1f9f224422ec184395b6408cd1fc40ee452a",
|
||||
"node-uap": "https://github.com/dschom/node-uap.git#1e0a696e4ad351fdc7dad2b704af2102467cf958",
|
||||
"objection": "^2.2.17",
|
||||
"reflect-metadata": "^0.1.13",
|
||||
"rxjs": "^7.5.7",
|
||||
|
|
173
yarn.lock
173
yarn.lock
|
@ -2,7 +2,7 @@
|
|||
# Manual changes might be lost - proceed with caution!
|
||||
|
||||
__metadata:
|
||||
version: 5
|
||||
version: 6
|
||||
cacheKey: 8
|
||||
|
||||
"123done@workspace:packages/123done":
|
||||
|
@ -705,6 +705,23 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@babel/helper-create-class-features-plugin@npm:^7.20.5":
|
||||
version: 7.20.5
|
||||
resolution: "@babel/helper-create-class-features-plugin@npm:7.20.5"
|
||||
dependencies:
|
||||
"@babel/helper-annotate-as-pure": ^7.18.6
|
||||
"@babel/helper-environment-visitor": ^7.18.9
|
||||
"@babel/helper-function-name": ^7.19.0
|
||||
"@babel/helper-member-expression-to-functions": ^7.18.9
|
||||
"@babel/helper-optimise-call-expression": ^7.18.6
|
||||
"@babel/helper-replace-supers": ^7.19.1
|
||||
"@babel/helper-split-export-declaration": ^7.18.6
|
||||
peerDependencies:
|
||||
"@babel/core": ^7.0.0
|
||||
checksum: 51b0662cc44ae5fe3691ed552f97312006709ec3f5321a5e5b5a139a5743eaaf65987f30ee7c171af80ab77460fb57c1970b0b1583dd70d90b58e4433b117a1b
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@babel/helper-create-regexp-features-plugin@npm:^7.16.0":
|
||||
version: 7.16.0
|
||||
resolution: "@babel/helper-create-regexp-features-plugin@npm:7.16.0"
|
||||
|
@ -1839,6 +1856,20 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@babel/plugin-proposal-private-property-in-object@npm:^7.16.0":
|
||||
version: 7.20.5
|
||||
resolution: "@babel/plugin-proposal-private-property-in-object@npm:7.20.5"
|
||||
dependencies:
|
||||
"@babel/helper-annotate-as-pure": ^7.18.6
|
||||
"@babel/helper-create-class-features-plugin": ^7.20.5
|
||||
"@babel/helper-plugin-utils": ^7.20.2
|
||||
"@babel/plugin-syntax-private-property-in-object": ^7.14.5
|
||||
peerDependencies:
|
||||
"@babel/core": ^7.0.0-0
|
||||
checksum: 513b5e0e2c1b2846be5336cf680e932ae17924ef885aa1429e1a4f7924724bdd99b15f28d67187d0a006d5f18a0c4b61d96c3ecb4902fed3c8fe2f0abfc9753a
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@babel/plugin-proposal-private-property-in-object@npm:^7.16.5":
|
||||
version: 7.16.5
|
||||
resolution: "@babel/plugin-proposal-private-property-in-object@npm:7.16.5"
|
||||
|
@ -11245,6 +11276,13 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@types/history@npm:^4.7.11":
|
||||
version: 4.7.11
|
||||
resolution: "@types/history@npm:4.7.11"
|
||||
checksum: c92e2ba407dcab0581a9afdf98f533aa41b61a71133420a6d92b1ca9839f741ab1f9395b17454ba5b88cb86020b70b22d74a1950ccfbdfd9beeaa5459fdc3464
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@types/hoist-non-react-statics@npm:^3.3.0, @types/hoist-non-react-statics@npm:^3.3.1":
|
||||
version: 3.3.1
|
||||
resolution: "@types/hoist-non-react-statics@npm:3.3.1"
|
||||
|
@ -11949,6 +11987,15 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@types/reach__router@npm:^1.3.11":
|
||||
version: 1.3.11
|
||||
resolution: "@types/reach__router@npm:1.3.11"
|
||||
dependencies:
|
||||
"@types/react": "*"
|
||||
checksum: 6bcf40714e0dafff66cbf10a534320eae35dae8344f616d2ddf077937287a0df188dfbfb32fb8045cbc641139d1ab69ee5bb258a51642823cadefbcda020a044
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@types/reach__router@npm:^1.3.7":
|
||||
version: 1.3.7
|
||||
resolution: "@types/reach__router@npm:1.3.7"
|
||||
|
@ -12015,6 +12062,16 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@types/react-router@npm:^5.1.19":
|
||||
version: 5.1.19
|
||||
resolution: "@types/react-router@npm:5.1.19"
|
||||
dependencies:
|
||||
"@types/history": ^4.7.11
|
||||
"@types/react": "*"
|
||||
checksum: 3536c3dec7af1f12fed2bea246eb143bd893ee66d4e58c1d3fe734cbd67d8a0aedac0bba9255c58fc69dbd32ae17ad280d6866916aee32653a705178e4a544dc
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@types/react-stripe-elements@npm:^6.0.5":
|
||||
version: 6.0.5
|
||||
resolution: "@types/react-stripe-elements@npm:6.0.5"
|
||||
|
@ -21702,7 +21759,7 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"es-abstract@npm:^1.17.0-next.0, es-abstract@npm:^1.17.0-next.1, es-abstract@npm:^1.17.4, es-abstract@npm:^1.17.5, es-abstract@npm:^1.18.0-next.1, es-abstract@npm:^1.18.0-next.2, es-abstract@npm:^1.18.2, es-abstract@npm:^1.19.0, es-abstract@npm:^1.19.1, es-abstract@npm:^1.5.0":
|
||||
"es-abstract@npm:^1.17.0-next.0, es-abstract@npm:^1.17.0-next.1, es-abstract@npm:^1.17.4, es-abstract@npm:^1.17.5, es-abstract@npm:^1.18.0-next.1, es-abstract@npm:^1.18.0-next.2, es-abstract@npm:^1.18.2, es-abstract@npm:^1.19.0, es-abstract@npm:^1.19.1":
|
||||
version: 1.19.1
|
||||
resolution: "es-abstract@npm:1.19.1"
|
||||
dependencies:
|
||||
|
@ -21762,6 +21819,39 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"es-abstract@npm:^1.20.4, es-abstract@npm:^1.5.0":
|
||||
version: 1.20.5
|
||||
resolution: "es-abstract@npm:1.20.5"
|
||||
dependencies:
|
||||
call-bind: ^1.0.2
|
||||
es-to-primitive: ^1.2.1
|
||||
function-bind: ^1.1.1
|
||||
function.prototype.name: ^1.1.5
|
||||
get-intrinsic: ^1.1.3
|
||||
get-symbol-description: ^1.0.0
|
||||
gopd: ^1.0.1
|
||||
has: ^1.0.3
|
||||
has-property-descriptors: ^1.0.0
|
||||
has-symbols: ^1.0.3
|
||||
internal-slot: ^1.0.3
|
||||
is-callable: ^1.2.7
|
||||
is-negative-zero: ^2.0.2
|
||||
is-regex: ^1.1.4
|
||||
is-shared-array-buffer: ^1.0.2
|
||||
is-string: ^1.0.7
|
||||
is-weakref: ^1.0.2
|
||||
object-inspect: ^1.12.2
|
||||
object-keys: ^1.1.1
|
||||
object.assign: ^4.1.4
|
||||
regexp.prototype.flags: ^1.4.3
|
||||
safe-regex-test: ^1.0.0
|
||||
string.prototype.trimend: ^1.0.6
|
||||
string.prototype.trimstart: ^1.0.6
|
||||
unbox-primitive: ^1.0.2
|
||||
checksum: 00564779ddaf7fb977ab5aa2b8ea2cbd4fa2335ad5368f788bd0bb094c86bc1790335dd9c3e30374bb0af2fa54c724fb4e0c73659dcfe8e427355a56f2b65946
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"es-array-method-boxes-properly@npm:^1.0.0":
|
||||
version: 1.0.0
|
||||
resolution: "es-array-method-boxes-properly@npm:1.0.0"
|
||||
|
@ -24576,7 +24666,7 @@ fsevents@^1.2.7:
|
|||
|
||||
"fsevents@patch:fsevents@^1.2.7#~builtin<compat/fsevents>":
|
||||
version: 1.2.13
|
||||
resolution: "fsevents@patch:fsevents@npm%3A1.2.13#~builtin<compat/fsevents>::version=1.2.13&hash=18f3a7"
|
||||
resolution: "fsevents@patch:fsevents@npm%3A1.2.13#~builtin<compat/fsevents>::version=1.2.13&hash=d11327"
|
||||
dependencies:
|
||||
bindings: ^1.5.0
|
||||
nan: ^2.12.1
|
||||
|
@ -24586,7 +24676,7 @@ fsevents@^1.2.7:
|
|||
|
||||
"fsevents@patch:fsevents@^2.1.2#~builtin<compat/fsevents>, fsevents@patch:fsevents@^2.1.3#~builtin<compat/fsevents>, fsevents@patch:fsevents@^2.3.2#~builtin<compat/fsevents>, fsevents@patch:fsevents@~2.3.2#~builtin<compat/fsevents>":
|
||||
version: 2.3.2
|
||||
resolution: "fsevents@patch:fsevents@npm%3A2.3.2#~builtin<compat/fsevents>::version=2.3.2&hash=18f3a7"
|
||||
resolution: "fsevents@patch:fsevents@npm%3A2.3.2#~builtin<compat/fsevents>::version=2.3.2&hash=df0bf1"
|
||||
dependencies:
|
||||
node-gyp: latest
|
||||
conditions: os=darwin
|
||||
|
@ -24595,7 +24685,7 @@ fsevents@^1.2.7:
|
|||
|
||||
"fsevents@patch:fsevents@~2.1.1#~builtin<compat/fsevents>":
|
||||
version: 2.1.2
|
||||
resolution: "fsevents@patch:fsevents@npm%3A2.1.2#~builtin<compat/fsevents>::version=2.1.2&hash=18f3a7"
|
||||
resolution: "fsevents@patch:fsevents@npm%3A2.1.2#~builtin<compat/fsevents>::version=2.1.2&hash=31d12a"
|
||||
dependencies:
|
||||
node-gyp: latest
|
||||
conditions: os=darwin
|
||||
|
@ -24836,7 +24926,7 @@ fsevents@~2.1.1:
|
|||
mocha: ^10.0.0
|
||||
node-fetch: ^2.6.7
|
||||
typescript: ^4.9.3
|
||||
webcrypto-liner: "https://github.com/mozilla-fxa/webcrypto-liner.git#6b3ad971b3b1f0d4da3855c6ceee9b3afa9f0eeb"
|
||||
webcrypto-liner: "https://github.com/dschom/webcrypto-liner.git#aba1a4d2049f4827d1feb2942bac42a252ae8546"
|
||||
languageName: unknown
|
||||
linkType: soft
|
||||
|
||||
|
@ -24963,7 +25053,7 @@ fsevents@~2.1.1:
|
|||
mozlog: ^3.0.2
|
||||
mysql: ^2.18.1
|
||||
nock: ^13.2.2
|
||||
node-uap: "https://github.com/mozilla-fxa/node-uap.git#96dc1f9f224422ec184395b6408cd1fc40ee452a"
|
||||
node-uap: "https://github.com/dschom/node-uap.git#1e0a696e4ad351fdc7dad2b704af2102467cf958"
|
||||
node-zendesk: ^2.2.0
|
||||
nodemailer: ^6.7.3
|
||||
nodemon: ^2.0.19
|
||||
|
@ -25164,7 +25254,7 @@ fsevents@~2.1.1:
|
|||
upng-js: 2.1.0
|
||||
url-loader: 4.1.1
|
||||
verror: 1.10.1
|
||||
webcrypto-liner: "https://github.com/mozilla-fxa/webcrypto-liner.git#6b3ad971b3b1f0d4da3855c6ceee9b3afa9f0eeb"
|
||||
webcrypto-liner: "https://github.com/dschom/webcrypto-liner.git#aba1a4d2049f4827d1feb2942bac42a252ae8546"
|
||||
webpack: ^4.41.2
|
||||
webpack-cli: ^4.10.0
|
||||
webpack-dev-middleware: ^5.3.3
|
||||
|
@ -25700,8 +25790,10 @@ fsevents@~2.1.1:
|
|||
"@types/lodash.groupby": ^4
|
||||
"@types/material-ui": ^0.21.8
|
||||
"@types/node": ^16.11.3
|
||||
"@types/reach__router": ^1.3.11
|
||||
"@types/react": ^17.0.14
|
||||
"@types/react-dom": ^17.0.9
|
||||
"@types/react-router": ^5.1.19
|
||||
"@types/react-test-renderer": ^17.0.1
|
||||
"@types/react-webcam": ^3.0.0
|
||||
"@types/testing-library__react-hooks": ^4
|
||||
|
@ -25842,7 +25934,7 @@ fsevents@~2.1.1:
|
|||
moment: ^2.29.4
|
||||
mozlog: ^3.0.2
|
||||
mysql: ^2.18.1
|
||||
node-uap: "https://github.com/mozilla-fxa/node-uap.git#96dc1f9f224422ec184395b6408cd1fc40ee452a"
|
||||
node-uap: "https://github.com/dschom/node-uap.git#1e0a696e4ad351fdc7dad2b704af2102467cf958"
|
||||
nyc: ^15.1.0
|
||||
objection: ^2.2.17
|
||||
pm2: ^5.2.2
|
||||
|
@ -26861,6 +26953,15 @@ fsevents@~2.1.1:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"gopd@npm:^1.0.1":
|
||||
version: 1.0.1
|
||||
resolution: "gopd@npm:1.0.1"
|
||||
dependencies:
|
||||
get-intrinsic: ^1.1.3
|
||||
checksum: a5ccfb8806e0917a94e0b3de2af2ea4979c1da920bc381667c260e00e7cafdbe844e2cb9c5bcfef4e5412e8bf73bab837285bc35c7ba73aaaf0134d4583393a6
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"got@npm:11.8.5":
|
||||
version: 11.8.5
|
||||
resolution: "got@npm:11.8.5"
|
||||
|
@ -35602,15 +35703,15 @@ fsevents@~2.1.1:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"node-uap@https://github.com/mozilla-fxa/node-uap.git#96dc1f9f224422ec184395b6408cd1fc40ee452a":
|
||||
"node-uap@https://github.com/dschom/node-uap.git#1e0a696e4ad351fdc7dad2b704af2102467cf958":
|
||||
version: 0.0.3
|
||||
resolution: "node-uap@https://github.com/mozilla-fxa/node-uap.git#commit=96dc1f9f224422ec184395b6408cd1fc40ee452a"
|
||||
resolution: "node-uap@https://github.com/dschom/node-uap.git#commit=1e0a696e4ad351fdc7dad2b704af2102467cf958"
|
||||
dependencies:
|
||||
array.prototype.find: 2.0.0
|
||||
uap-core: "https://github.com/ua-parser/uap-core#2e6c983e42e7aae7d957a263cb4d3de7ccbd92af"
|
||||
uap-ref-impl: 0.2.0
|
||||
yamlparser: 0.0.2
|
||||
checksum: 276cf06bfabf27aeee6f6a5aed742d2842cee5b520892d57a2bb8df99acacc5c11e152072c109ed7cb4e9ef4f6018a6c1531c40800b192c07b4b174f77e8b999
|
||||
checksum: 532a6bfff2d0243051fe79e2ca04944c95bff6662b098b50fcda61413c4992970f27af43f7c6874b50187fb95dcfe148e28b06af2ccb00376bf8430f696a9778
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
|
@ -41597,14 +41698,14 @@ resolve@^2.0.0-next.3:
|
|||
|
||||
"resolve@patch:resolve@1.1.7#~builtin<compat/resolve>":
|
||||
version: 1.1.7
|
||||
resolution: "resolve@patch:resolve@npm%3A1.1.7#~builtin<compat/resolve>::version=1.1.7&hash=07638b"
|
||||
resolution: "resolve@patch:resolve@npm%3A1.1.7#~builtin<compat/resolve>::version=1.1.7&hash=3bafbf"
|
||||
checksum: e9dbca78600ae56835c43a09f1276876c883e4b4bbd43e2683fa140671519d2bdebeb1c1576ca87c8c508ae2987b3ec481645ac5d3054b0f23254cfc1ce49942
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"resolve@patch:resolve@1.18.1#~builtin<compat/resolve>":
|
||||
version: 1.18.1
|
||||
resolution: "resolve@patch:resolve@npm%3A1.18.1#~builtin<compat/resolve>::version=1.18.1&hash=07638b"
|
||||
resolution: "resolve@patch:resolve@npm%3A1.18.1#~builtin<compat/resolve>::version=1.18.1&hash=c3c19d"
|
||||
dependencies:
|
||||
is-core-module: ^2.0.0
|
||||
path-parse: ^1.0.6
|
||||
|
@ -41614,7 +41715,7 @@ resolve@^2.0.0-next.3:
|
|||
|
||||
"resolve@patch:resolve@^1.1.3#~builtin<compat/resolve>, resolve@patch:resolve@^1.1.4#~builtin<compat/resolve>, resolve@patch:resolve@^1.1.6#~builtin<compat/resolve>, resolve@patch:resolve@^1.1.7#~builtin<compat/resolve>, resolve@patch:resolve@^1.10.0#~builtin<compat/resolve>, resolve@patch:resolve@^1.11.1#~builtin<compat/resolve>, resolve@patch:resolve@^1.12.0#~builtin<compat/resolve>, resolve@patch:resolve@^1.14.2#~builtin<compat/resolve>, resolve@patch:resolve@^1.17.0#~builtin<compat/resolve>, resolve@patch:resolve@^1.18.1#~builtin<compat/resolve>, resolve@patch:resolve@^1.19.0#~builtin<compat/resolve>, resolve@patch:resolve@^1.20.0#~builtin<compat/resolve>, resolve@patch:resolve@^1.3.2#~builtin<compat/resolve>, resolve@patch:resolve@^1.8.1#~builtin<compat/resolve>, resolve@patch:resolve@^1.9.0#~builtin<compat/resolve>, resolve@patch:resolve@~1.20.0#~builtin<compat/resolve>":
|
||||
version: 1.20.0
|
||||
resolution: "resolve@patch:resolve@npm%3A1.20.0#~builtin<compat/resolve>::version=1.20.0&hash=07638b"
|
||||
resolution: "resolve@patch:resolve@npm%3A1.20.0#~builtin<compat/resolve>::version=1.20.0&hash=c3c19d"
|
||||
dependencies:
|
||||
is-core-module: ^2.2.0
|
||||
path-parse: ^1.0.6
|
||||
|
@ -41624,7 +41725,7 @@ resolve@^2.0.0-next.3:
|
|||
|
||||
"resolve@patch:resolve@^1.22.1#~builtin<compat/resolve>":
|
||||
version: 1.22.1
|
||||
resolution: "resolve@patch:resolve@npm%3A1.22.1#~builtin<compat/resolve>::version=1.22.1&hash=07638b"
|
||||
resolution: "resolve@patch:resolve@npm%3A1.22.1#~builtin<compat/resolve>::version=1.22.1&hash=c3c19d"
|
||||
dependencies:
|
||||
is-core-module: ^2.9.0
|
||||
path-parse: ^1.0.7
|
||||
|
@ -41637,7 +41738,7 @@ resolve@^2.0.0-next.3:
|
|||
|
||||
"resolve@patch:resolve@^2.0.0-next.3#~builtin<compat/resolve>":
|
||||
version: 2.0.0-next.3
|
||||
resolution: "resolve@patch:resolve@npm%3A2.0.0-next.3#~builtin<compat/resolve>::version=2.0.0-next.3&hash=07638b"
|
||||
resolution: "resolve@patch:resolve@npm%3A2.0.0-next.3#~builtin<compat/resolve>::version=2.0.0-next.3&hash=c3c19d"
|
||||
dependencies:
|
||||
is-core-module: ^2.2.0
|
||||
path-parse: ^1.0.6
|
||||
|
@ -44034,6 +44135,17 @@ resolve@^2.0.0-next.3:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"string.prototype.trimend@npm:^1.0.6":
|
||||
version: 1.0.6
|
||||
resolution: "string.prototype.trimend@npm:1.0.6"
|
||||
dependencies:
|
||||
call-bind: ^1.0.2
|
||||
define-properties: ^1.1.4
|
||||
es-abstract: ^1.20.4
|
||||
checksum: 0fdc34645a639bd35179b5a08227a353b88dc089adf438f46be8a7c197fc3f22f8514c1c9be4629b3cd29c281582730a8cbbad6466c60f76b5f99cf2addb132e
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"string.prototype.trimstart@npm:^1.0.4":
|
||||
version: 1.0.4
|
||||
resolution: "string.prototype.trimstart@npm:1.0.4"
|
||||
|
@ -44055,6 +44167,17 @@ resolve@^2.0.0-next.3:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"string.prototype.trimstart@npm:^1.0.6":
|
||||
version: 1.0.6
|
||||
resolution: "string.prototype.trimstart@npm:1.0.6"
|
||||
dependencies:
|
||||
call-bind: ^1.0.2
|
||||
define-properties: ^1.1.4
|
||||
es-abstract: ^1.20.4
|
||||
checksum: 89080feef416621e6ef1279588994305477a7a91648d9436490d56010a1f7adc39167cddac7ce0b9884b8cdbef086987c4dcb2960209f2af8bac0d23ceff4f41
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"string_decoder@npm:0.10, string_decoder@npm:~0.10.0, string_decoder@npm:~0.10.x":
|
||||
version: 0.10.31
|
||||
resolution: "string_decoder@npm:0.10.31"
|
||||
|
@ -46272,21 +46395,21 @@ resolve@^2.0.0-next.3:
|
|||
|
||||
"typescript@patch:typescript@^4.9.3#~builtin<compat/typescript>":
|
||||
version: 4.9.3
|
||||
resolution: "typescript@patch:typescript@npm%3A4.9.3#~builtin<compat/typescript>::version=4.9.3&hash=493e53"
|
||||
resolution: "typescript@patch:typescript@npm%3A4.9.3#~builtin<compat/typescript>::version=4.9.3&hash=d73830"
|
||||
bin:
|
||||
tsc: bin/tsc
|
||||
tsserver: bin/tsserver
|
||||
checksum: ef65c22622d864497d0a0c5db693523329b3284c15fe632e93ad9aa059e8dc38ef3bd767d6f26b1e5ecf9446f49bd0f6c4e5714a2eeaf352805dc002479843d1
|
||||
checksum: 67ca21a387c0572f1c04936e638dde7782c5aa520c3754aadc7cc9b7c915da9ebc3e27c601bfff4ccb7d7264e82dce6d277ada82ec09dc75024349e0ef64926d
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"typescript@patch:typescript@npm%3A^4.5.2#~builtin<compat/typescript>":
|
||||
version: 4.5.2
|
||||
resolution: "typescript@patch:typescript@npm%3A4.5.2#~builtin<compat/typescript>::version=4.5.2&hash=493e53"
|
||||
resolution: "typescript@patch:typescript@npm%3A4.5.2#~builtin<compat/typescript>::version=4.5.2&hash=bcec9a"
|
||||
bin:
|
||||
tsc: bin/tsc
|
||||
tsserver: bin/tsserver
|
||||
checksum: 53838d56aba6fcc947d63aa0771e5d966b1b648fddafed6e221d7f38c71219c4e036ece8cfe9e35ed80cf5a35ff4eb958934c993f99c3233773ec4f9ccd53f69
|
||||
checksum: e25e689eba64f7da7cfc43f8ea76cac7176b56caba42655f0a4cb29c0b7c36e67ca54f33df95902859f56108464245d8b45bcdfe21e3d66d9560feb8db780246
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
|
@ -46299,7 +46422,7 @@ resolve@^2.0.0-next.3:
|
|||
|
||||
"uap-core@https://github.com/ua-parser/uap-core#2e6c983e42e7aae7d957a263cb4d3de7ccbd92af":
|
||||
version: 0.6.7
|
||||
resolution: "uap-core@https://github.com/ua-parser/uap-core#commit=2e6c983e42e7aae7d957a263cb4d3de7ccbd92af"
|
||||
resolution: "uap-core@https://github.com/ua-parser/uap-core.git#commit=2e6c983e42e7aae7d957a263cb4d3de7ccbd92af"
|
||||
checksum: 66623ae9913352f46d18f3e0ce6b9dfb9415323f02dba860ef7d855c04412f248318024b9ba77dc375dc366bda98ee10d0309feaccef7f7572869ffdc3f6fce2
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
@ -47463,14 +47586,14 @@ resolve@^2.0.0-next.3:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"webcrypto-liner@https://github.com/mozilla-fxa/webcrypto-liner.git#6b3ad971b3b1f0d4da3855c6ceee9b3afa9f0eeb":
|
||||
"webcrypto-liner@https://github.com/dschom/webcrypto-liner.git#aba1a4d2049f4827d1feb2942bac42a252ae8546":
|
||||
version: 0.1.36
|
||||
resolution: "webcrypto-liner@https://github.com/mozilla-fxa/webcrypto-liner.git#commit=6b3ad971b3b1f0d4da3855c6ceee9b3afa9f0eeb"
|
||||
resolution: "webcrypto-liner@https://github.com/dschom/webcrypto-liner.git#commit=aba1a4d2049f4827d1feb2942bac42a252ae8546"
|
||||
dependencies:
|
||||
"@dannycoates/elliptic": ^6.4.2
|
||||
asmcrypto.js: ^0.22.0
|
||||
webcrypto-core: "https://github.com/mozilla-fxa/webcrypto-core.git#e0bb9e60e7df2abc6d13caf4a15cf22188e2981a"
|
||||
checksum: ca2b7ea2b8af2d8def878ecfa69b5fdf49ea3d848fb30f3db87fc1a763bdaeaa9de54715bebea4f05acac2a2967164b76420a42bf84e98984643ec2369151181
|
||||
checksum: 52544d9ad86b4cfd78c79634a0a996604aeffdb125655601b9f043e8240db4440b67c62fc611f5077e1552a6a24f62bb4b3aa9d6c39ab022e20dc415b51a4a0b
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче