Inspiration
Markdown
What it does
Marksdown
How I built it
MARKED IT DOWN
Challenges I ran into
MARKING DOWN
Accomplishments that I'm proud of
MARKING DOWN
What I learned
MARKDOWN
Enhancement
Markdown
Marksdown
MARKED IT DOWN
MARKING DOWN
MARKING DOWN
MARKDOWN
Skip to content
DEV Community Create account https://github.com/BuckosBits/dev.to.t.anonymous.io - DEV Community
1
0
M. Glenn M. Glenn Posted on Jul 17, 2021
https://github.com/BuckosBits/dev.to.t.anonymous.io
ai
machinelearning
gratitude
reactnative version: 2.1
}
&docker
&environment TZ: /usr/share/zoneinfo/America/Los_Angeles
&restore_yarn_cache restore_cache: name: Restore yarn cache key: v2-node-{{ arch }}-{{ checksum "yarn.lock" }}-yarn
&restore_node_modules restore_cache: name: Restore node_modules cache keys: - v2-node-{{ arch }}-{{ .Branch }}-{{ checksum "yarn.lock" }}-{{ checksum "workspace_info.txt" }}-node-modules
&TEST_PARALLELISM 20
&attach_workspace at: build
parameters: # This is only set when triggering the CI pipeline via an API request. prerelease_commit_sha: type: string default: ''
jobs: setup: docker: *docker environment: *environment steps: - checkout - run: name: Nodejs Version command: node --version - *restore_yarn_cache - run: name: Install Packages command: yarn --frozen-lockfile --cache-folder ~/.cache/yarn - run: yarn workspaces info | head -n -1 > workspace_info.txt - save_cache: # Store the yarn cache globally for all lock files with this same # checksum. This will speed up the setup job for all PRs where the # lockfile is the same. name: Save yarn cache for future installs key: v2-node-{{ arch }}-{{ checksum "yarn.lock" }}-yarn paths: - ~/.cache/yarn - save_cache: # Store node_modules for all jobs in this workflow so that they don't # need to each run a yarn install for each job. This will speed up # all jobs run on this branch with the same lockfile. name: Save node_modules cache # This cache key is per branch, a yarn install in setup is required. key: v2-node-{{ arch }}-{{ .Branch }}-{{ checksum "yarn.lock" }}-{{ checksum "workspace_info.txt" }}-node-modules paths: - node_modules
yarn_lint: docker: *docker environment: *environment
steps:
- checkout
- run: yarn workspaces info | head -n -1 > workspace_info.txt
- *restore_node_modules
- run: node ./scripts/prettier/index
- run: node ./scripts/tasks/eslint
- run: ./scripts/circleci/check_license.sh
- run: ./scripts/circleci/check_modules.sh
- run: ./scripts/circleci/test_print_warnings.sh
yarn_flow: docker: *docker environment: *environment parallelism: 5
steps:
- checkout
- run: yarn workspaces info | head -n -1 > workspace_info.txt
- *restore_node_modules
- run: node ./scripts/tasks/flow-ci
RELEASE_CHANNEL_stable_yarn_build: docker: docker environment: *environment parallelism: *TEST_PARALLELISM steps: - checkout - run: yarn workspaces info | head -n -1 > workspace_info.txt - *restore_node_modules - run: environment: RELEASE_CHANNEL: stable command: | ./scripts/circleci/add_build_info_json.sh ./scripts/circleci/update_package_versions.sh yarn build - run: echo "stable" >> build/RELEASE_CHANNEL - persist_to_workspace: root: build paths: - RELEASE_CHANNEL - facebook-www - facebook-react-native - facebook-relay - node_modules - react-native - dist - sizes/.json
yarn_build: docker: docker environment: *environment parallelism: 20 steps: - checkout - run: yarn workspaces info | head -n -1 > workspace_info.txt - *restore_node_modules - run: environment: RELEASE_CHANNEL: experimental command: | ./scripts/circleci/add_build_info_json.sh ./scripts/circleci/update_package_versions.sh yarn build - run: echo "experimental" >> build/RELEASE_CHANNEL - persist_to_workspace: root: build paths: - RELEASE_CHANNEL - facebook-www - facebook-react-native - facebook-relay - node_modules - react-native - dist - sizes/.json
yarn_build_combined: docker: *docker environment: *environment parallelism: 40 steps: - checkout - run: yarn workspaces info | head -n -1 > workspace_info.txt - *restore_node_modules - run: yarn build-combined - persist_to_workspace: root: . paths: - build2
get_base_build: docker: *docker environment: *environment steps: - checkout - run: yarn workspaces info | head -n -1 > workspace_info.txt - *restore_node_modules - run: name: Download artifacts for base revision command: | git fetch origin main cd ./scripts/release && yarn && cd ../../ scripts/release/download-experimental-build.js --commit=$(git merge-base HEAD origin/main) mv ./build2 ./base-build - persist_to_workspace: root: . paths: - base-build
process_artifacts_combined: docker: *docker environment: *environment steps: - checkout - attach_workspace: at: . - run: yarn workspaces info | head -n -1 > workspace_info.txt - *restore_node_modules - run: echo "<< pipeline.git.revision >>" >> build2/COMMIT_SHA # Compress build directory into a single tarball for easy download - run: tar -zcvf ./build2.tgz ./build2 - store_artifacts: path: ./build2.tgz
sizebot: docker: *docker environment: *environment steps: - checkout - attach_workspace: at: . - run: echo "<< pipeline.git.revision >>" >> build2/COMMIT_SHA - run: yarn workspaces info | head -n -1 > workspace_info.txt - *restore_node_modules - run: command: node ./scripts/tasks/danger
build_devtools_and_process_artifacts: docker: *docker environment: *environment steps: - checkout - attach_workspace: *attach_workspace - run: yarn workspaces info | head -n -1 > workspace_info.txt - *restore_yarn_cache - *restore_node_modules - run: name: Install Packages command: yarn --frozen-lockfile --cache-folder ~/.cache/yarn - run: environment: RELEASE_CHANNEL: experimental command: ./scripts/circleci/pack_and_store_devtools_artifacts.sh - store_artifacts: path: ./build/devtools.tgz
build_devtools_scheduling_profiler: docker: *docker environment: *environment steps: - checkout - attach_workspace: *attach_workspace - run: yarn workspaces info | head -n -1 > workspace_info.txt - *restore_yarn_cache - *restore_node_modules - run: name: Install Packages command: yarn --frozen-lockfile --cache-folder ~/.cache/yarn - run: name: Build and archive command: | mkdir -p build/devtools cd packages/react-devtools-scheduling-profiler yarn build cd dist tar -zcvf ../../../build/devtools-scheduling-profiler.tgz . - store_artifacts: path: ./build/devtools-scheduling-profiler.tgz - persist_to_workspace: root: packages/react-devtools-scheduling-profiler paths: - dist
deploy_devtools_scheduling_profiler: docker: *docker environment: *environment steps: - checkout - attach_workspace: at: packages/react-devtools-scheduling-profiler - run: yarn workspaces info | head -n -1 > workspace_info.txt - *restore_node_modules - run: name: Deploy command: | cd packages/react-devtools-scheduling-profiler yarn vercel deploy dist --prod --confirm --token $SCHEDULING_PROFILER_DEPLOY_VERCEL_TOKEN yarn_lint_build: docker: *docker environment: *environment steps: - checkout - attach_workspace: *attach_workspace - run: yarn workspaces info | head -n -1 > workspace_info.txt - *restore_node_modules - run: yarn lint-build - run: scripts/circleci/check_minified_errors.sh
yarn_test: docker: *docker environment: *environment parallelism: *TEST_PARALLELISM parameters: args: type: string steps: - checkout - run: yarn workspaces info | head -n -1 > workspace_info.txt - *restore_node_modules - run: yarn test <> --ci
yarn_test_build: docker: *docker environment: *environment parallelism: *TEST_PARALLELISM parameters: args: type: string steps: - checkout - attach_workspace: at: . - run: yarn workspaces info | head -n -1 > workspace_info.txt - *restore_node_modules - run: name: Install nested packages from Yarn cache command: yarn --frozen-lockfile --cache-folder ~/.cache/yarn - run: yarn test --build <> --ci
RELEASE_CHANNEL_stable_yarn_test_dom_fixtures: docker: *docker environment: *environment steps: - checkout - attach_workspace: *attach_workspace - run: yarn workspaces info | head -n -1 > workspace_info.txt - *restore_node_modules - run: name: Run DOM fixture tests environment: RELEASE_CHANNEL: stable command: | cd fixtures/dom yarn --frozen-lockfile yarn prestart yarn test --maxWorkers=2 test_fuzz: docker: *docker environment: *environment steps: - checkout - run: yarn workspaces info | head -n -1 > workspace_info.txt - *restore_node_modules - run: name: Run fuzz tests command: | FUZZ_TEST_SEED=$RANDOM yarn test fuzz --ci FUZZ_TEST_SEED=$RANDOM yarn test --prod fuzz --ci publish_prerelease: parameters: commit_sha: type: string release_channel: type: string dist_tag: type: string docker: *docker environment: *environment steps: - checkout - run: yarn workspaces info | head -n -1 > workspace_info.txt - *restore_node_modules - run: name: Run publish script command: | git fetch origin main cd ./scripts/release && yarn && cd ../../ scripts/release/prepare-release-from-ci.js --skipTests -r << parameters.release_channel >> --commit=<< parameters.commit_sha >> cp ./scripts/release/ci-npmrc ~/.npmrc scripts/release/publish.js --ci --tags << parameters.dist_tag >> # We don't always keep the reconciler forks in sync (otherwise it we wouldn't # have forked it) but during periods when they are meant to be in sync, we # use this job to confirm there are no differences. sync_reconciler_forks: docker: *docker environment: *environment steps: - checkout - run: yarn workspaces info | head -n -1 > workspace_info.txt - *restore_node_modules - run: name: Confirm reconciler forks are the same command: | yarn replace-fork git diff --quiet || (echo "Reconciler forks are not the same! Run yarn replace-fork. Or, if this was intentional, disable this CI check." && false) workflows: version: 2 stable: unless: << pipeline.parameters.prerelease_commit_sha >> jobs: - setup - yarn_lint: requires: - setup - RELEASE_CHANNEL_stable_yarn_build: requires: - setup - RELEASE_CHANNEL_stable_yarn_test_dom_fixtures: requires: - RELEASE_CHANNEL_stable_yarn_build
experimental: unless: << pipeline.parameters.prerelease_commit_sha >> jobs: - setup - yarn_build: requires: - setup - build_devtools_and_process_artifacts: requires: - yarn_build - build_devtools_scheduling_profiler: requires: - yarn_build - deploy_devtools_scheduling_profiler: requires: - build_devtools_scheduling_profiler filters: branches: only: - main
# New workflow that will replace "stable" and "experimental" build_and_test: unless: << pipeline.parameters.prerelease_commit_sha >> jobs: - setup - yarn_flow: requires: - setup # NOTE: This job is only enabled when we want the forks to be in sync. # When the forks intentionally diverge, comment out the job to disable it. - sync_reconciler_forks: requires: - setup - yarn_test: requires: - setup matrix: parameters: args: # Intentionally passing these as strings instead of creating a # separate parameter per CLI argument, since it's easier to # control/see which combinations we want to run. - "-r=stable --env=development" - "-r=stable --env=production" - "-r=experimental --env=development" - "-r=experimental --env=production" - "-r=www-classic --env=development --variant=false" - "-r=www-classic --env=production --variant=false" - "-r=www-classic --env=development --variant=true" - "-r=www-classic --env=production --variant=true" - "-r=www-modern --env=development --variant=false" - "-r=www-modern --env=production --variant=false" - "-r=www-modern --env=development --variant=true" - "-r=www-modern --env=production --variant=true"
# TODO: Test more persistent configurations?
- '-r=stable --env=development --persistent'
- '-r=experimental --env=development --persistent'
- yarn_build_combined:
requires:
- setup
- process_artifacts_combined:
requires:
- yarn_build_combined
- yarn_test_build:
requires:
- yarn_build_combined```
] matrix: parameters: [args: # Intentionally passing these as strings instead of creating a # separate parameter per CLI argument, since it's easier to # control/see which combinations we want to run. - "-r=stable --env=development" - "-r=stable --env=production" - "-r=experimental --env=development" - "-r=experimental --env=production"
# Dev Tools
- "--project=devtools -r=experimental"
# TODO: Update test config to support www build tests
# - "-r=www-classic --env=development --variant=false"
# - "-r=www-classic --env=production --variant=false"
# - "-r=www-classic --env=development --variant=true"
# - "-r=www-classic --env=production --variant=true"
# - "-r=www-modern --env=development --variant=false"
# - "-r=www-modern --env=production --variant=false"
# - "-r=www-modern --env=development --variant=true"
# - "-r=www-modern --env=production --variant=true"
# TODO: Test more persistent configurations?
```[- get_base_build: filters: branches: ignore: - main requires: - setup - sizebot: filters: branches: ignore: - main requires: - get_base_build - yarn_build_combined - yarn_lint_build: requires: - yarn_build_combined fuzz_tests: unless: << pipeline.parameters.prerelease_commit_sha >> triggers: - schedule: # Fuzz tests run hourly cron: "0 * * * *" filters: branches: only: - main jobs: - setup - test_fuzz: requires: - setup
# Used to publish a prerelease manually via the command line publish_preleases: when: << pipeline.parameters.prerelease_commit_sha >> jobs: - setup - publish_prerelease: name: Publish to Next channel requires: - setup commit_sha: << pipeline.parameters.prerelease_commit_sha >> release_channel: stable dist_tag: "next,alpha" - publish_prerelease: name: Publish to Experimental channel requires: # NOTE: Intentionally running these jobs sequentially because npm # will sometimes fail if you try to concurrently publish two # different versions of the same package, even if they use different # dist tags. - Publish to Next channel commit_sha: << pipeline.parameters.prerelease_commit_sha >> release_channel: experimental dist_tag: experimental
# Publishes on a cron schedule publish_preleases_nightly: unless: << pipeline.parameters.prerelease_commit_sha >> triggers: - schedule: # At 10 minutes past 16:00 on Mon, Tue, Wed, Thu, and Fri cron: "10 16 * * 1,2,3,4,5" filters: branches: only: - main jobs: - setup - publish_prerelease: name: Publish to Next channel requires: - setup commit_sha: << pipeline.git.revision >> release_channel: stable dist_tag: "next,alpha" - publish_prerelease: name: Publish to Experimental channel requires: # NOTE: Intentionally running these jobs sequentially because npm # will sometimes fail if you try to concurrently publish two # different versions of the same package, even if they use different # dist tags. - Publish to Next channel commit_sha: << pipeline.git.revision >> release_channel: experimental dist_tag: experimental]```
profile Heroku Promoted
Heroku
Save time with this productivity hack. See how Heroku MCP Server connects tools like Cursor to Heroku, so you can build, deploy, and manage apps—right from your editor.
Learn More
Top comments (1) Subscribe pic Add to the discussion
invest86llc profile image M. Glenn • Jul 17 '21
"github.com/BigGuy573/react?organiz..."
1 Like
Code of Conduct • Report abuse profile MongoDB Promoted
Build gen AI apps that run anywhere with MongoDB Atlas
Build gen AI apps that run anywhere with MongoDB Atlas MongoDB Atlas bundles vector search and a flexible document model so developers can build, scale, and run gen AI apps without juggling multiple databases. From LLM to semantic search, Atlas streamlines AI architectur
Leave feedback in the comments!
Log in or sign up for Devpost to join the conversation.
Log in or sign up for Devpost to join the conversation.