@@ -936,6 +936,53 @@ jobs:
936936 name : Verify purchases-ui target SDK (34)
937937 command : ./gradlew :test-apps:testpurchasesuiandroidcompatibility:assembleDebug --no-daemon --parallel
938938
939+ build-purchases-devenv :
940+ docker :
941+ - image : ghcr.io/cachix/devenv/devenv:latest
942+ resource_class : xlarge
943+ steps :
944+ - run :
945+ name : Install SSH and checkout code
946+ command : |
947+ nix profile install nixpkgs#openssh --priority 6
948+ mkdir -p ~/.ssh
949+ echo "github.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOMqqnkVzrm0SdG6UOoqKLsabgH5C9okWi0dh2l9GKJl" >> ~/.ssh/known_hosts
950+ git clone --depth 1 --branch "$CIRCLE_BRANCH" "$CIRCLE_REPOSITORY_URL" .
951+ if [ -n "$CIRCLE_SHA1" ]; then
952+ git fetch --depth 1 origin "$CIRCLE_SHA1"
953+ git checkout "$CIRCLE_SHA1"
954+ fi
955+ - restore_cache :
956+ keys :
957+ - devenv-nix-store-v1-{{ checksum "devenv.lock" }}
958+ - devenv-nix-store-v1-
959+ - run :
960+ name : Generate devenv.lock if missing
961+ command : |
962+ if [ ! -f devenv.lock ]; then
963+ echo "devenv.lock not found, generating..."
964+ devenv shell --no-reload -- true
965+ fi
966+ - revenuecat/setup-git-credentials
967+ - revenuecat/trust-github-key
968+ - run :
969+ name : Commit devenv.lock if new or changed
970+ command : |
971+ git add devenv.lock
972+ if git diff --cached --quiet; then
973+ echo "devenv.lock unchanged, skipping commit"
974+ else
975+ git commit -m "chore: generate devenv.lock [skip ci]"
976+ git push origin HEAD
977+ fi
978+ - run :
979+ name : Build purchases module with devenv
980+ command : devenv shell --no-reload -- ./gradlew :purchases:assembleDefaultsBc8Debug --no-daemon
981+ - save_cache :
982+ key : devenv-nix-store-v1-{{ checksum "devenv.lock" }}
983+ paths :
984+ - /nix/store
985+
939986workflows :
940987 version : 2
941988 danger :
@@ -979,151 +1026,152 @@ workflows:
9791026 equal : [ scheduled_pipeline, << pipeline.trigger_source >> ]
9801027 - equal : [ "default", << pipeline.parameters.action >> ]
9811028 jobs :
982- - prepare-tests
983- - test :
984- name : test_defaults_bc8_debug
985- flavor : " defaults"
986- bc_version : " bc8"
987- build_type : " debug"
988- requires :
989- - prepare-tests
990- - test :
991- name : test_defaults_bc7_release
992- flavor : " defaults"
993- bc_version : " bc7"
994- build_type : " release"
995- requires :
996- - prepare-tests
997- - test :
998- name : test_cec_<< matrix.build_type >>
999- flavor : " customEntitlementComputation"
1000- bc_version : " bc8"
1001- requires :
1002- - prepare-tests
1003- matrix :
1004- parameters :
1005- build_type : ["debug", "release"]
1006- # Special case for defaults BC8 release with kover
1007- - test :
1008- name : test_defaults_bc8_release
1009- flavor : " defaults"
1010- bc_version : " bc8"
1011- build_type : " release"
1012- run_kover : true
1013- requires :
1014- - prepare-tests
1015- - verify-compatibility :
1016- requires :
1017- - prepare-tests
1018- - lint :
1019- requires :
1020- - prepare-tests
1021- - detekt :
1022- requires :
1023- - prepare-tests
1024- - metalava :
1025- requires :
1026- - prepare-tests
1027- - assemble-purchase-tester :
1028- requires :
1029- - prepare-tests
1030- - assemble-paywall-tester-release :
1031- requires :
1032- - prepare-tests
1033- - assemble-rct-tester-release :
1034- requires :
1035- - prepare-tests
1036- - assemble-admob-integration-sample-app :
1037- requires :
1038- - prepare-tests
1039- - test_dokka_hide_internal :
1040- requires :
1041- - prepare-tests
1042- - test-galaxy :
1043- requires :
1044- - prepare-tests
1045- - run-backend-integration-tests :
1046- requires :
1047- - prepare-tests
1048- - record-and-upload-paparazzi-revenuecatui-snapshots :
1049- requires :
1050- - prepare-tests
1051- - run-revenuecatui-ui-tests :
1052- requires :
1053- - prepare-tests
1054- - emerge_purchases_ui_snapshot_tests :
1055- requires :
1056- - prepare-tests
1057- - emerge_size_analysis_tests :
1058- requires :
1059- - prepare-tests
1060- - run-maestro-e2e-tests :
1061- requires :
1062- - prepare-tests
1063- - run-integration-tests :
1064- requires :
1065- - prepare-tests
1066- - run-purchases-cec-integration-tests :
1067- requires :
1068- - prepare-tests
1069- - run-purchases-integration-tests :
1070- requires :
1071- - prepare-tests
1072- matrix :
1073- parameters :
1074- backend_environment : ["production", "load_shedder_us_east_1", "load_shedder_us_east_2"]
1075- - hold :
1076- type : approval
1077- requires :
1078- - test_defaults_bc8_debug
1079- - test_defaults_bc8_release
1080- - test_defaults_bc7_release
1081- - test-galaxy
1082- - test_cec_debug
1083- - test_cec_release
1084- - assemble-purchase-tester
1085- - assemble-paywall-tester-release
1086- - run-backend-integration-tests
1087- - run-maestro-e2e-tests
1088- - run-revenuecatui-ui-tests
1089- - run-integration-tests
1090- - run-purchases-integration-tests
1091- - run-purchases-cec-integration-tests
1092- - verify-compatibility
1093- << : *release-branches
1094- - revenuecat/tag-current-branch :
1095- requires :
1096- - hold
1097- << : *release-branches
1098- - deploy :
1099- << : *release-tags
1100- context : maven-central-publishing
1101- - docs-deploy : *release-tags
1102- - publish-purchase-tester-release :
1103- requires :
1104- - deploy
1105- - docs-deploy
1106- << : *release-tags
1107- - publish-paywall-tester-release :
1108- track : " alpha"
1109- requires :
1110- - deploy
1111- - docs-deploy
1112- << : *release-tags
1113- - publish-rct-tester-release :
1114- track : " alpha"
1115- requires :
1116- - deploy
1117- - docs-deploy
1118- << : *release-tags
1119- - revenuecat/merge-release-pr :
1120- repo_name : purchases-android
1121- use_merge_queue : true
1122- requires :
1123- - publish-purchase-tester-release
1124- - publish-paywall-tester-release
1125- - publish-rct-tester-release
1126- << : *release-tags
1029+ # - prepare-tests
1030+ - build-purchases-devenv
1031+ # - test:
1032+ # name: test_defaults_bc8_debug
1033+ # flavor: "defaults"
1034+ # bc_version: "bc8"
1035+ # build_type: "debug"
1036+ # requires:
1037+ # - prepare-tests
1038+ # - test:
1039+ # name: test_defaults_bc7_release
1040+ # flavor: "defaults"
1041+ # bc_version: "bc7"
1042+ # build_type: "release"
1043+ # requires:
1044+ # - prepare-tests
1045+ # - test:
1046+ # name: test_cec_<< matrix.build_type >>
1047+ # flavor: "customEntitlementComputation"
1048+ # bc_version: "bc8"
1049+ # requires:
1050+ # - prepare-tests
1051+ # matrix:
1052+ # parameters:
1053+ # build_type: ["debug", "release"]
1054+ # # Special case for defaults BC8 release with kover
1055+ # - test:
1056+ # name: test_defaults_bc8_release
1057+ # flavor: "defaults"
1058+ # bc_version: "bc8"
1059+ # build_type: "release"
1060+ # run_kover: true
1061+ # requires:
1062+ # - prepare-tests
1063+ # - verify-compatibility:
1064+ # requires:
1065+ # - prepare-tests
1066+ # - lint:
1067+ # requires:
1068+ # - prepare-tests
1069+ # - detekt:
1070+ # requires:
1071+ # - prepare-tests
1072+ # - metalava:
1073+ # requires:
1074+ # - prepare-tests
1075+ # - assemble-purchase-tester:
1076+ # requires:
1077+ # - prepare-tests
1078+ # - assemble-paywall-tester-release:
1079+ # requires:
1080+ # - prepare-tests
1081+ # - assemble-rct-tester-release:
1082+ # requires:
1083+ # - prepare-tests
1084+ # - assemble-admob-integration-sample-app:
1085+ # requires:
1086+ # - prepare-tests
1087+ # - test_dokka_hide_internal:
1088+ # requires:
1089+ # - prepare-tests
1090+ # - test-galaxy:
1091+ # requires:
1092+ # - prepare-tests
1093+ # - run-backend-integration-tests:
1094+ # requires:
1095+ # - prepare-tests
1096+ # - record-and-upload-paparazzi-revenuecatui-snapshots:
1097+ # requires:
1098+ # - prepare-tests
1099+ # - run-revenuecatui-ui-tests:
1100+ # requires:
1101+ # - prepare-tests
1102+ # - emerge_purchases_ui_snapshot_tests:
1103+ # requires:
1104+ # - prepare-tests
1105+ # - emerge_size_analysis_tests:
1106+ # requires:
1107+ # - prepare-tests
1108+ # - run-maestro-e2e-tests:
1109+ # requires:
1110+ # - prepare-tests
1111+ # - run-integration-tests:
1112+ # requires:
1113+ # - prepare-tests
1114+ # - run-purchases-cec-integration-tests:
1115+ # requires:
1116+ # - prepare-tests
1117+ # - run-purchases-integration-tests:
1118+ # requires:
1119+ # - prepare-tests
1120+ # matrix:
1121+ # parameters:
1122+ # backend_environment: ["production", "load_shedder_us_east_1", "load_shedder_us_east_2"]
1123+ # - hold:
1124+ # type: approval
1125+ # requires:
1126+ # - test_defaults_bc8_debug
1127+ # - test_defaults_bc8_release
1128+ # - test_defaults_bc7_release
1129+ # - test-galaxy
1130+ # - test_cec_debug
1131+ # - test_cec_release
1132+ # - assemble-purchase-tester
1133+ # - assemble-paywall-tester-release
1134+ # - run-backend-integration-tests
1135+ # - run-maestro-e2e-tests
1136+ # - run-revenuecatui-ui-tests
1137+ # - run-integration-tests
1138+ # - run-purchases-integration-tests
1139+ # - run-purchases-cec-integration-tests
1140+ # - verify-compatibility
1141+ # <<: *release-branches
1142+ # - revenuecat/tag-current-branch:
1143+ # requires:
1144+ # - hold
1145+ # <<: *release-branches
1146+ # - deploy:
1147+ # <<: *release-tags
1148+ # context: maven-central-publishing
1149+ # - docs-deploy: *release-tags
1150+ # - publish-purchase-tester-release:
1151+ # requires:
1152+ # - deploy
1153+ # - docs-deploy
1154+ # <<: *release-tags
1155+ # - publish-paywall-tester-release:
1156+ # track: "alpha"
1157+ # requires:
1158+ # - deploy
1159+ # - docs-deploy
1160+ # <<: *release-tags
1161+ # - publish-rct-tester-release:
1162+ # track: "alpha"
1163+ # requires:
1164+ # - deploy
1165+ # - docs-deploy
1166+ # <<: *release-tags
1167+ # - revenuecat/merge-release-pr:
1168+ # repo_name: purchases-android
1169+ # use_merge_queue: true
1170+ # requires:
1171+ # - publish-purchase-tester-release
1172+ # - publish-paywall-tester-release
1173+ # - publish-rct-tester-release
1174+ # <<: *release-tags
11271175
11281176 on-main-branch :
11291177 when :
0 commit comments