Skip to content

Commit fe41cff

Browse files
committed
Adds devenv
1 parent a64814b commit fe41cff

File tree

3 files changed

+216
-145
lines changed

3 files changed

+216
-145
lines changed

.circleci/config.yml

Lines changed: 193 additions & 145 deletions
Original file line numberDiff line numberDiff line change
@@ -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+
939986
workflows:
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:

devenv.nix

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
{ pkgs, ... }:
2+
3+
{
4+
languages.java = {
5+
enable = true;
6+
jdk.package = pkgs.jdk21;
7+
};
8+
9+
android = {
10+
enable = true;
11+
platforms.version = [ "35" ];
12+
buildTools.version = [ "35.0.0" ];
13+
cmdLineTools.version = "11.0";
14+
emulator.enable = false;
15+
systemImages.enable = false;
16+
sources.enable = false;
17+
ndk.enable = false;
18+
googleAPIs.enable = false;
19+
googleTVAddOns.enable = false;
20+
};
21+
}

devenv.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
nixpkgs:
2+
allowUnfree: true

0 commit comments

Comments
 (0)