Repository: facebook/react
Pull request: [ci] Fix ci prep script

Stack from [ghstack](https://github.com/ezyang/ghstack) (oldest at bottom):
* #30501
* #30500
* __->__ #30499

During params parsing for this script, it previously would call out to
CircleCI for a build ID, but this is no longer needed.

Changed files:
filename: scripts/release/shared-commands/get-build-id-for-commit.js
patch: @@ -1,75 +0,0 @@
-'use strict';
-
-const fetch = require('node-fetch');
-
-const POLLING_INTERVAL = 10 * 1000; // 10 seconds
-const RETRY_TIMEOUT = 4 * 60 * 1000; // 4 minutes
-
-function wait(ms) {
-  return new Promise(resolve => {
-    setTimeout(() => resolve(), ms);
-  });
-}
-
-function scrapeBuildIDFromStatus(status) {
-  return /\/facebook\/react\/([0-9]+)/.exec(status.target_url)[1];
-}
-
-async function getBuildIdForCommit(sha, allowBrokenCI = false) {
-  const retryLimit = Date.now() + RETRY_TIMEOUT;
-  retry: while (true) {
-    const statusesResponse = await fetch(
-      `https://api.github.com/repos/facebook/react/commits/${sha}/status?per_page=100`
-    );
-
-    if (!statusesResponse.ok) {
-      if (statusesResponse.status === 404) {
-        throw Error('Could not find commit for: ' + sha);
-      }
-      const {message, documentation_url} = await statusesResponse.json();
-      const msg = documentation_url
-        ? `${message}\n\t${documentation_url}`
-        : message;
-      throw Error(msg);
-    }
-
-    const {statuses, state} = await statusesResponse.json();
-    if (!allowBrokenCI && state === 'failure') {
-      throw new Error(`Base commit is broken: ${sha}`);
-    }
-    for (let i = 0; i < statuses.length; i++) {
-      const status = statuses[i];
-      if (status.context === `ci/circleci: process_artifacts_combined`) {
-        if (status.state === 'success') {
-          return scrapeBuildIDFromStatus(status);
-        }
-        if (status.state === 'failure') {
-          throw new Error(`Build job for commit failed: ${sha}`);
-        }
-        if (status.state === 'pending') {
-          if (Date.now() < retryLimit) {
-            await wait(POLLING_INTERVAL);
-            continue retry;
-          }
-          // GitHub's status API is super flaky. Sometimes it reports a job
-          // as "pending" even after it completes in CircleCI. If it's still
-          // pending when we time out, return the build ID anyway.
-          // TODO: The location of the retry loop is a bit weird. We should
-          // probably combine this function with the one that downloads the
-          // artifacts, and wrap the retry loop around the whole thing.
-          return scrapeBuildIDFromStatus(status);
-        }
-      }
-    }
-    if (state === 'pending') {
-      if (Date.now() < retryLimit) {
-        await wait(POLLING_INTERVAL);
-        continue retry;
-      }
-      throw new Error('Exceeded retry limit. Build job is still pending.');
-    }
-    throw new Error('Could not find build for commit: ' + sha);
-  }
-}
-
-module.exports = getBuildIdForCommit;

filename: scripts/release/shared-commands/parse-params.js
patch: @@ -3,9 +3,7 @@
 'use strict';
 
 const commandLineArgs = require('command-line-args');
-const getBuildIdForCommit = require('./get-build-id-for-commit');
 const theme = require('../theme');
-const {logPromise} = require('../utils');
 
 const paramDefinitions = [
   {
@@ -59,22 +57,8 @@ module.exports = async () => {
     process.exit(1);
   }
 
-  if (params.build === null && params.commit === null) {
-    console.error(
-      theme.error`Either a --commit or --build param must be specified.`
-    );
-    process.exit(1);
-  }
-
-  try {
-    if (params.build === null) {
-      params.build = await logPromise(
-        getBuildIdForCommit(params.commit, params.allowBrokenCI),
-        theme`Getting build ID for commit "${params.commit}"`
-      );
-    }
-  } catch (error) {
-    console.error(theme.error(error));
+  if (params.commit === null) {
+    console.error(theme.error`A --commit param must be specified.`);
     process.exit(1);
   }