@@ -936,6 +936,56 @@ 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 : Configure Nix GitHub access token
946+ command : |
947+ mkdir -p ~/.config/nix
948+ echo "access-tokens = github.com=$GITHUB_TOKEN" >> ~/.config/nix/nix.conf
949+ - run :
950+ name : Checkout code
951+ command : |
952+ git clone --depth 1 --branch "$CIRCLE_BRANCH" \
953+ "https://x-access-token:${GITHUB_TOKEN}@github.com/${CIRCLE_PROJECT_USERNAME}/${CIRCLE_PROJECT_REPONAME}.git" .
954+ if [ -n "$CIRCLE_SHA1" ]; then
955+ git fetch --depth 1 origin "$CIRCLE_SHA1"
956+ git checkout "$CIRCLE_SHA1"
957+ fi
958+ - restore_cache :
959+ keys :
960+ - devenv-nix-store-v1-{{ checksum "devenv.lock" }}
961+ - devenv-nix-store-v1-
962+ - run :
963+ name : Generate devenv.lock if missing
964+ command : |
965+ if [ ! -f devenv.lock ]; then
966+ echo "devenv.lock not found, generating..."
967+ devenv shell --no-reload -- true
968+ fi
969+ - run :
970+ name : Commit devenv.lock if new or changed
971+ command : |
972+ git add devenv.lock
973+ if git diff --cached --quiet; then
974+ echo "devenv.lock unchanged, skipping commit"
975+ else
976+ git config user.email "[email protected] " 977+ git config user.name "CircleCI"
978+ git commit -m "chore: generate devenv.lock [skip ci]"
979+ git push origin HEAD
980+ fi
981+ - run :
982+ name : Build purchases module with devenv
983+ command : devenv shell --no-reload -- ./gradlew :purchases:assembleDefaultsBc8Debug --no-daemon
984+ - save_cache :
985+ key : devenv-nix-store-v1-{{ checksum "devenv.lock" }}
986+ paths :
987+ - /nix/store
988+
939989workflows :
940990 version : 2
941991 danger :
@@ -979,151 +1029,152 @@ workflows:
9791029 equal : [ scheduled_pipeline, << pipeline.trigger_source >> ]
9801030 - equal : [ "default", << pipeline.parameters.action >> ]
9811031 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
1032+ # - prepare-tests
1033+ - build-purchases-devenv
1034+ # - test:
1035+ # name: test_defaults_bc8_debug
1036+ # flavor: "defaults"
1037+ # bc_version: "bc8"
1038+ # build_type: "debug"
1039+ # requires:
1040+ # - prepare-tests
1041+ # - test:
1042+ # name: test_defaults_bc7_release
1043+ # flavor: "defaults"
1044+ # bc_version: "bc7"
1045+ # build_type: "release"
1046+ # requires:
1047+ # - prepare-tests
1048+ # - test:
1049+ # name: test_cec_<< matrix.build_type >>
1050+ # flavor: "customEntitlementComputation"
1051+ # bc_version: "bc8"
1052+ # requires:
1053+ # - prepare-tests
1054+ # matrix:
1055+ # parameters:
1056+ # build_type: ["debug", "release"]
1057+ # # Special case for defaults BC8 release with kover
1058+ # - test:
1059+ # name: test_defaults_bc8_release
1060+ # flavor: "defaults"
1061+ # bc_version: "bc8"
1062+ # build_type: "release"
1063+ # run_kover: true
1064+ # requires:
1065+ # - prepare-tests
1066+ # - verify-compatibility:
1067+ # requires:
1068+ # - prepare-tests
1069+ # - lint:
1070+ # requires:
1071+ # - prepare-tests
1072+ # - detekt:
1073+ # requires:
1074+ # - prepare-tests
1075+ # - metalava:
1076+ # requires:
1077+ # - prepare-tests
1078+ # - assemble-purchase-tester:
1079+ # requires:
1080+ # - prepare-tests
1081+ # - assemble-paywall-tester-release:
1082+ # requires:
1083+ # - prepare-tests
1084+ # - assemble-rct-tester-release:
1085+ # requires:
1086+ # - prepare-tests
1087+ # - assemble-admob-integration-sample-app:
1088+ # requires:
1089+ # - prepare-tests
1090+ # - test_dokka_hide_internal:
1091+ # requires:
1092+ # - prepare-tests
1093+ # - test-galaxy:
1094+ # requires:
1095+ # - prepare-tests
1096+ # - run-backend-integration-tests:
1097+ # requires:
1098+ # - prepare-tests
1099+ # - record-and-upload-paparazzi-revenuecatui-snapshots:
1100+ # requires:
1101+ # - prepare-tests
1102+ # - run-revenuecatui-ui-tests:
1103+ # requires:
1104+ # - prepare-tests
1105+ # - emerge_purchases_ui_snapshot_tests:
1106+ # requires:
1107+ # - prepare-tests
1108+ # - emerge_size_analysis_tests:
1109+ # requires:
1110+ # - prepare-tests
1111+ # - run-maestro-e2e-tests:
1112+ # requires:
1113+ # - prepare-tests
1114+ # - run-integration-tests:
1115+ # requires:
1116+ # - prepare-tests
1117+ # - run-purchases-cec-integration-tests:
1118+ # requires:
1119+ # - prepare-tests
1120+ # - run-purchases-integration-tests:
1121+ # requires:
1122+ # - prepare-tests
1123+ # matrix:
1124+ # parameters:
1125+ # backend_environment: ["production", "load_shedder_us_east_1", "load_shedder_us_east_2"]
1126+ # - hold:
1127+ # type: approval
1128+ # requires:
1129+ # - test_defaults_bc8_debug
1130+ # - test_defaults_bc8_release
1131+ # - test_defaults_bc7_release
1132+ # - test-galaxy
1133+ # - test_cec_debug
1134+ # - test_cec_release
1135+ # - assemble-purchase-tester
1136+ # - assemble-paywall-tester-release
1137+ # - run-backend-integration-tests
1138+ # - run-maestro-e2e-tests
1139+ # - run-revenuecatui-ui-tests
1140+ # - run-integration-tests
1141+ # - run-purchases-integration-tests
1142+ # - run-purchases-cec-integration-tests
1143+ # - verify-compatibility
1144+ # <<: *release-branches
1145+ # - revenuecat/tag-current-branch:
1146+ # requires:
1147+ # - hold
1148+ # <<: *release-branches
1149+ # - deploy:
1150+ # <<: *release-tags
1151+ # context: maven-central-publishing
1152+ # - docs-deploy: *release-tags
1153+ # - publish-purchase-tester-release:
1154+ # requires:
1155+ # - deploy
1156+ # - docs-deploy
1157+ # <<: *release-tags
1158+ # - publish-paywall-tester-release:
1159+ # track: "alpha"
1160+ # requires:
1161+ # - deploy
1162+ # - docs-deploy
1163+ # <<: *release-tags
1164+ # - publish-rct-tester-release:
1165+ # track: "alpha"
1166+ # requires:
1167+ # - deploy
1168+ # - docs-deploy
1169+ # <<: *release-tags
1170+ # - revenuecat/merge-release-pr:
1171+ # repo_name: purchases-android
1172+ # use_merge_queue: true
1173+ # requires:
1174+ # - publish-purchase-tester-release
1175+ # - publish-paywall-tester-release
1176+ # - publish-rct-tester-release
1177+ # <<: *release-tags
11271178
11281179 on-main-branch :
11291180 when :
0 commit comments