mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Configure CircleCI for double publishing (#40785)
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/40785 ## Changelog: [Internal] - Configure CircleCI for double publishing Reviewed By: cortinico Differential Revision: D49957950 fbshipit-source-id: 56b9be1b7be374af68d8340abaf06f1c58ab173e
This commit is contained in:
committed by
Facebook GitHub Bot
parent
45285a513d
commit
e91fef733b
@@ -24,6 +24,10 @@ parameters:
|
||||
default: false
|
||||
type: boolean
|
||||
|
||||
run_prealpha_workflow:
|
||||
default: false
|
||||
type: boolean
|
||||
|
||||
jobs:
|
||||
choose_ci_jobs:
|
||||
docker:
|
||||
|
||||
@@ -250,9 +250,9 @@ jobs:
|
||||
executor: reactnativeandroid-xlarge
|
||||
parameters:
|
||||
release_type:
|
||||
description: The type of release to build. Must be one of "nightly", "release", "dry-run".
|
||||
description: The type of release to build. Must be one of "nightly", "release", "dry-run", "prealpha".
|
||||
type: enum
|
||||
enum: ["nightly", "release", "dry-run"]
|
||||
enum: ["nightly", "release", "dry-run", "prealpha"]
|
||||
default: "dry-run"
|
||||
steps:
|
||||
- checkout
|
||||
@@ -1159,9 +1159,9 @@ jobs:
|
||||
build_npm_package:
|
||||
parameters:
|
||||
release_type:
|
||||
description: The type of release to build. Must be one of "nightly", "release", "dry-run".
|
||||
description: The type of release to build. Must be one of "nightly", "release", "dry-run", or "prealpha".
|
||||
type: enum
|
||||
enum: ["nightly", "release", "dry-run"]
|
||||
enum: ["nightly", "release", "dry-run", "prealpha"]
|
||||
default: "dry-run"
|
||||
executor: reactnativeandroid-xlarge
|
||||
environment:
|
||||
@@ -1201,16 +1201,17 @@ jobs:
|
||||
- attach_workspace:
|
||||
at: .
|
||||
|
||||
# START: Stables and nightlies
|
||||
# START: Stables, nightlies and prealphas
|
||||
# This conditional step sets up the necessary credentials for publishing react-native to npm.
|
||||
- when:
|
||||
condition:
|
||||
or:
|
||||
- equal: [ "release", << parameters.release_type >> ]
|
||||
- equal: [ "nightly", << parameters.release_type >> ]
|
||||
- equal: [ "prealpha", << parameters.release_type >> ]
|
||||
steps:
|
||||
- run: echo "//registry.npmjs.org/:_authToken=${CIRCLE_NPM_TOKEN}" > ~/.npmrc
|
||||
# END: Stables and nightlies
|
||||
# END: Stables, prealpha and nightlies
|
||||
|
||||
- with_gradle_cache:
|
||||
steps:
|
||||
@@ -1288,19 +1289,6 @@ jobs:
|
||||
command: |
|
||||
node scripts/circleci/poll-maven.js
|
||||
|
||||
|
||||
# -------------------------
|
||||
# JOBS: Nightly
|
||||
# -------------------------
|
||||
nightly_job:
|
||||
machine:
|
||||
image: ubuntu-2004:202010-01
|
||||
steps:
|
||||
- run:
|
||||
name: Nightly
|
||||
command: |
|
||||
echo "Nightly build run"
|
||||
|
||||
find_and_publish_bumped_packages:
|
||||
executor: nodelts
|
||||
steps:
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
and:
|
||||
- equal: [ false, << pipeline.parameters.run_release_workflow >> ]
|
||||
- equal: [ false, << pipeline.parameters.run_nightly_workflow >> ]
|
||||
- equal: [ false, << pipeline.parameters.run_prealpha_workflow >> ]
|
||||
jobs:
|
||||
- prepare_package_for_release:
|
||||
name: prepare_package_for_release
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
and:
|
||||
- equal: [ false, << pipeline.parameters.run_release_workflow >> ]
|
||||
- equal: [ false, << pipeline.parameters.run_nightly_workflow >> ]
|
||||
- equal: [ false, << pipeline.parameters.run_prealpha_workflow >> ]
|
||||
jobs:
|
||||
- prepare_package_for_release:
|
||||
name: prepare_package_for_release
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
and:
|
||||
- equal: [ false, << pipeline.parameters.run_release_workflow >> ]
|
||||
- equal: [ false, << pipeline.parameters.run_nightly_workflow >> ]
|
||||
- equal: [ false, << pipeline.parameters.run_prealpha_workflow >> ]
|
||||
jobs:
|
||||
- test_e2e_ios:
|
||||
ruby_version: "2.7.7"
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
and:
|
||||
- equal: [ false, << pipeline.parameters.run_release_workflow >> ]
|
||||
- equal: [ false, << pipeline.parameters.run_nightly_workflow >> ]
|
||||
- equal: [ false, << pipeline.parameters.run_prealpha_workflow >> ]
|
||||
jobs:
|
||||
- prepare_package_for_release:
|
||||
name: prepare_package_for_release
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
and:
|
||||
- equal: [ false, << pipeline.parameters.run_release_workflow >> ]
|
||||
- equal: [ false, << pipeline.parameters.run_nightly_workflow >> ]
|
||||
- equal: [ false, << pipeline.parameters.run_prealpha_workflow >> ]
|
||||
jobs:
|
||||
- test_js:
|
||||
run_disabled_tests: false
|
||||
|
||||
@@ -29,7 +29,7 @@ references:
|
||||
environment:
|
||||
- TERM: "dumb"
|
||||
- GRADLE_OPTS: '-Dorg.gradle.daemon=false'
|
||||
# By default we only build ARM64 to save time/resources. For release/nightlies, we override this value to build all archs.
|
||||
# By default we only build ARM64 to save time/resources. For release/nightlies/prealpha, we override this value to build all archs.
|
||||
- ORG_GRADLE_PROJECT_reactNativeArchitectures: "arm64-v8a"
|
||||
# Repeated here, as the environment key in this executor will overwrite the one in defaults
|
||||
- PUBLIC_ANALYSISBOT_GITHUB_TOKEN_A: *github_analysisbot_token_a
|
||||
@@ -145,3 +145,7 @@ parameters:
|
||||
run_nightly_workflow:
|
||||
default: false
|
||||
type: boolean
|
||||
|
||||
run_prealpha_workflow:
|
||||
default: false
|
||||
type: boolean
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
# and:
|
||||
# - equal: [ false, << pipeline.parameters.run_release_workflow >> ]
|
||||
# - equal: [ false, << pipeline.parameters.run_nightly_workflow >> ]
|
||||
# - equal: [ false, << pipeline.parameters.run_prealpha_workflow >> ]
|
||||
#
|
||||
# It's setup this way so we can trigger a release via a POST
|
||||
# See limitations: https://support.circleci.com/hc/en-us/articles/360050351292-How-to-trigger-a-workflow-via-CircleCI-API-v2
|
||||
@@ -80,6 +81,7 @@ workflows:
|
||||
and:
|
||||
- equal: [ false, << pipeline.parameters.run_release_workflow >> ]
|
||||
- equal: [ false, << pipeline.parameters.run_nightly_workflow >> ]
|
||||
- equal: [ false, << pipeline.parameters.run_prealpha_workflow >> ]
|
||||
jobs:
|
||||
# Run lints on every commit
|
||||
- analyze_code
|
||||
@@ -90,7 +92,6 @@ workflows:
|
||||
nightly:
|
||||
when: << pipeline.parameters.run_nightly_workflow >>
|
||||
jobs:
|
||||
- nightly_job
|
||||
- prepare_hermes_workspace
|
||||
- build_android:
|
||||
release_type: "nightly"
|
||||
@@ -124,11 +125,48 @@ workflows:
|
||||
- build_hermes_macos
|
||||
- build_hermesc_windows
|
||||
|
||||
prealpha:
|
||||
when: << pipeline.parameters.run_prealpha_workflow >>
|
||||
jobs:
|
||||
- prepare_hermes_workspace
|
||||
- build_android:
|
||||
release_type: "prealpha"
|
||||
- build_hermesc_linux:
|
||||
requires:
|
||||
- prepare_hermes_workspace
|
||||
- build_hermesc_apple:
|
||||
requires:
|
||||
- prepare_hermes_workspace
|
||||
- build_apple_slices_hermes:
|
||||
requires:
|
||||
- build_hermesc_apple
|
||||
matrix:
|
||||
parameters:
|
||||
flavor: ["Debug", "Release"]
|
||||
slice: ["macosx", "iphoneos", "iphonesimulator", "catalyst"]
|
||||
- build_hermesc_windows:
|
||||
requires:
|
||||
- prepare_hermes_workspace
|
||||
- build_hermes_macos:
|
||||
requires:
|
||||
- build_apple_slices_hermes
|
||||
matrix:
|
||||
parameters:
|
||||
flavor: ["Debug", "Release"]
|
||||
- build_npm_package:
|
||||
release_type: "prealpha"
|
||||
requires:
|
||||
- build_android
|
||||
- build_hermesc_linux
|
||||
- build_hermes_macos
|
||||
- build_hermesc_windows
|
||||
|
||||
publish_bumped_packages:
|
||||
when:
|
||||
and:
|
||||
- equal: [ false, << pipeline.parameters.run_release_workflow >> ]
|
||||
- equal: [ false, << pipeline.parameters.run_nightly_workflow >> ]
|
||||
- equal: [ false, << pipeline.parameters.run_prealpha_workflow >> ]
|
||||
jobs:
|
||||
- find_and_publish_bumped_packages:
|
||||
<<: *main_or_stable_only
|
||||
|
||||
Reference in New Issue
Block a user