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

What's next for https://github.com/BuckosBits/dev.to.t.anonymous.io

Built With

Share this project:

Updates

posted an update

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

    • image: circleci/openjdk:8-jdk-node-browsers
  • &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

The CircleCI API doesn't yet support triggering a specific workflow, but it

does support triggering a pipeline. So as a workaround you can triggger the

entire pipeline and use parameters to disable everything except the workflow

you want. CircleCI recommends this workaround here:

https://support.circleci.com/hc/en-us/articles/360050351292-How-to-trigger-a-workflow-via-CircleCI-API-v2-

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

Log in or sign up for Devpost to join the conversation.