@@ -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