@@ -1361,6 +1361,9 @@ jobs:
13611361      latest :
13621362        type : boolean 
13631363        default : false 
1364+       dryrun :
1365+         type : boolean 
1366+         default : false 
13641367    executor : reactnativeios 
13651368    steps :
13661369      - checkout_code_with_cache 
@@ -1373,13 +1376,15 @@ jobs:
13731376      - run :
13741377          name : " Set new react-native version and commit changes" 
13751378          command : | 
1376-             node ./scripts/prepare-package-for-release.js -v << parameters.version >> -l << parameters.latest >> 
1379+             node ./scripts/prepare-package-for-release.js -v << parameters.version >> -l << parameters.latest >> --dry-run << parameters.dryrun >>  
13771380
13781381   build_npm_package :
13791382    parameters :
1380-       publish_npm_args :
1381-         type : string 
1382-         default : --dry-run 
1383+       release_type :
1384+         description : The type of release to build. Must be one of "nightly", "release", "dry-run". 
1385+         type : enum 
1386+         enum : ["nightly", "release", "dry-run"] 
1387+         default : " dry-run" 
13831388    executor : reactnativeandroid 
13841389    environment :
13851390      - HERMES_WS_DIR : *hermes_workspace_root 
@@ -1422,8 +1427,8 @@ jobs:
14221427      - when :
14231428          condition :
14241429            or :
1425-               - equal : [ -- release, << parameters.publish_npm_args  >> ] 
1426-               - equal : [ -- nightly, << parameters.publish_npm_args  >> ] 
1430+               - equal : [ " release" , << parameters.release_type  >> ] 
1431+               - equal : [ " nightly" , << parameters.release_type  >> ] 
14271432          steps :
14281433            - run : echo "//registry.npmjs.org/:_authToken=${CIRCLE_NPM_TOKEN}" > ~/.npmrc 
14291434            - run : | 
@@ -1432,7 +1437,7 @@ jobs:
14321437                echo "machine github.com login react-native-bot password $GITHUB_TOKEN" > ~/.netrc 
14331438       #  END: Stables and nightlies
14341439
1435-       - run : node ./scripts/publish-npm.js << parameters.publish_npm_args  >> 
1440+       - run : node ./scripts/publish-npm.js -- << parameters.release_type  >> 
14361441      - run :
14371442          name : Zip Hermes Native Symbols 
14381443          command : zip -r /tmp/hermes-native-symbols.zip ~/react-native/ReactAndroid/hermes-engine/build/intermediates/cmake/ 
@@ -1443,7 +1448,7 @@ jobs:
14431448      #  Provide a react-native package for this commit as a Circle CI release artifact.
14441449      - when :
14451450          condition :
1446-             equal : [ -- dry-run, << parameters.publish_npm_args  >> ] 
1451+             equal : [ " dry-run" , << parameters.release_type  >> ] 
14471452          steps :
14481453            - run :
14491454                name : Build release package as a job artifact 
@@ -1475,7 +1480,7 @@ jobs:
14751480      #  START: Stable releases
14761481      - when :
14771482          condition :
1478-             equal : [ -- release, << parameters.publish_npm_args  >> ] 
1483+             equal : [ " release" , << parameters.release_type  >> ] 
14791484          steps :
14801485            - run :
14811486                name : Update rn-diff-purge to generate upgrade-support diff 
@@ -1484,15 +1489,44 @@ jobs:
14841489                    -H "Accept: application/vnd.github.v3+json" \ 
14851490                    -u "$PAT_USERNAME:$PAT_TOKEN" \ 
14861491                    -d "{\"event_type\": \"publish\", \"client_payload\": { \"version\": \"${CIRCLE_TAG:1}\" }}" 
1492+        #  END: Stable releases
1493+ 
1494+       #  START: Stables and commitlies
1495+       - when :
1496+           condition :
1497+             or :
1498+               - equal : [ "release", << parameters.release_type >> ] 
1499+               - equal : [ "dry-run", << parameters.release_type >> ] 
1500+           steps :
14871501            - run :
14881502                name : Install dependencies 
14891503                command : apt update && apt install -y jq jo 
14901504            - run :
14911505                name : Create draft GitHub Release and upload Hermes binaries 
14921506                command : | 
1493-                   ARTIFACTS=("$HERMES_WS_DIR/hermes-runtime-darwin/hermes-runtime-darwin-$CIRCLE_TAG.tar.gz") 
1494-                   ./scripts/circleci/create_github_release.sh $CIRCLE_TAG $CIRCLE_PROJECT_USERNAME $CIRCLE_PROJECT_REPONAME $GITHUB_TOKEN "${ARTIFACTS[@]}" 
1495-        #  END: Stable releases
1507+                   RELEASE_VERSION=$(cat build/.version) 
1508+                   if [[ << parameters.release_type >> == "release" ]]; then 
1509+                     GIT_TAG=$CIRCLE_TAG 
1510+                   elif [[ << parameters.release_type >> == "dry-run" ]]; then 
1511+                     GIT_TAG=v1000.0.0 
1512+                   fi 
1513+ 
1514+                   ARTIFACTS=("") 
1515+                   for build_type in "Debug" "Release"; do 
1516+                     TARBALL_FILENAME=$(node ./scripts/hermes/get-tarball-name.js \ 
1517+                       --buildType $build_type \ 
1518+                       --releaseVersion $RELEASE_VERSION) 
1519+ 
1520+                     ARTIFACTS+=("$HERMES_WS_DIR/hermes-runtime-darwin/$TARBALL_FILENAME") 
1521+                   done 
1522+ 
1523+                   ./scripts/circleci/create_github_release.sh \ 
1524+                     << parameters.release_type >> \ 
1525+                     $GIT_TAG \ 
1526+                     $RELEASE_VERSION \ 
1527+                     $GITHUB_TOKEN \ 
1528+                     "${ARTIFACTS[@]}" 
1529+        #  END: Stable and commitlies
14961530
14971531  #  -------------------------
14981532  #     JOBS: Nightly
@@ -1551,7 +1585,7 @@ workflows:
15511585            - prepare_hermes_workspace 
15521586      - build_npm_package :
15531587          #  Build a release package on every untagged commit, but do not publish to npm.
1554-           publish_npm_args :  -- dry-run
1588+           release_type :  " dry-run" 
15551589          requires :
15561590            - build_hermesc_linux 
15571591            - build_hermes_macos 
@@ -1639,13 +1673,44 @@ workflows:
16391673      - build_npm_package :
16401674          name : build_and_publish_npm_package 
16411675          context : react-native-bot 
1642-           publish_npm_args :  -- release
1676+           release_type :  " release" 
16431677          filters : *only_release_tags 
16441678          requires :
16451679            - build_hermesc_linux 
16461680            - build_hermes_macos 
16471681            - build_hermesc_windows 
16481682
1683+   package_and_publish_release_dryrun :
1684+     jobs :
1685+       - prepare_package_for_release :
1686+           name : prepare_package_for_release 
1687+           version : ' v1000.0.1' 
1688+           latest  : false 
1689+           dryrun : true 
1690+       - prepare_hermes_workspace :
1691+           requires :
1692+             - prepare_package_for_release 
1693+       - build_hermesc_linux :
1694+           requires :
1695+             - prepare_hermes_workspace 
1696+       - build_hermes_macos :
1697+           requires :
1698+             - prepare_hermes_workspace 
1699+           matrix :
1700+             parameters :
1701+               flavor : ["Debug", "Release"] 
1702+       - build_hermesc_windows :
1703+           requires :
1704+             - prepare_hermes_workspace 
1705+       - build_npm_package :
1706+           name : build_and_publish_npm_package 
1707+           context : react-native-bot 
1708+           release_type : " dry-run" 
1709+           requires :
1710+             - build_hermesc_linux 
1711+             - build_hermes_macos 
1712+             - build_hermesc_windows 
1713+ 
16491714  analysis :
16501715    unless : << pipeline.parameters.run_package_release_workflow_only >> 
16511716    jobs :
@@ -1684,7 +1749,7 @@ workflows:
16841749          requires :
16851750            - prepare_hermes_workspace 
16861751      - build_npm_package :
1687-           publish_npm_args :  -- nightly
1752+           release_type :  " nightly" 
16881753          requires :
16891754            - build_hermesc_linux 
16901755            - build_hermes_macos 
0 commit comments