├── .editorconfig
├── .github
├── helper.py
├── projects.svg
├── renovate.json5
├── requirements.txt
└── workflows
│ ├── .java-version
│ └── build.yaml
├── .gitignore
├── README.md
├── gradle
└── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew
├── libs.versions.toml
├── projects.yaml
└── settings.gradle
/.editorconfig:
--------------------------------------------------------------------------------
1 | root = true
2 |
3 | [*]
4 | indent_style = tab
5 | indent_size = 2
6 | end_of_line = lf
7 | charset = utf-8
8 | trim_trailing_whitespace = true
9 | insert_final_newline = true
10 |
11 | [*.yaml]
12 | indent_style = space
13 |
--------------------------------------------------------------------------------
/.github/helper.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python3
2 |
3 | import subprocess
4 | import sys
5 | import tempfile
6 | import tomlkit
7 | import yaml
8 |
9 | def main():
10 | if len(sys.argv) <= 1:
11 | print('Argument required')
12 | exit(1)
13 | match sys.argv[1]:
14 | case 'generate':
15 | generate()
16 | case 'patch-toml':
17 | if len(sys.argv) != 6:
18 | print('Incorrect arguments for patch-toml')
19 | patch_toml(sys.argv[2], sys.argv[3], sys.argv[4], sys.argv[5])
20 | case _:
21 | print('Unknown command:', sys.argv[1])
22 | exit(1)
23 |
24 |
25 | def patch_toml(project_dir: str, toml_key: str, version_type: str, version_arg: str):
26 | match version_type:
27 | case 'key':
28 | this_toml_path = 'this/libs.versions.toml'
29 | with open(this_toml_path, 'r') as f:
30 | this_toml = tomlkit.parse(f.read())
31 | version = this_toml['versions'][version_arg]
32 | case 'value':
33 | version = version_arg
34 | case _:
35 | print("Unknown version type:", version_type)
36 | exit(1)
37 |
38 | project_toml_path = project_dir + '/gradle/libs.versions.toml'
39 | with open(project_toml_path, 'r') as f:
40 | project_toml = tomlkit.parse(f.read())
41 |
42 | if toml_key.startswith('versions.'):
43 | toml_versions_key = toml_key.removeprefix('versions.')
44 | project_toml['versions'][toml_versions_key] = version
45 | elif toml_key.startswith('plugins.'):
46 | toml_plugins_key = toml_key.removeprefix('plugins.')
47 | project_toml['plugins'][toml_plugins_key]['version'] = version
48 | elif toml_key.startswith('libraries.'):
49 | toml_libraries_key = toml_key.removeprefix('libraries.')
50 | project_toml_library = project_toml['libraries'][toml_libraries_key]
51 | if isinstance(project_toml_library, str):
52 | coordinates = project_toml_library.rpartition(':')[0]
53 | new_triple = coordinates + ':' + version
54 | project_toml['libraries'][toml_libraries_key] = new_triple
55 | else:
56 | project_toml_library['version'] = version
57 | else:
58 | print('Unknown TOML key prefix:', toml_key)
59 | exit(1)
60 |
61 | with open(project_toml_path, 'w') as f:
62 | f.write(tomlkit.dumps(project_toml))
63 |
64 |
65 | def generate():
66 | with open('projects.yaml', 'r') as y:
67 | projects = yaml.safe_load(y)
68 |
69 | with tempfile.NamedTemporaryFile(mode = 'w', delete = False) as f:
70 | f.write('direction: left\n\n')
71 |
72 | for project, config in projects.items():
73 | f.write(project + '\n')
74 |
75 | if 'internal_dependencies' in config:
76 | for dep in config['internal_dependencies'].keys():
77 | f.write(project + ' -> ' + dep + '\n')
78 |
79 | f.close()
80 |
81 | subprocess.run(['d2', '--layout=elk', f.name, '.github/projects.svg'])
82 |
83 | with open('.github/workflows/build.yaml', 'w') as f:
84 | f.write('''name: build
85 |
86 | on:
87 | pull_request: {}
88 | workflow_dispatch: {}
89 | push:
90 | branches:
91 | - 'trunk'
92 | schedule:
93 | # 9:23 AM EST
94 | - cron: "23 13 * * *"
95 |
96 | env:
97 | GRADLE_OPTS: "-Dorg.gradle.jvmargs=-Xmx6g -Dkotlin.incremental=false -Dorg.gradle.daemon=false -Dorg.gradle.vfs.watch=false -Dorg.gradle.logging.stacktrace=full"
98 |
99 | jobs:
100 | workflow-up-to-date:
101 | runs-on: macos-latest
102 | steps:
103 | - uses: actions/checkout@v4
104 | - uses: actions/setup-python@v5
105 | with:
106 | python-version: '3.13'
107 | - run: brew update && brew install d2
108 | - run: pip install -r .github/requirements.txt
109 | - run: .github/helper.py generate
110 | - run: git diff --exit-code
111 |
112 | ''')
113 |
114 | for project, config in projects.items():
115 | safe_project = project.replace('/', '-')
116 | f.write(' ' + safe_project + ''':
117 | runs-on: macos-latest
118 | if: ${{ !cancelled() }}
119 | ''')
120 |
121 | if 'version' in config:
122 | f.write(''' outputs:
123 | version: ${{ steps.version.outputs.version }}
124 | ''')
125 |
126 | f.write(''' needs:
127 | - workflow-up-to-date
128 | ''')
129 | if 'internal_dependencies' in config:
130 | for dep in config['internal_dependencies']:
131 | safe_dep = dep.replace('/', '-')
132 | f.write(' - ' + safe_dep + '\n')
133 |
134 | f.write(''' steps:
135 | - name: Checkout this repository
136 | uses: actions/checkout@v4
137 | with:
138 | path: this
139 | - name: "Checkout ''' + project + ''' repository"
140 | uses: actions/checkout@v4
141 | with:
142 | repository: ''' + project + '''
143 | path: ''' + safe_project + '\n')
144 | if 'ref' in config:
145 | f.write(' ref: ' + config['ref'] + '\n')
146 | f.write(''' - uses: actions/setup-java@v4
147 | with:
148 | distribution: 'zulu'
149 | java-version-file: this/.github/workflows/.java-version
150 | - uses: gradle/actions/setup-gradle@v4
151 | - uses: actions/setup-python@v5
152 | with:
153 | python-version: '3.13'
154 | - name: Patch external dependencies
155 | run: |
156 | pip install -r this/.github/requirements.txt
157 | ''')
158 |
159 | if 'external_dependencies' in config:
160 | for dep, key in config['external_dependencies'].items():
161 | f.write(' this/.github/helper.py patch-toml ' + safe_project + ' ' + key + ' key ' + dep + '\n')
162 |
163 | if 'internal_dependencies' in config:
164 | for dep, key in config['internal_dependencies'].items():
165 | safe_dep = dep.replace('/', '-')
166 | f.write(' - name: "Download internal dependency ' + dep + '''"
167 | uses: actions/download-artifact@v4
168 | if: ${{ needs.''' + safe_dep + '''.result == 'success' }}
169 | with:
170 | name: ''' + safe_dep + '''-snapshot
171 | path: ~/.m2/repository
172 | - name: "Patch internal dependency ''' + dep + '''"
173 | run: this/.github/helper.py patch-toml ''' + safe_project + ' ' + key + ''' value ${{ needs.''' + safe_dep + '''.outputs.version }}
174 | if: ${{ needs.''' + safe_dep + '''.result == 'success' }}
175 | ''')
176 |
177 | if 'pre_gradle' in config:
178 | f.write(' - name: "Pre-build ' + project + '''"
179 | run: ''' + config['pre_gradle'] + '\n')
180 | f.write(' - name: "Build ' + project + '''"
181 | run: |
182 | cd ''' + safe_project + '''
183 | git grep -l 'mavenCentral()' 'build.*' '**/build.*' 'settings.*' '**/settings.*' | xargs sed -i "" "s/mavenCentral()/mavenLocal(); mavenCentral()/g"
184 | git diff --patch
185 | ../this/gradlew ''')
186 | if 'pre_build' in config:
187 | f.write(config['pre_build'] + ' ')
188 | if 'version' not in config:
189 | f.write('build')
190 | if 'post_build' in config:
191 | f.write(' ' + config['post_build'])
192 | f.write('\n')
193 | else:
194 | if 'compile_only' in config and config['compile_only']:
195 | f.write('publishToMavenLocal')
196 | else:
197 | f.write('build publishToMavenLocal')
198 | if 'post_build' in config:
199 | f.write(' ' + config['post_build'])
200 | f.write('\n')
201 |
202 | f.write(''' - uses: actions/upload-artifact@v4
203 | with:
204 | name: ''' + safe_project + '''-snapshot
205 | path: ~/.m2/repository
206 | if-no-files-found: error
207 | - id: version
208 | ''')
209 | version = config['version']
210 | if 'regex' in version:
211 | f.write(''' run: perl -ne '/''' + version['regex'].encode('unicode_escape').decode("utf-8") + '''/ and print "version=$1",$/' ''' + safe_project + '/' + version['file'] + ' >> "$GITHUB_OUTPUT"\n')
212 | else:
213 | raise Exception("Unknown version strategy")
214 |
215 | f.write('\n')
216 |
217 | f.write(''' final-status:
218 | if: ${{ !cancelled() }}
219 | runs-on: ubuntu-latest
220 | needs:
221 | - workflow-up-to-date
222 | ''')
223 | for project in projects.keys():
224 | safe_project = project.replace('/', '-')
225 | f.write(' - ' + safe_project + '\n')
226 | f.write(''' steps:
227 | - name: Check
228 | run: |
229 | results=$(tr -d '\\n' <<< '${{ toJSON(needs.*.result) }}')
230 | if ! grep -q -v -E '(failure|cancelled)' <<< "$results"; then
231 | echo "One or more required jobs failed"
232 | exit 1
233 | fi
234 | ''')
235 |
236 |
237 | if __name__ == '__main__':
238 | main()
239 |
--------------------------------------------------------------------------------
/.github/projects.svg:
--------------------------------------------------------------------------------
1 |
120 |
--------------------------------------------------------------------------------
/.github/renovate.json5:
--------------------------------------------------------------------------------
1 | {
2 | $schema: 'https://docs.renovatebot.com/renovate-schema.json',
3 | extends: [
4 | 'config:recommended',
5 | ],
6 | rebaseWhen: 'behind-base-branch',
7 | ignoreUnstable: false,
8 | respectLatest: false,
9 | separateMinorPatch: true,
10 | separateMultipleMajor: true,
11 | separateMultipleMinor: true,
12 | prConcurrentLimit: 0,
13 | prHourlyLimit: 0,
14 | ignorePresets: [
15 | // Ensure we get the latest version and are not pinned to old versions.
16 | 'workarounds:javaLTSVersions',
17 | ],
18 | customManagers: [
19 | // Update .java-version file with the latest JDK version.
20 | {
21 | customType: 'regex',
22 | managerFilePatterns: [
23 | '/\\.java-version$/',
24 | ],
25 | matchStrings: [
26 | '(?.*)\\n',
27 | ],
28 | datasourceTemplate: 'java-version',
29 | depNameTemplate: 'java',
30 | // Only write the major version.
31 | extractVersionTemplate: '^(?\\d+)',
32 | },
33 | ],
34 | packageRules: [
35 | {
36 | groupName: 'Kotlin and KSP',
37 | matchPackageNames: [
38 | 'com.google.devtools.ksp:symbol-processing-gradle-plugin',
39 | 'org.jetbrains.kotlin:kotlin-gradle-plugin',
40 | ],
41 | },
42 | ],
43 | }
44 |
--------------------------------------------------------------------------------
/.github/requirements.txt:
--------------------------------------------------------------------------------
1 | pyyaml==6.0.2
2 | tomlkit==0.13.3
3 |
--------------------------------------------------------------------------------
/.github/workflows/.java-version:
--------------------------------------------------------------------------------
1 | 22
2 |
--------------------------------------------------------------------------------
/.github/workflows/build.yaml:
--------------------------------------------------------------------------------
1 | name: build
2 |
3 | on:
4 | pull_request: {}
5 | workflow_dispatch: {}
6 | push:
7 | branches:
8 | - 'trunk'
9 | schedule:
10 | # 9:23 AM EST
11 | - cron: "23 13 * * *"
12 |
13 | env:
14 | GRADLE_OPTS: "-Dorg.gradle.jvmargs=-Xmx6g -Dkotlin.incremental=false -Dorg.gradle.daemon=false -Dorg.gradle.vfs.watch=false -Dorg.gradle.logging.stacktrace=full"
15 |
16 | jobs:
17 | workflow-up-to-date:
18 | runs-on: macos-latest
19 | steps:
20 | - uses: actions/checkout@v4
21 | - uses: actions/setup-python@v5
22 | with:
23 | python-version: '3.13'
24 | - run: brew update && brew install d2
25 | - run: pip install -r .github/requirements.txt
26 | - run: .github/helper.py generate
27 | - run: git diff --exit-code
28 |
29 | cashapp-burst:
30 | runs-on: macos-latest
31 | if: ${{ !cancelled() }}
32 | outputs:
33 | version: ${{ steps.version.outputs.version }}
34 | needs:
35 | - workflow-up-to-date
36 | steps:
37 | - name: Checkout this repository
38 | uses: actions/checkout@v4
39 | with:
40 | path: this
41 | - name: "Checkout cashapp/burst repository"
42 | uses: actions/checkout@v4
43 | with:
44 | repository: cashapp/burst
45 | path: cashapp-burst
46 | - uses: actions/setup-java@v4
47 | with:
48 | distribution: 'zulu'
49 | java-version-file: this/.github/workflows/.java-version
50 | - uses: gradle/actions/setup-gradle@v4
51 | - uses: actions/setup-python@v5
52 | with:
53 | python-version: '3.13'
54 | - name: Patch external dependencies
55 | run: |
56 | pip install -r this/.github/requirements.txt
57 | this/.github/helper.py patch-toml cashapp-burst libraries.android-gradlePlugin key agp
58 | this/.github/helper.py patch-toml cashapp-burst versions.kotlin key kotlin
59 | this/.github/helper.py patch-toml cashapp-burst libraries.google-ksp key ksp
60 | - name: "Build cashapp/burst"
61 | run: |
62 | cd cashapp-burst
63 | git grep -l 'mavenCentral()' 'build.*' '**/build.*' 'settings.*' '**/settings.*' | xargs sed -i "" "s/mavenCentral()/mavenLocal(); mavenCentral()/g"
64 | git diff --patch
65 | ../this/gradlew kotlinUpgradeYarnLock build publishToMavenLocal
66 | - uses: actions/upload-artifact@v4
67 | with:
68 | name: cashapp-burst-snapshot
69 | path: ~/.m2/repository
70 | if-no-files-found: error
71 | - id: version
72 | run: perl -ne '/VERSION_NAME=(.*)/ and print "version=$1",$/' cashapp-burst/gradle.properties >> "$GITHUB_OUTPUT"
73 |
74 | cashapp-copper:
75 | runs-on: macos-latest
76 | if: ${{ !cancelled() }}
77 | outputs:
78 | version: ${{ steps.version.outputs.version }}
79 | needs:
80 | - workflow-up-to-date
81 | - cashapp-turbine
82 | steps:
83 | - name: Checkout this repository
84 | uses: actions/checkout@v4
85 | with:
86 | path: this
87 | - name: "Checkout cashapp/copper repository"
88 | uses: actions/checkout@v4
89 | with:
90 | repository: cashapp/copper
91 | path: cashapp-copper
92 | - uses: actions/setup-java@v4
93 | with:
94 | distribution: 'zulu'
95 | java-version-file: this/.github/workflows/.java-version
96 | - uses: gradle/actions/setup-gradle@v4
97 | - uses: actions/setup-python@v5
98 | with:
99 | python-version: '3.13'
100 | - name: Patch external dependencies
101 | run: |
102 | pip install -r this/.github/requirements.txt
103 | this/.github/helper.py patch-toml cashapp-copper libraries.android-gradlePlugin key agp
104 | this/.github/helper.py patch-toml cashapp-copper libraries.kotlin-gradlePlugin key kotlin
105 | - name: "Download internal dependency cashapp/turbine"
106 | uses: actions/download-artifact@v4
107 | if: ${{ needs.cashapp-turbine.result == 'success' }}
108 | with:
109 | name: cashapp-turbine-snapshot
110 | path: ~/.m2/repository
111 | - name: "Patch internal dependency cashapp/turbine"
112 | run: this/.github/helper.py patch-toml cashapp-copper libraries.turbine value ${{ needs.cashapp-turbine.outputs.version }}
113 | if: ${{ needs.cashapp-turbine.result == 'success' }}
114 | - name: "Build cashapp/copper"
115 | run: |
116 | cd cashapp-copper
117 | git grep -l 'mavenCentral()' 'build.*' '**/build.*' 'settings.*' '**/settings.*' | xargs sed -i "" "s/mavenCentral()/mavenLocal(); mavenCentral()/g"
118 | git diff --patch
119 | ../this/gradlew build publishToMavenLocal
120 | - uses: actions/upload-artifact@v4
121 | with:
122 | name: cashapp-copper-snapshot
123 | path: ~/.m2/repository
124 | if-no-files-found: error
125 | - id: version
126 | run: perl -ne '/VERSION_NAME=(.*)/ and print "version=$1",$/' cashapp-copper/gradle.properties >> "$GITHUB_OUTPUT"
127 |
128 | cashapp-licensee:
129 | runs-on: macos-latest
130 | if: ${{ !cancelled() }}
131 | outputs:
132 | version: ${{ steps.version.outputs.version }}
133 | needs:
134 | - workflow-up-to-date
135 | - square-kotlinpoet
136 | steps:
137 | - name: Checkout this repository
138 | uses: actions/checkout@v4
139 | with:
140 | path: this
141 | - name: "Checkout cashapp/licensee repository"
142 | uses: actions/checkout@v4
143 | with:
144 | repository: cashapp/licensee
145 | path: cashapp-licensee
146 | - uses: actions/setup-java@v4
147 | with:
148 | distribution: 'zulu'
149 | java-version-file: this/.github/workflows/.java-version
150 | - uses: gradle/actions/setup-gradle@v4
151 | - uses: actions/setup-python@v5
152 | with:
153 | python-version: '3.13'
154 | - name: Patch external dependencies
155 | run: |
156 | pip install -r this/.github/requirements.txt
157 | this/.github/helper.py patch-toml cashapp-licensee versions.agp key agp
158 | this/.github/helper.py patch-toml cashapp-licensee versions.kotlin key kotlin
159 | - name: "Download internal dependency square/kotlinpoet"
160 | uses: actions/download-artifact@v4
161 | if: ${{ needs.square-kotlinpoet.result == 'success' }}
162 | with:
163 | name: square-kotlinpoet-snapshot
164 | path: ~/.m2/repository
165 | - name: "Patch internal dependency square/kotlinpoet"
166 | run: this/.github/helper.py patch-toml cashapp-licensee libraries.kotlinpoet value ${{ needs.square-kotlinpoet.outputs.version }}
167 | if: ${{ needs.square-kotlinpoet.result == 'success' }}
168 | - name: "Build cashapp/licensee"
169 | run: |
170 | cd cashapp-licensee
171 | git grep -l 'mavenCentral()' 'build.*' '**/build.*' 'settings.*' '**/settings.*' | xargs sed -i "" "s/mavenCentral()/mavenLocal(); mavenCentral()/g"
172 | git diff --patch
173 | ../this/gradlew publishToMavenLocal
174 | - uses: actions/upload-artifact@v4
175 | with:
176 | name: cashapp-licensee-snapshot
177 | path: ~/.m2/repository
178 | if-no-files-found: error
179 | - id: version
180 | run: perl -ne '/VERSION_NAME=(.*)/ and print "version=$1",$/' cashapp-licensee/gradle.properties >> "$GITHUB_OUTPUT"
181 |
182 | cashapp-molecule:
183 | runs-on: macos-latest
184 | if: ${{ !cancelled() }}
185 | outputs:
186 | version: ${{ steps.version.outputs.version }}
187 | needs:
188 | - workflow-up-to-date
189 | - cashapp-turbine
190 | - square-okhttp
191 | - square-retrofit
192 | steps:
193 | - name: Checkout this repository
194 | uses: actions/checkout@v4
195 | with:
196 | path: this
197 | - name: "Checkout cashapp/molecule repository"
198 | uses: actions/checkout@v4
199 | with:
200 | repository: cashapp/molecule
201 | path: cashapp-molecule
202 | - uses: actions/setup-java@v4
203 | with:
204 | distribution: 'zulu'
205 | java-version-file: this/.github/workflows/.java-version
206 | - uses: gradle/actions/setup-gradle@v4
207 | - uses: actions/setup-python@v5
208 | with:
209 | python-version: '3.13'
210 | - name: Patch external dependencies
211 | run: |
212 | pip install -r this/.github/requirements.txt
213 | this/.github/helper.py patch-toml cashapp-molecule libraries.android-plugin key agp
214 | this/.github/helper.py patch-toml cashapp-molecule versions.jetbrains-compose key jbCompose
215 | this/.github/helper.py patch-toml cashapp-molecule versions.kotlin key kotlin
216 | - name: "Download internal dependency cashapp/turbine"
217 | uses: actions/download-artifact@v4
218 | if: ${{ needs.cashapp-turbine.result == 'success' }}
219 | with:
220 | name: cashapp-turbine-snapshot
221 | path: ~/.m2/repository
222 | - name: "Patch internal dependency cashapp/turbine"
223 | run: this/.github/helper.py patch-toml cashapp-molecule libraries.turbine value ${{ needs.cashapp-turbine.outputs.version }}
224 | if: ${{ needs.cashapp-turbine.result == 'success' }}
225 | - name: "Download internal dependency square/okhttp"
226 | uses: actions/download-artifact@v4
227 | if: ${{ needs.square-okhttp.result == 'success' }}
228 | with:
229 | name: square-okhttp-snapshot
230 | path: ~/.m2/repository
231 | - name: "Patch internal dependency square/okhttp"
232 | run: this/.github/helper.py patch-toml cashapp-molecule versions.squareup-okhttp value ${{ needs.square-okhttp.outputs.version }}
233 | if: ${{ needs.square-okhttp.result == 'success' }}
234 | - name: "Download internal dependency square/retrofit"
235 | uses: actions/download-artifact@v4
236 | if: ${{ needs.square-retrofit.result == 'success' }}
237 | with:
238 | name: square-retrofit-snapshot
239 | path: ~/.m2/repository
240 | - name: "Patch internal dependency square/retrofit"
241 | run: this/.github/helper.py patch-toml cashapp-molecule versions.squareup-retrofit value ${{ needs.square-retrofit.outputs.version }}
242 | if: ${{ needs.square-retrofit.result == 'success' }}
243 | - name: "Build cashapp/molecule"
244 | run: |
245 | cd cashapp-molecule
246 | git grep -l 'mavenCentral()' 'build.*' '**/build.*' 'settings.*' '**/settings.*' | xargs sed -i "" "s/mavenCentral()/mavenLocal(); mavenCentral()/g"
247 | git diff --patch
248 | ../this/gradlew kotlinUpgradeYarnLock build publishToMavenLocal
249 | - uses: actions/upload-artifact@v4
250 | with:
251 | name: cashapp-molecule-snapshot
252 | path: ~/.m2/repository
253 | if-no-files-found: error
254 | - id: version
255 | run: perl -ne '/VERSION_NAME=(.*)/ and print "version=$1",$/' cashapp-molecule/gradle.properties >> "$GITHUB_OUTPUT"
256 |
257 | cashapp-paraphrase:
258 | runs-on: macos-latest
259 | if: ${{ !cancelled() }}
260 | outputs:
261 | version: ${{ steps.version.outputs.version }}
262 | needs:
263 | - workflow-up-to-date
264 | - square-kotlinpoet
265 | steps:
266 | - name: Checkout this repository
267 | uses: actions/checkout@v4
268 | with:
269 | path: this
270 | - name: "Checkout cashapp/paraphrase repository"
271 | uses: actions/checkout@v4
272 | with:
273 | repository: cashapp/paraphrase
274 | path: cashapp-paraphrase
275 | - uses: actions/setup-java@v4
276 | with:
277 | distribution: 'zulu'
278 | java-version-file: this/.github/workflows/.java-version
279 | - uses: gradle/actions/setup-gradle@v4
280 | - uses: actions/setup-python@v5
281 | with:
282 | python-version: '3.13'
283 | - name: Patch external dependencies
284 | run: |
285 | pip install -r this/.github/requirements.txt
286 | this/.github/helper.py patch-toml cashapp-paraphrase versions.agp key agp
287 | this/.github/helper.py patch-toml cashapp-paraphrase versions.kotlin key kotlin
288 | - name: "Download internal dependency square/kotlinpoet"
289 | uses: actions/download-artifact@v4
290 | if: ${{ needs.square-kotlinpoet.result == 'success' }}
291 | with:
292 | name: square-kotlinpoet-snapshot
293 | path: ~/.m2/repository
294 | - name: "Patch internal dependency square/kotlinpoet"
295 | run: this/.github/helper.py patch-toml cashapp-paraphrase libraries.kotlinPoet value ${{ needs.square-kotlinpoet.outputs.version }}
296 | if: ${{ needs.square-kotlinpoet.result == 'success' }}
297 | - name: "Build cashapp/paraphrase"
298 | run: |
299 | cd cashapp-paraphrase
300 | git grep -l 'mavenCentral()' 'build.*' '**/build.*' 'settings.*' '**/settings.*' | xargs sed -i "" "s/mavenCentral()/mavenLocal(); mavenCentral()/g"
301 | git diff --patch
302 | ../this/gradlew build publishToMavenLocal
303 | - uses: actions/upload-artifact@v4
304 | with:
305 | name: cashapp-paraphrase-snapshot
306 | path: ~/.m2/repository
307 | if-no-files-found: error
308 | - id: version
309 | run: perl -ne '/VERSION_NAME=(.*)/ and print "version=$1",$/' cashapp-paraphrase/gradle.properties >> "$GITHUB_OUTPUT"
310 |
311 | cashapp-redwood:
312 | runs-on: macos-latest
313 | if: ${{ !cancelled() }}
314 | outputs:
315 | version: ${{ steps.version.outputs.version }}
316 | needs:
317 | - workflow-up-to-date
318 | - cashapp-burst
319 | - cashapp-turbine
320 | - square-kotlinpoet
321 | - square-okio
322 | - square-okhttp
323 | steps:
324 | - name: Checkout this repository
325 | uses: actions/checkout@v4
326 | with:
327 | path: this
328 | - name: "Checkout cashapp/redwood repository"
329 | uses: actions/checkout@v4
330 | with:
331 | repository: cashapp/redwood
332 | path: cashapp-redwood
333 | - uses: actions/setup-java@v4
334 | with:
335 | distribution: 'zulu'
336 | java-version-file: this/.github/workflows/.java-version
337 | - uses: gradle/actions/setup-gradle@v4
338 | - uses: actions/setup-python@v5
339 | with:
340 | python-version: '3.13'
341 | - name: Patch external dependencies
342 | run: |
343 | pip install -r this/.github/requirements.txt
344 | this/.github/helper.py patch-toml cashapp-redwood libraries.androidGradlePlugin key agp
345 | this/.github/helper.py patch-toml cashapp-redwood libraries.atomicFuPlugin key atomicfu
346 | this/.github/helper.py patch-toml cashapp-redwood versions.jbCompose key jbCompose
347 | this/.github/helper.py patch-toml cashapp-redwood versions.kotlin key kotlin
348 | this/.github/helper.py patch-toml cashapp-redwood versions.ksp key ksp
349 | - name: "Download internal dependency cashapp/burst"
350 | uses: actions/download-artifact@v4
351 | if: ${{ needs.cashapp-burst.result == 'success' }}
352 | with:
353 | name: cashapp-burst-snapshot
354 | path: ~/.m2/repository
355 | - name: "Patch internal dependency cashapp/burst"
356 | run: this/.github/helper.py patch-toml cashapp-redwood versions.burst value ${{ needs.cashapp-burst.outputs.version }}
357 | if: ${{ needs.cashapp-burst.result == 'success' }}
358 | - name: "Download internal dependency cashapp/turbine"
359 | uses: actions/download-artifact@v4
360 | if: ${{ needs.cashapp-turbine.result == 'success' }}
361 | with:
362 | name: cashapp-turbine-snapshot
363 | path: ~/.m2/repository
364 | - name: "Patch internal dependency cashapp/turbine"
365 | run: this/.github/helper.py patch-toml cashapp-redwood libraries.turbine value ${{ needs.cashapp-turbine.outputs.version }}
366 | if: ${{ needs.cashapp-turbine.result == 'success' }}
367 | - name: "Download internal dependency square/kotlinpoet"
368 | uses: actions/download-artifact@v4
369 | if: ${{ needs.square-kotlinpoet.result == 'success' }}
370 | with:
371 | name: square-kotlinpoet-snapshot
372 | path: ~/.m2/repository
373 | - name: "Patch internal dependency square/kotlinpoet"
374 | run: this/.github/helper.py patch-toml cashapp-redwood libraries.kotlinPoet value ${{ needs.square-kotlinpoet.outputs.version }}
375 | if: ${{ needs.square-kotlinpoet.result == 'success' }}
376 | - name: "Download internal dependency square/okio"
377 | uses: actions/download-artifact@v4
378 | if: ${{ needs.square-okio.result == 'success' }}
379 | with:
380 | name: square-okio-snapshot
381 | path: ~/.m2/repository
382 | - name: "Patch internal dependency square/okio"
383 | run: this/.github/helper.py patch-toml cashapp-redwood versions.okio value ${{ needs.square-okio.outputs.version }}
384 | if: ${{ needs.square-okio.result == 'success' }}
385 | - name: "Download internal dependency square/okhttp"
386 | uses: actions/download-artifact@v4
387 | if: ${{ needs.square-okhttp.result == 'success' }}
388 | with:
389 | name: square-okhttp-snapshot
390 | path: ~/.m2/repository
391 | - name: "Patch internal dependency square/okhttp"
392 | run: this/.github/helper.py patch-toml cashapp-redwood libraries.okhttp value ${{ needs.square-okhttp.outputs.version }}
393 | if: ${{ needs.square-okhttp.result == 'success' }}
394 | - name: "Build cashapp/redwood"
395 | run: |
396 | cd cashapp-redwood
397 | git grep -l 'mavenCentral()' 'build.*' '**/build.*' 'settings.*' '**/settings.*' | xargs sed -i "" "s/mavenCentral()/mavenLocal(); mavenCentral()/g"
398 | git diff --patch
399 | ../this/gradlew kotlinUpgradeYarnLock build publishToMavenLocal -x :redwood-treehouse-host:check
400 | - uses: actions/upload-artifact@v4
401 | with:
402 | name: cashapp-redwood-snapshot
403 | path: ~/.m2/repository
404 | if-no-files-found: error
405 | - id: version
406 | run: perl -ne '/REDWOOD_VERSION = "(.*)"/ and print "version=$1",$/' cashapp-redwood/build-support/src/main/kotlin/app/cash/redwood/buildsupport/RedwoodBuildPlugin.kt >> "$GITHUB_OUTPUT"
407 |
408 | cashapp-turbine:
409 | runs-on: macos-latest
410 | if: ${{ !cancelled() }}
411 | outputs:
412 | version: ${{ steps.version.outputs.version }}
413 | needs:
414 | - workflow-up-to-date
415 | steps:
416 | - name: Checkout this repository
417 | uses: actions/checkout@v4
418 | with:
419 | path: this
420 | - name: "Checkout cashapp/turbine repository"
421 | uses: actions/checkout@v4
422 | with:
423 | repository: cashapp/turbine
424 | path: cashapp-turbine
425 | - uses: actions/setup-java@v4
426 | with:
427 | distribution: 'zulu'
428 | java-version-file: this/.github/workflows/.java-version
429 | - uses: gradle/actions/setup-gradle@v4
430 | - uses: actions/setup-python@v5
431 | with:
432 | python-version: '3.13'
433 | - name: Patch external dependencies
434 | run: |
435 | pip install -r this/.github/requirements.txt
436 | this/.github/helper.py patch-toml cashapp-turbine plugins.kotlin key kotlin
437 | - name: "Build cashapp/turbine"
438 | run: |
439 | cd cashapp-turbine
440 | git grep -l 'mavenCentral()' 'build.*' '**/build.*' 'settings.*' '**/settings.*' | xargs sed -i "" "s/mavenCentral()/mavenLocal(); mavenCentral()/g"
441 | git diff --patch
442 | ../this/gradlew kotlinUpgradeYarnLock build publishToMavenLocal
443 | - uses: actions/upload-artifact@v4
444 | with:
445 | name: cashapp-turbine-snapshot
446 | path: ~/.m2/repository
447 | if-no-files-found: error
448 | - id: version
449 | run: perl -ne '/VERSION_NAME=(.*)/ and print "version=$1",$/' cashapp-turbine/gradle.properties >> "$GITHUB_OUTPUT"
450 |
451 | JakeWharton-cite:
452 | runs-on: macos-latest
453 | if: ${{ !cancelled() }}
454 | outputs:
455 | version: ${{ steps.version.outputs.version }}
456 | needs:
457 | - workflow-up-to-date
458 | steps:
459 | - name: Checkout this repository
460 | uses: actions/checkout@v4
461 | with:
462 | path: this
463 | - name: "Checkout JakeWharton/cite repository"
464 | uses: actions/checkout@v4
465 | with:
466 | repository: JakeWharton/cite
467 | path: JakeWharton-cite
468 | - uses: actions/setup-java@v4
469 | with:
470 | distribution: 'zulu'
471 | java-version-file: this/.github/workflows/.java-version
472 | - uses: gradle/actions/setup-gradle@v4
473 | - uses: actions/setup-python@v5
474 | with:
475 | python-version: '3.13'
476 | - name: Patch external dependencies
477 | run: |
478 | pip install -r this/.github/requirements.txt
479 | this/.github/helper.py patch-toml JakeWharton-cite libraries.android-gradlePlugin key agp
480 | this/.github/helper.py patch-toml JakeWharton-cite versions.kotlin key kotlin
481 | - name: "Build JakeWharton/cite"
482 | run: |
483 | cd JakeWharton-cite
484 | git grep -l 'mavenCentral()' 'build.*' '**/build.*' 'settings.*' '**/settings.*' | xargs sed -i "" "s/mavenCentral()/mavenLocal(); mavenCentral()/g"
485 | git diff --patch
486 | ../this/gradlew kotlinUpgradeYarnLock build publishToMavenLocal
487 | - uses: actions/upload-artifact@v4
488 | with:
489 | name: JakeWharton-cite-snapshot
490 | path: ~/.m2/repository
491 | if-no-files-found: error
492 | - id: version
493 | run: perl -ne '/VERSION_NAME=(.*)/ and print "version=$1",$/' JakeWharton-cite/gradle.properties >> "$GITHUB_OUTPUT"
494 |
495 | JakeWharton-crossword:
496 | runs-on: macos-latest
497 | if: ${{ !cancelled() }}
498 | outputs:
499 | version: ${{ steps.version.outputs.version }}
500 | needs:
501 | - workflow-up-to-date
502 | steps:
503 | - name: Checkout this repository
504 | uses: actions/checkout@v4
505 | with:
506 | path: this
507 | - name: "Checkout JakeWharton/crossword repository"
508 | uses: actions/checkout@v4
509 | with:
510 | repository: JakeWharton/crossword
511 | path: JakeWharton-crossword
512 | - uses: actions/setup-java@v4
513 | with:
514 | distribution: 'zulu'
515 | java-version-file: this/.github/workflows/.java-version
516 | - uses: gradle/actions/setup-gradle@v4
517 | - uses: actions/setup-python@v5
518 | with:
519 | python-version: '3.13'
520 | - name: Patch external dependencies
521 | run: |
522 | pip install -r this/.github/requirements.txt
523 | this/.github/helper.py patch-toml JakeWharton-crossword libraries.kotlinPlugin key kotlin
524 | - name: "Build JakeWharton/crossword"
525 | run: |
526 | cd JakeWharton-crossword
527 | git grep -l 'mavenCentral()' 'build.*' '**/build.*' 'settings.*' '**/settings.*' | xargs sed -i "" "s/mavenCentral()/mavenLocal(); mavenCentral()/g"
528 | git diff --patch
529 | ../this/gradlew kotlinUpgradeYarnLock build publishToMavenLocal
530 | - uses: actions/upload-artifact@v4
531 | with:
532 | name: JakeWharton-crossword-snapshot
533 | path: ~/.m2/repository
534 | if-no-files-found: error
535 | - id: version
536 | run: perl -ne '/VERSION_NAME=(.*)/ and print "version=$1",$/' JakeWharton-crossword/gradle.properties >> "$GITHUB_OUTPUT"
537 |
538 | JakeWharton-dependency-tree-diff:
539 | runs-on: macos-latest
540 | if: ${{ !cancelled() }}
541 | needs:
542 | - workflow-up-to-date
543 | steps:
544 | - name: Checkout this repository
545 | uses: actions/checkout@v4
546 | with:
547 | path: this
548 | - name: "Checkout JakeWharton/dependency-tree-diff repository"
549 | uses: actions/checkout@v4
550 | with:
551 | repository: JakeWharton/dependency-tree-diff
552 | path: JakeWharton-dependency-tree-diff
553 | - uses: actions/setup-java@v4
554 | with:
555 | distribution: 'zulu'
556 | java-version-file: this/.github/workflows/.java-version
557 | - uses: gradle/actions/setup-gradle@v4
558 | - uses: actions/setup-python@v5
559 | with:
560 | python-version: '3.13'
561 | - name: Patch external dependencies
562 | run: |
563 | pip install -r this/.github/requirements.txt
564 | this/.github/helper.py patch-toml JakeWharton-dependency-tree-diff libraries.kotlin-gradle-plugin key kotlin
565 | - name: "Build JakeWharton/dependency-tree-diff"
566 | run: |
567 | cd JakeWharton-dependency-tree-diff
568 | git grep -l 'mavenCentral()' 'build.*' '**/build.*' 'settings.*' '**/settings.*' | xargs sed -i "" "s/mavenCentral()/mavenLocal(); mavenCentral()/g"
569 | git diff --patch
570 | ../this/gradlew build
571 |
572 | JakeWharton-dependency-watch:
573 | runs-on: macos-latest
574 | if: ${{ !cancelled() }}
575 | needs:
576 | - workflow-up-to-date
577 | - square-okhttp
578 | steps:
579 | - name: Checkout this repository
580 | uses: actions/checkout@v4
581 | with:
582 | path: this
583 | - name: "Checkout JakeWharton/dependency-watch repository"
584 | uses: actions/checkout@v4
585 | with:
586 | repository: JakeWharton/dependency-watch
587 | path: JakeWharton-dependency-watch
588 | - uses: actions/setup-java@v4
589 | with:
590 | distribution: 'zulu'
591 | java-version-file: this/.github/workflows/.java-version
592 | - uses: gradle/actions/setup-gradle@v4
593 | - uses: actions/setup-python@v5
594 | with:
595 | python-version: '3.13'
596 | - name: Patch external dependencies
597 | run: |
598 | pip install -r this/.github/requirements.txt
599 | this/.github/helper.py patch-toml JakeWharton-dependency-watch versions.kotlin key kotlin
600 | - name: "Download internal dependency square/okhttp"
601 | uses: actions/download-artifact@v4
602 | if: ${{ needs.square-okhttp.result == 'success' }}
603 | with:
604 | name: square-okhttp-snapshot
605 | path: ~/.m2/repository
606 | - name: "Patch internal dependency square/okhttp"
607 | run: this/.github/helper.py patch-toml JakeWharton-dependency-watch versions.okhttp value ${{ needs.square-okhttp.outputs.version }}
608 | if: ${{ needs.square-okhttp.result == 'success' }}
609 | - name: "Build JakeWharton/dependency-watch"
610 | run: |
611 | cd JakeWharton-dependency-watch
612 | git grep -l 'mavenCentral()' 'build.*' '**/build.*' 'settings.*' '**/settings.*' | xargs sed -i "" "s/mavenCentral()/mavenLocal(); mavenCentral()/g"
613 | git diff --patch
614 | ../this/gradlew build
615 |
616 | JakeWharton-diffuse:
617 | runs-on: macos-latest
618 | if: ${{ !cancelled() }}
619 | outputs:
620 | version: ${{ steps.version.outputs.version }}
621 | needs:
622 | - workflow-up-to-date
623 | - square-okio
624 | steps:
625 | - name: Checkout this repository
626 | uses: actions/checkout@v4
627 | with:
628 | path: this
629 | - name: "Checkout JakeWharton/diffuse repository"
630 | uses: actions/checkout@v4
631 | with:
632 | repository: JakeWharton/diffuse
633 | path: JakeWharton-diffuse
634 | - uses: actions/setup-java@v4
635 | with:
636 | distribution: 'zulu'
637 | java-version-file: this/.github/workflows/.java-version
638 | - uses: gradle/actions/setup-gradle@v4
639 | - uses: actions/setup-python@v5
640 | with:
641 | python-version: '3.13'
642 | - name: Patch external dependencies
643 | run: |
644 | pip install -r this/.github/requirements.txt
645 | this/.github/helper.py patch-toml JakeWharton-diffuse libraries.apkSigner key agp
646 | this/.github/helper.py patch-toml JakeWharton-diffuse libraries.kotlinPlugin key kotlin
647 | - name: "Download internal dependency square/okio"
648 | uses: actions/download-artifact@v4
649 | if: ${{ needs.square-okio.result == 'success' }}
650 | with:
651 | name: square-okio-snapshot
652 | path: ~/.m2/repository
653 | - name: "Patch internal dependency square/okio"
654 | run: this/.github/helper.py patch-toml JakeWharton-diffuse libraries.okio value ${{ needs.square-okio.outputs.version }}
655 | if: ${{ needs.square-okio.result == 'success' }}
656 | - name: "Build JakeWharton/diffuse"
657 | run: |
658 | cd JakeWharton-diffuse
659 | git grep -l 'mavenCentral()' 'build.*' '**/build.*' 'settings.*' '**/settings.*' | xargs sed -i "" "s/mavenCentral()/mavenLocal(); mavenCentral()/g"
660 | git diff --patch
661 | ../this/gradlew build publishToMavenLocal
662 | - uses: actions/upload-artifact@v4
663 | with:
664 | name: JakeWharton-diffuse-snapshot
665 | path: ~/.m2/repository
666 | if-no-files-found: error
667 | - id: version
668 | run: perl -ne '/VERSION_NAME=(.*)/ and print "version=$1",$/' JakeWharton-diffuse/gradle.properties >> "$GITHUB_OUTPUT"
669 |
670 | JakeWharton-finalization-hook:
671 | runs-on: macos-latest
672 | if: ${{ !cancelled() }}
673 | outputs:
674 | version: ${{ steps.version.outputs.version }}
675 | needs:
676 | - workflow-up-to-date
677 | steps:
678 | - name: Checkout this repository
679 | uses: actions/checkout@v4
680 | with:
681 | path: this
682 | - name: "Checkout JakeWharton/finalization-hook repository"
683 | uses: actions/checkout@v4
684 | with:
685 | repository: JakeWharton/finalization-hook
686 | path: JakeWharton-finalization-hook
687 | - uses: actions/setup-java@v4
688 | with:
689 | distribution: 'zulu'
690 | java-version-file: this/.github/workflows/.java-version
691 | - uses: gradle/actions/setup-gradle@v4
692 | - uses: actions/setup-python@v5
693 | with:
694 | python-version: '3.13'
695 | - name: Patch external dependencies
696 | run: |
697 | pip install -r this/.github/requirements.txt
698 | this/.github/helper.py patch-toml JakeWharton-finalization-hook versions.kotlin key kotlin
699 | - name: "Build JakeWharton/finalization-hook"
700 | run: |
701 | cd JakeWharton-finalization-hook
702 | git grep -l 'mavenCentral()' 'build.*' '**/build.*' 'settings.*' '**/settings.*' | xargs sed -i "" "s/mavenCentral()/mavenLocal(); mavenCentral()/g"
703 | git diff --patch
704 | ../this/gradlew build publishToMavenLocal
705 | - uses: actions/upload-artifact@v4
706 | with:
707 | name: JakeWharton-finalization-hook-snapshot
708 | path: ~/.m2/repository
709 | if-no-files-found: error
710 | - id: version
711 | run: perl -ne '/VERSION_NAME=(.*)/ and print "version=$1",$/' JakeWharton-finalization-hook/gradle.properties >> "$GITHUB_OUTPUT"
712 |
713 | JakeWharton-hardcover-data-sync:
714 | runs-on: macos-latest
715 | if: ${{ !cancelled() }}
716 | needs:
717 | - workflow-up-to-date
718 | - square-okhttp
719 | steps:
720 | - name: Checkout this repository
721 | uses: actions/checkout@v4
722 | with:
723 | path: this
724 | - name: "Checkout JakeWharton/hardcover-data-sync repository"
725 | uses: actions/checkout@v4
726 | with:
727 | repository: JakeWharton/hardcover-data-sync
728 | path: JakeWharton-hardcover-data-sync
729 | - uses: actions/setup-java@v4
730 | with:
731 | distribution: 'zulu'
732 | java-version-file: this/.github/workflows/.java-version
733 | - uses: gradle/actions/setup-gradle@v4
734 | - uses: actions/setup-python@v5
735 | with:
736 | python-version: '3.13'
737 | - name: Patch external dependencies
738 | run: |
739 | pip install -r this/.github/requirements.txt
740 | this/.github/helper.py patch-toml JakeWharton-hardcover-data-sync libraries.kotlin-gradlePlugin key kotlin
741 | - name: "Download internal dependency square/okhttp"
742 | uses: actions/download-artifact@v4
743 | if: ${{ needs.square-okhttp.result == 'success' }}
744 | with:
745 | name: square-okhttp-snapshot
746 | path: ~/.m2/repository
747 | - name: "Patch internal dependency square/okhttp"
748 | run: this/.github/helper.py patch-toml JakeWharton-hardcover-data-sync versions.okhttp value ${{ needs.square-okhttp.outputs.version }}
749 | if: ${{ needs.square-okhttp.result == 'success' }}
750 | - name: "Build JakeWharton/hardcover-data-sync"
751 | run: |
752 | cd JakeWharton-hardcover-data-sync
753 | git grep -l 'mavenCentral()' 'build.*' '**/build.*' 'settings.*' '**/settings.*' | xargs sed -i "" "s/mavenCentral()/mavenLocal(); mavenCentral()/g"
754 | git diff --patch
755 | ../this/gradlew build
756 |
757 | JakeWharton-kmp-missing-targets:
758 | runs-on: macos-latest
759 | if: ${{ !cancelled() }}
760 | outputs:
761 | version: ${{ steps.version.outputs.version }}
762 | needs:
763 | - workflow-up-to-date
764 | steps:
765 | - name: Checkout this repository
766 | uses: actions/checkout@v4
767 | with:
768 | path: this
769 | - name: "Checkout JakeWharton/kmp-missing-targets repository"
770 | uses: actions/checkout@v4
771 | with:
772 | repository: JakeWharton/kmp-missing-targets
773 | path: JakeWharton-kmp-missing-targets
774 | - uses: actions/setup-java@v4
775 | with:
776 | distribution: 'zulu'
777 | java-version-file: this/.github/workflows/.java-version
778 | - uses: gradle/actions/setup-gradle@v4
779 | - uses: actions/setup-python@v5
780 | with:
781 | python-version: '3.13'
782 | - name: Patch external dependencies
783 | run: |
784 | pip install -r this/.github/requirements.txt
785 | this/.github/helper.py patch-toml JakeWharton-kmp-missing-targets libraries.android-gradlePlugin key agp
786 | this/.github/helper.py patch-toml JakeWharton-kmp-missing-targets versions.kotlin key kotlin
787 | - name: "Build JakeWharton/kmp-missing-targets"
788 | run: |
789 | cd JakeWharton-kmp-missing-targets
790 | git grep -l 'mavenCentral()' 'build.*' '**/build.*' 'settings.*' '**/settings.*' | xargs sed -i "" "s/mavenCentral()/mavenLocal(); mavenCentral()/g"
791 | git diff --patch
792 | ../this/gradlew publishToMavenLocal
793 | - uses: actions/upload-artifact@v4
794 | with:
795 | name: JakeWharton-kmp-missing-targets-snapshot
796 | path: ~/.m2/repository
797 | if-no-files-found: error
798 | - id: version
799 | run: perl -ne '/VERSION_NAME=(.*)/ and print "version=$1",$/' JakeWharton-kmp-missing-targets/gradle.properties >> "$GITHUB_OUTPUT"
800 |
801 | JakeWharton-mosaic:
802 | runs-on: macos-latest
803 | if: ${{ !cancelled() }}
804 | outputs:
805 | version: ${{ steps.version.outputs.version }}
806 | needs:
807 | - workflow-up-to-date
808 | - JakeWharton-cite
809 | - JakeWharton-finalization-hook
810 | steps:
811 | - name: Checkout this repository
812 | uses: actions/checkout@v4
813 | with:
814 | path: this
815 | - name: "Checkout JakeWharton/mosaic repository"
816 | uses: actions/checkout@v4
817 | with:
818 | repository: JakeWharton/mosaic
819 | path: JakeWharton-mosaic
820 | - uses: actions/setup-java@v4
821 | with:
822 | distribution: 'zulu'
823 | java-version-file: this/.github/workflows/.java-version
824 | - uses: gradle/actions/setup-gradle@v4
825 | - uses: actions/setup-python@v5
826 | with:
827 | python-version: '3.13'
828 | - name: Patch external dependencies
829 | run: |
830 | pip install -r this/.github/requirements.txt
831 | this/.github/helper.py patch-toml JakeWharton-mosaic versions.jetbrains-compose key jbCompose
832 | this/.github/helper.py patch-toml JakeWharton-mosaic versions.kotlin key kotlin
833 | - name: "Download internal dependency JakeWharton/cite"
834 | uses: actions/download-artifact@v4
835 | if: ${{ needs.JakeWharton-cite.result == 'success' }}
836 | with:
837 | name: JakeWharton-cite-snapshot
838 | path: ~/.m2/repository
839 | - name: "Patch internal dependency JakeWharton/cite"
840 | run: this/.github/helper.py patch-toml JakeWharton-mosaic libraries.cite-gradlePlugin value ${{ needs.JakeWharton-cite.outputs.version }}
841 | if: ${{ needs.JakeWharton-cite.result == 'success' }}
842 | - name: "Download internal dependency JakeWharton/finalization-hook"
843 | uses: actions/download-artifact@v4
844 | if: ${{ needs.JakeWharton-finalization-hook.result == 'success' }}
845 | with:
846 | name: JakeWharton-finalization-hook-snapshot
847 | path: ~/.m2/repository
848 | - name: "Patch internal dependency JakeWharton/finalization-hook"
849 | run: this/.github/helper.py patch-toml JakeWharton-mosaic libraries.finalizationHook value ${{ needs.JakeWharton-finalization-hook.outputs.version }}
850 | if: ${{ needs.JakeWharton-finalization-hook.result == 'success' }}
851 | - name: "Build JakeWharton/mosaic"
852 | run: |
853 | cd JakeWharton-mosaic
854 | git grep -l 'mavenCentral()' 'build.*' '**/build.*' 'settings.*' '**/settings.*' | xargs sed -i "" "s/mavenCentral()/mavenLocal(); mavenCentral()/g"
855 | git diff --patch
856 | ../this/gradlew build publishToMavenLocal
857 | - uses: actions/upload-artifact@v4
858 | with:
859 | name: JakeWharton-mosaic-snapshot
860 | path: ~/.m2/repository
861 | if-no-files-found: error
862 | - id: version
863 | run: perl -ne '/VERSION_NAME=(.*)/ and print "version=$1",$/' JakeWharton-mosaic/gradle.properties >> "$GITHUB_OUTPUT"
864 |
865 | JakeWharton-picnic:
866 | runs-on: macos-latest
867 | if: ${{ !cancelled() }}
868 | outputs:
869 | version: ${{ steps.version.outputs.version }}
870 | needs:
871 | - workflow-up-to-date
872 | - JakeWharton-crossword
873 | steps:
874 | - name: Checkout this repository
875 | uses: actions/checkout@v4
876 | with:
877 | path: this
878 | - name: "Checkout JakeWharton/picnic repository"
879 | uses: actions/checkout@v4
880 | with:
881 | repository: JakeWharton/picnic
882 | path: JakeWharton-picnic
883 | - uses: actions/setup-java@v4
884 | with:
885 | distribution: 'zulu'
886 | java-version-file: this/.github/workflows/.java-version
887 | - uses: gradle/actions/setup-gradle@v4
888 | - uses: actions/setup-python@v5
889 | with:
890 | python-version: '3.13'
891 | - name: Patch external dependencies
892 | run: |
893 | pip install -r this/.github/requirements.txt
894 | this/.github/helper.py patch-toml JakeWharton-picnic libraries.kotlinPlugin key kotlin
895 | - name: "Download internal dependency JakeWharton/crossword"
896 | uses: actions/download-artifact@v4
897 | if: ${{ needs.JakeWharton-crossword.result == 'success' }}
898 | with:
899 | name: JakeWharton-crossword-snapshot
900 | path: ~/.m2/repository
901 | - name: "Patch internal dependency JakeWharton/crossword"
902 | run: this/.github/helper.py patch-toml JakeWharton-picnic libraries.crossword value ${{ needs.JakeWharton-crossword.outputs.version }}
903 | if: ${{ needs.JakeWharton-crossword.result == 'success' }}
904 | - name: "Build JakeWharton/picnic"
905 | run: |
906 | cd JakeWharton-picnic
907 | git grep -l 'mavenCentral()' 'build.*' '**/build.*' 'settings.*' '**/settings.*' | xargs sed -i "" "s/mavenCentral()/mavenLocal(); mavenCentral()/g"
908 | git diff --patch
909 | ../this/gradlew kotlinUpgradeYarnLock build publishToMavenLocal
910 | - uses: actions/upload-artifact@v4
911 | with:
912 | name: JakeWharton-picnic-snapshot
913 | path: ~/.m2/repository
914 | if-no-files-found: error
915 | - id: version
916 | run: perl -ne '/VERSION_NAME=(.*)/ and print "version=$1",$/' JakeWharton-picnic/gradle.properties >> "$GITHUB_OUTPUT"
917 |
918 | JakeWharton-SaveArchived4Pocket:
919 | runs-on: macos-latest
920 | if: ${{ !cancelled() }}
921 | needs:
922 | - workflow-up-to-date
923 | - square-retrofit
924 | - square-okhttp
925 | steps:
926 | - name: Checkout this repository
927 | uses: actions/checkout@v4
928 | with:
929 | path: this
930 | - name: "Checkout JakeWharton/SaveArchived4Pocket repository"
931 | uses: actions/checkout@v4
932 | with:
933 | repository: JakeWharton/SaveArchived4Pocket
934 | path: JakeWharton-SaveArchived4Pocket
935 | - uses: actions/setup-java@v4
936 | with:
937 | distribution: 'zulu'
938 | java-version-file: this/.github/workflows/.java-version
939 | - uses: gradle/actions/setup-gradle@v4
940 | - uses: actions/setup-python@v5
941 | with:
942 | python-version: '3.13'
943 | - name: Patch external dependencies
944 | run: |
945 | pip install -r this/.github/requirements.txt
946 | this/.github/helper.py patch-toml JakeWharton-SaveArchived4Pocket libraries.androidGradlePlugin key agp
947 | this/.github/helper.py patch-toml JakeWharton-SaveArchived4Pocket versions.kotlin key kotlin
948 | - name: "Download internal dependency square/retrofit"
949 | uses: actions/download-artifact@v4
950 | if: ${{ needs.square-retrofit.result == 'success' }}
951 | with:
952 | name: square-retrofit-snapshot
953 | path: ~/.m2/repository
954 | - name: "Patch internal dependency square/retrofit"
955 | run: this/.github/helper.py patch-toml JakeWharton-SaveArchived4Pocket versions.retrofit value ${{ needs.square-retrofit.outputs.version }}
956 | if: ${{ needs.square-retrofit.result == 'success' }}
957 | - name: "Download internal dependency square/okhttp"
958 | uses: actions/download-artifact@v4
959 | if: ${{ needs.square-okhttp.result == 'success' }}
960 | with:
961 | name: square-okhttp-snapshot
962 | path: ~/.m2/repository
963 | - name: "Patch internal dependency square/okhttp"
964 | run: this/.github/helper.py patch-toml JakeWharton-SaveArchived4Pocket versions.okhttp value ${{ needs.square-okhttp.outputs.version }}
965 | if: ${{ needs.square-okhttp.result == 'success' }}
966 | - name: "Build JakeWharton/SaveArchived4Pocket"
967 | run: |
968 | cd JakeWharton-SaveArchived4Pocket
969 | git grep -l 'mavenCentral()' 'build.*' '**/build.*' 'settings.*' '**/settings.*' | xargs sed -i "" "s/mavenCentral()/mavenLocal(); mavenCentral()/g"
970 | git diff --patch
971 | ../this/gradlew build
972 |
973 | JakeWharton-video-swatch:
974 | runs-on: macos-latest
975 | if: ${{ !cancelled() }}
976 | needs:
977 | - workflow-up-to-date
978 | - square-okio
979 | steps:
980 | - name: Checkout this repository
981 | uses: actions/checkout@v4
982 | with:
983 | path: this
984 | - name: "Checkout JakeWharton/video-swatch repository"
985 | uses: actions/checkout@v4
986 | with:
987 | repository: JakeWharton/video-swatch
988 | path: JakeWharton-video-swatch
989 | - uses: actions/setup-java@v4
990 | with:
991 | distribution: 'zulu'
992 | java-version-file: this/.github/workflows/.java-version
993 | - uses: gradle/actions/setup-gradle@v4
994 | - uses: actions/setup-python@v5
995 | with:
996 | python-version: '3.13'
997 | - name: Patch external dependencies
998 | run: |
999 | pip install -r this/.github/requirements.txt
1000 | this/.github/helper.py patch-toml JakeWharton-video-swatch versions.kotlin key kotlin
1001 | - name: "Download internal dependency square/okio"
1002 | uses: actions/download-artifact@v4
1003 | if: ${{ needs.square-okio.result == 'success' }}
1004 | with:
1005 | name: square-okio-snapshot
1006 | path: ~/.m2/repository
1007 | - name: "Patch internal dependency square/okio"
1008 | run: this/.github/helper.py patch-toml JakeWharton-video-swatch libraries.okio value ${{ needs.square-okio.outputs.version }}
1009 | if: ${{ needs.square-okio.result == 'success' }}
1010 | - name: "Pre-build JakeWharton/video-swatch"
1011 | run: brew install ffmpeg
1012 | - name: "Build JakeWharton/video-swatch"
1013 | run: |
1014 | cd JakeWharton-video-swatch
1015 | git grep -l 'mavenCentral()' 'build.*' '**/build.*' 'settings.*' '**/settings.*' | xargs sed -i "" "s/mavenCentral()/mavenLocal(); mavenCentral()/g"
1016 | git diff --patch
1017 | ../this/gradlew build
1018 |
1019 | sqldelight-Grammar-Kit-Composer:
1020 | runs-on: macos-latest
1021 | if: ${{ !cancelled() }}
1022 | outputs:
1023 | version: ${{ steps.version.outputs.version }}
1024 | needs:
1025 | - workflow-up-to-date
1026 | - square-kotlinpoet
1027 | steps:
1028 | - name: Checkout this repository
1029 | uses: actions/checkout@v4
1030 | with:
1031 | path: this
1032 | - name: "Checkout sqldelight/Grammar-Kit-Composer repository"
1033 | uses: actions/checkout@v4
1034 | with:
1035 | repository: sqldelight/Grammar-Kit-Composer
1036 | path: sqldelight-Grammar-Kit-Composer
1037 | - uses: actions/setup-java@v4
1038 | with:
1039 | distribution: 'zulu'
1040 | java-version-file: this/.github/workflows/.java-version
1041 | - uses: gradle/actions/setup-gradle@v4
1042 | - uses: actions/setup-python@v5
1043 | with:
1044 | python-version: '3.13'
1045 | - name: Patch external dependencies
1046 | run: |
1047 | pip install -r this/.github/requirements.txt
1048 | this/.github/helper.py patch-toml sqldelight-Grammar-Kit-Composer plugins.kotlinJvm key kotlin
1049 | - name: "Download internal dependency square/kotlinpoet"
1050 | uses: actions/download-artifact@v4
1051 | if: ${{ needs.square-kotlinpoet.result == 'success' }}
1052 | with:
1053 | name: square-kotlinpoet-snapshot
1054 | path: ~/.m2/repository
1055 | - name: "Patch internal dependency square/kotlinpoet"
1056 | run: this/.github/helper.py patch-toml sqldelight-Grammar-Kit-Composer libraries.kotlinPoet value ${{ needs.square-kotlinpoet.outputs.version }}
1057 | if: ${{ needs.square-kotlinpoet.result == 'success' }}
1058 | - name: "Build sqldelight/Grammar-Kit-Composer"
1059 | run: |
1060 | cd sqldelight-Grammar-Kit-Composer
1061 | git grep -l 'mavenCentral()' 'build.*' '**/build.*' 'settings.*' '**/settings.*' | xargs sed -i "" "s/mavenCentral()/mavenLocal(); mavenCentral()/g"
1062 | git diff --patch
1063 | ../this/gradlew build publishToMavenLocal
1064 | - uses: actions/upload-artifact@v4
1065 | with:
1066 | name: sqldelight-Grammar-Kit-Composer-snapshot
1067 | path: ~/.m2/repository
1068 | if-no-files-found: error
1069 | - id: version
1070 | run: perl -ne '/VERSION_NAME=(.*)/ and print "version=$1",$/' sqldelight-Grammar-Kit-Composer/gradle.properties >> "$GITHUB_OUTPUT"
1071 |
1072 | sqldelight-sql-psi:
1073 | runs-on: macos-latest
1074 | if: ${{ !cancelled() }}
1075 | outputs:
1076 | version: ${{ steps.version.outputs.version }}
1077 | needs:
1078 | - workflow-up-to-date
1079 | - sqldelight-Grammar-Kit-Composer
1080 | steps:
1081 | - name: Checkout this repository
1082 | uses: actions/checkout@v4
1083 | with:
1084 | path: this
1085 | - name: "Checkout sqldelight/sql-psi repository"
1086 | uses: actions/checkout@v4
1087 | with:
1088 | repository: sqldelight/sql-psi
1089 | path: sqldelight-sql-psi
1090 | - uses: actions/setup-java@v4
1091 | with:
1092 | distribution: 'zulu'
1093 | java-version-file: this/.github/workflows/.java-version
1094 | - uses: gradle/actions/setup-gradle@v4
1095 | - uses: actions/setup-python@v5
1096 | with:
1097 | python-version: '3.13'
1098 | - name: Patch external dependencies
1099 | run: |
1100 | pip install -r this/.github/requirements.txt
1101 | this/.github/helper.py patch-toml sqldelight-sql-psi versions.kotlin key kotlin
1102 | - name: "Download internal dependency sqldelight/Grammar-Kit-Composer"
1103 | uses: actions/download-artifact@v4
1104 | if: ${{ needs.sqldelight-Grammar-Kit-Composer.result == 'success' }}
1105 | with:
1106 | name: sqldelight-Grammar-Kit-Composer-snapshot
1107 | path: ~/.m2/repository
1108 | - name: "Patch internal dependency sqldelight/Grammar-Kit-Composer"
1109 | run: this/.github/helper.py patch-toml sqldelight-sql-psi plugins.grammarKitComposer value ${{ needs.sqldelight-Grammar-Kit-Composer.outputs.version }}
1110 | if: ${{ needs.sqldelight-Grammar-Kit-Composer.result == 'success' }}
1111 | - name: "Build sqldelight/sql-psi"
1112 | run: |
1113 | cd sqldelight-sql-psi
1114 | git grep -l 'mavenCentral()' 'build.*' '**/build.*' 'settings.*' '**/settings.*' | xargs sed -i "" "s/mavenCentral()/mavenLocal(); mavenCentral()/g"
1115 | git diff --patch
1116 | ../this/gradlew build publishToMavenLocal
1117 | - uses: actions/upload-artifact@v4
1118 | with:
1119 | name: sqldelight-sql-psi-snapshot
1120 | path: ~/.m2/repository
1121 | if-no-files-found: error
1122 | - id: version
1123 | run: perl -ne '/VERSION_NAME=(.*)/ and print "version=$1",$/' sqldelight-sql-psi/gradle.properties >> "$GITHUB_OUTPUT"
1124 |
1125 | square-kotlinpoet:
1126 | runs-on: macos-latest
1127 | if: ${{ !cancelled() }}
1128 | outputs:
1129 | version: ${{ steps.version.outputs.version }}
1130 | needs:
1131 | - workflow-up-to-date
1132 | steps:
1133 | - name: Checkout this repository
1134 | uses: actions/checkout@v4
1135 | with:
1136 | path: this
1137 | - name: "Checkout square/kotlinpoet repository"
1138 | uses: actions/checkout@v4
1139 | with:
1140 | repository: square/kotlinpoet
1141 | path: square-kotlinpoet
1142 | - uses: actions/setup-java@v4
1143 | with:
1144 | distribution: 'zulu'
1145 | java-version-file: this/.github/workflows/.java-version
1146 | - uses: gradle/actions/setup-gradle@v4
1147 | - uses: actions/setup-python@v5
1148 | with:
1149 | python-version: '3.13'
1150 | - name: Patch external dependencies
1151 | run: |
1152 | pip install -r this/.github/requirements.txt
1153 | this/.github/helper.py patch-toml square-kotlinpoet versions.kotlin key kotlin
1154 | this/.github/helper.py patch-toml square-kotlinpoet versions.ksp key ksp
1155 | - name: "Build square/kotlinpoet"
1156 | run: |
1157 | cd square-kotlinpoet
1158 | git grep -l 'mavenCentral()' 'build.*' '**/build.*' 'settings.*' '**/settings.*' | xargs sed -i "" "s/mavenCentral()/mavenLocal(); mavenCentral()/g"
1159 | git diff --patch
1160 | ../this/gradlew kotlinUpgradeYarnLock build publishToMavenLocal
1161 | - uses: actions/upload-artifact@v4
1162 | with:
1163 | name: square-kotlinpoet-snapshot
1164 | path: ~/.m2/repository
1165 | if-no-files-found: error
1166 | - id: version
1167 | run: perl -ne '/VERSION_NAME=(.*)/ and print "version=$1",$/' square-kotlinpoet/gradle.properties >> "$GITHUB_OUTPUT"
1168 |
1169 | square-okio:
1170 | runs-on: macos-latest
1171 | if: ${{ !cancelled() }}
1172 | outputs:
1173 | version: ${{ steps.version.outputs.version }}
1174 | needs:
1175 | - workflow-up-to-date
1176 | - cashapp-burst
1177 | steps:
1178 | - name: Checkout this repository
1179 | uses: actions/checkout@v4
1180 | with:
1181 | path: this
1182 | - name: "Checkout square/okio repository"
1183 | uses: actions/checkout@v4
1184 | with:
1185 | repository: square/okio
1186 | path: square-okio
1187 | - uses: actions/setup-java@v4
1188 | with:
1189 | distribution: 'zulu'
1190 | java-version-file: this/.github/workflows/.java-version
1191 | - uses: gradle/actions/setup-gradle@v4
1192 | - uses: actions/setup-python@v5
1193 | with:
1194 | python-version: '3.13'
1195 | - name: Patch external dependencies
1196 | run: |
1197 | pip install -r this/.github/requirements.txt
1198 | this/.github/helper.py patch-toml square-okio versions.kotlin key kotlin
1199 | this/.github/helper.py patch-toml square-okio libraries.android-gradle-plugin key agp
1200 | - name: "Download internal dependency cashapp/burst"
1201 | uses: actions/download-artifact@v4
1202 | if: ${{ needs.cashapp-burst.result == 'success' }}
1203 | with:
1204 | name: cashapp-burst-snapshot
1205 | path: ~/.m2/repository
1206 | - name: "Patch internal dependency cashapp/burst"
1207 | run: this/.github/helper.py patch-toml square-okio libraries.burst-gradle-plugin value ${{ needs.cashapp-burst.outputs.version }}
1208 | if: ${{ needs.cashapp-burst.result == 'success' }}
1209 | - name: "Build square/okio"
1210 | run: |
1211 | cd square-okio
1212 | git grep -l 'mavenCentral()' 'build.*' '**/build.*' 'settings.*' '**/settings.*' | xargs sed -i "" "s/mavenCentral()/mavenLocal(); mavenCentral()/g"
1213 | git diff --patch
1214 | ../this/gradlew kotlinUpgradeYarnLock build publishToMavenLocal
1215 | - uses: actions/upload-artifact@v4
1216 | with:
1217 | name: square-okio-snapshot
1218 | path: ~/.m2/repository
1219 | if-no-files-found: error
1220 | - id: version
1221 | run: perl -ne '/VERSION_NAME=(.*)/ and print "version=$1",$/' square-okio/gradle.properties >> "$GITHUB_OUTPUT"
1222 |
1223 | square-okhttp:
1224 | runs-on: macos-latest
1225 | if: ${{ !cancelled() }}
1226 | outputs:
1227 | version: ${{ steps.version.outputs.version }}
1228 | needs:
1229 | - workflow-up-to-date
1230 | - square-okio
1231 | - square-kotlinpoet
1232 | steps:
1233 | - name: Checkout this repository
1234 | uses: actions/checkout@v4
1235 | with:
1236 | path: this
1237 | - name: "Checkout square/okhttp repository"
1238 | uses: actions/checkout@v4
1239 | with:
1240 | repository: square/okhttp
1241 | path: square-okhttp
1242 | - uses: actions/setup-java@v4
1243 | with:
1244 | distribution: 'zulu'
1245 | java-version-file: this/.github/workflows/.java-version
1246 | - uses: gradle/actions/setup-gradle@v4
1247 | - uses: actions/setup-python@v5
1248 | with:
1249 | python-version: '3.13'
1250 | - name: Patch external dependencies
1251 | run: |
1252 | pip install -r this/.github/requirements.txt
1253 | this/.github/helper.py patch-toml square-okhttp versions.org-jetbrains-kotlin key kotlin
1254 | this/.github/helper.py patch-toml square-okhttp versions.ksp key ksp
1255 | - name: "Download internal dependency square/okio"
1256 | uses: actions/download-artifact@v4
1257 | if: ${{ needs.square-okio.result == 'success' }}
1258 | with:
1259 | name: square-okio-snapshot
1260 | path: ~/.m2/repository
1261 | - name: "Patch internal dependency square/okio"
1262 | run: this/.github/helper.py patch-toml square-okhttp versions.com-squareup-okio value ${{ needs.square-okio.outputs.version }}
1263 | if: ${{ needs.square-okio.result == 'success' }}
1264 | - name: "Download internal dependency square/kotlinpoet"
1265 | uses: actions/download-artifact@v4
1266 | if: ${{ needs.square-kotlinpoet.result == 'success' }}
1267 | with:
1268 | name: square-kotlinpoet-snapshot
1269 | path: ~/.m2/repository
1270 | - name: "Patch internal dependency square/kotlinpoet"
1271 | run: this/.github/helper.py patch-toml square-okhttp libraries.squareup-kotlinPoet value ${{ needs.square-kotlinpoet.outputs.version }}
1272 | if: ${{ needs.square-kotlinpoet.result == 'success' }}
1273 | - name: "Build square/okhttp"
1274 | run: |
1275 | cd square-okhttp
1276 | git grep -l 'mavenCentral()' 'build.*' '**/build.*' 'settings.*' '**/settings.*' | xargs sed -i "" "s/mavenCentral()/mavenLocal(); mavenCentral()/g"
1277 | git diff --patch
1278 | ../this/gradlew publishToMavenLocal
1279 | - uses: actions/upload-artifact@v4
1280 | with:
1281 | name: square-okhttp-snapshot
1282 | path: ~/.m2/repository
1283 | if-no-files-found: error
1284 | - id: version
1285 | run: perl -ne '/version = (.*)/ and print "version=$1",$/' square-okhttp/build.gradle.kts >> "$GITHUB_OUTPUT"
1286 |
1287 | square-retrofit:
1288 | runs-on: macos-latest
1289 | if: ${{ !cancelled() }}
1290 | outputs:
1291 | version: ${{ steps.version.outputs.version }}
1292 | needs:
1293 | - workflow-up-to-date
1294 | - square-okhttp
1295 | steps:
1296 | - name: Checkout this repository
1297 | uses: actions/checkout@v4
1298 | with:
1299 | path: this
1300 | - name: "Checkout square/retrofit repository"
1301 | uses: actions/checkout@v4
1302 | with:
1303 | repository: square/retrofit
1304 | path: square-retrofit
1305 | - uses: actions/setup-java@v4
1306 | with:
1307 | distribution: 'zulu'
1308 | java-version-file: this/.github/workflows/.java-version
1309 | - uses: gradle/actions/setup-gradle@v4
1310 | - uses: actions/setup-python@v5
1311 | with:
1312 | python-version: '3.13'
1313 | - name: Patch external dependencies
1314 | run: |
1315 | pip install -r this/.github/requirements.txt
1316 | this/.github/helper.py patch-toml square-retrofit libraries.androidPlugin key agp
1317 | this/.github/helper.py patch-toml square-retrofit versions.kotlin key kotlin
1318 | - name: "Download internal dependency square/okhttp"
1319 | uses: actions/download-artifact@v4
1320 | if: ${{ needs.square-okhttp.result == 'success' }}
1321 | with:
1322 | name: square-okhttp-snapshot
1323 | path: ~/.m2/repository
1324 | - name: "Patch internal dependency square/okhttp"
1325 | run: this/.github/helper.py patch-toml square-retrofit versions.okhttp value ${{ needs.square-okhttp.outputs.version }}
1326 | if: ${{ needs.square-okhttp.result == 'success' }}
1327 | - name: "Build square/retrofit"
1328 | run: |
1329 | cd square-retrofit
1330 | git grep -l 'mavenCentral()' 'build.*' '**/build.*' 'settings.*' '**/settings.*' | xargs sed -i "" "s/mavenCentral()/mavenLocal(); mavenCentral()/g"
1331 | git diff --patch
1332 | ../this/gradlew build publishToMavenLocal
1333 | - uses: actions/upload-artifact@v4
1334 | with:
1335 | name: square-retrofit-snapshot
1336 | path: ~/.m2/repository
1337 | if-no-files-found: error
1338 | - id: version
1339 | run: perl -ne '/VERSION_NAME=(.*)/ and print "version=$1",$/' square-retrofit/gradle.properties >> "$GITHUB_OUTPUT"
1340 |
1341 | final-status:
1342 | if: ${{ !cancelled() }}
1343 | runs-on: ubuntu-latest
1344 | needs:
1345 | - workflow-up-to-date
1346 | - cashapp-burst
1347 | - cashapp-copper
1348 | - cashapp-licensee
1349 | - cashapp-molecule
1350 | - cashapp-paraphrase
1351 | - cashapp-redwood
1352 | - cashapp-turbine
1353 | - JakeWharton-cite
1354 | - JakeWharton-crossword
1355 | - JakeWharton-dependency-tree-diff
1356 | - JakeWharton-dependency-watch
1357 | - JakeWharton-diffuse
1358 | - JakeWharton-finalization-hook
1359 | - JakeWharton-hardcover-data-sync
1360 | - JakeWharton-kmp-missing-targets
1361 | - JakeWharton-mosaic
1362 | - JakeWharton-picnic
1363 | - JakeWharton-SaveArchived4Pocket
1364 | - JakeWharton-video-swatch
1365 | - sqldelight-Grammar-Kit-Composer
1366 | - sqldelight-sql-psi
1367 | - square-kotlinpoet
1368 | - square-okio
1369 | - square-okhttp
1370 | - square-retrofit
1371 | steps:
1372 | - name: Check
1373 | run: |
1374 | results=$(tr -d '\n' <<< '${{ toJSON(needs.*.result) }}')
1375 | if ! grep -q -v -E '(failure|cancelled)' <<< "$results"; then
1376 | echo "One or more required jobs failed"
1377 | exit 1
1378 | fi
1379 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .idea
2 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Prerelease Testing
2 |
3 | Automatically test projects against the latest versions of Kotlin, Gradle, and each other.
4 |
5 | Included projects:
6 |
7 | 
8 |
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JakeWharton/prerelease-testing/8bc7b8f522aa73702b720755cb0deb093a705b15/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | distributionBase=GRADLE_USER_HOME
2 | distributionPath=wrapper/dists
3 | distributionSha256Sum=f682abba2db33587373c58f558c9387b25f7ea592298b57defbf33fc5488c43d
4 | distributionUrl=https\://services.gradle.org/distributions/gradle-9.0.0-milestone-9-bin.zip
5 | networkTimeout=10000
6 | validateDistributionUrl=true
7 | zipStoreBase=GRADLE_USER_HOME
8 | zipStorePath=wrapper/dists
9 |
--------------------------------------------------------------------------------
/gradlew:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | #
4 | # Copyright © 2015 the original authors.
5 | #
6 | # Licensed under the Apache License, Version 2.0 (the "License");
7 | # you may not use this file except in compliance with the License.
8 | # You may obtain a copy of the License at
9 | #
10 | # https://www.apache.org/licenses/LICENSE-2.0
11 | #
12 | # Unless required by applicable law or agreed to in writing, software
13 | # distributed under the License is distributed on an "AS IS" BASIS,
14 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | # See the License for the specific language governing permissions and
16 | # limitations under the License.
17 | #
18 | # SPDX-License-Identifier: Apache-2.0
19 | #
20 |
21 | ##############################################################################
22 | #
23 | # Gradle start up script for POSIX generated by Gradle.
24 | #
25 | # Important for running:
26 | #
27 | # (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is
28 | # noncompliant, but you have some other compliant shell such as ksh or
29 | # bash, then to run this script, type that shell name before the whole
30 | # command line, like:
31 | #
32 | # ksh Gradle
33 | #
34 | # Busybox and similar reduced shells will NOT work, because this script
35 | # requires all of these POSIX shell features:
36 | # * functions;
37 | # * expansions «$var», «${var}», «${var:-default}», «${var+SET}»,
38 | # «${var#prefix}», «${var%suffix}», and «$( cmd )»;
39 | # * compound commands having a testable exit status, especially «case»;
40 | # * various built-in commands including «command», «set», and «ulimit».
41 | #
42 | # Important for patching:
43 | #
44 | # (2) This script targets any POSIX shell, so it avoids extensions provided
45 | # by Bash, Ksh, etc; in particular arrays are avoided.
46 | #
47 | # The "traditional" practice of packing multiple parameters into a
48 | # space-separated string is a well documented source of bugs and security
49 | # problems, so this is (mostly) avoided, by progressively accumulating
50 | # options in "$@", and eventually passing that to Java.
51 | #
52 | # Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS,
53 | # and GRADLE_OPTS) rely on word-splitting, this is performed explicitly;
54 | # see the in-line comments for details.
55 | #
56 | # There are tweaks for specific operating systems such as AIX, CygWin,
57 | # Darwin, MinGW, and NonStop.
58 | #
59 | # (3) This script is generated from the Groovy template
60 | # https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
61 | # within the Gradle project.
62 | #
63 | # You can find Gradle at https://github.com/gradle/gradle/.
64 | #
65 | ##############################################################################
66 |
67 | # Attempt to set APP_HOME
68 |
69 | # Resolve links: $0 may be a link
70 | app_path=$0
71 |
72 | # Need this for daisy-chained symlinks.
73 | while
74 | APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path
75 | [ -h "$app_path" ]
76 | do
77 | ls=$( ls -ld "$app_path" )
78 | link=${ls#*' -> '}
79 | case $link in #(
80 | /*) app_path=$link ;; #(
81 | *) app_path=$APP_HOME$link ;;
82 | esac
83 | done
84 |
85 | # This is normally unused
86 | # shellcheck disable=SC2034
87 | APP_BASE_NAME=${0##*/}
88 | # Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
89 | APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit
90 |
91 | # Use the maximum available, or set MAX_FD != -1 to use that value.
92 | MAX_FD=maximum
93 |
94 | warn () {
95 | echo "$*"
96 | } >&2
97 |
98 | die () {
99 | echo
100 | echo "$*"
101 | echo
102 | exit 1
103 | } >&2
104 |
105 | # OS specific support (must be 'true' or 'false').
106 | cygwin=false
107 | msys=false
108 | darwin=false
109 | nonstop=false
110 | case "$( uname )" in #(
111 | CYGWIN* ) cygwin=true ;; #(
112 | Darwin* ) darwin=true ;; #(
113 | MSYS* | MINGW* ) msys=true ;; #(
114 | NONSTOP* ) nonstop=true ;;
115 | esac
116 |
117 | CLASSPATH="\\\"\\\""
118 |
119 |
120 | # Determine the Java command to use to start the JVM.
121 | if [ -n "$JAVA_HOME" ] ; then
122 | if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
123 | # IBM's JDK on AIX uses strange locations for the executables
124 | JAVACMD=$JAVA_HOME/jre/sh/java
125 | else
126 | JAVACMD=$JAVA_HOME/bin/java
127 | fi
128 | if [ ! -x "$JAVACMD" ] ; then
129 | die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
130 |
131 | Please set the JAVA_HOME variable in your environment to match the
132 | location of your Java installation."
133 | fi
134 | else
135 | JAVACMD=java
136 | if ! command -v java >/dev/null 2>&1
137 | then
138 | die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
139 |
140 | Please set the JAVA_HOME variable in your environment to match the
141 | location of your Java installation."
142 | fi
143 | fi
144 |
145 | # Increase the maximum file descriptors if we can.
146 | if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
147 | case $MAX_FD in #(
148 | max*)
149 | # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
150 | # shellcheck disable=SC2039,SC3045
151 | MAX_FD=$( ulimit -H -n ) ||
152 | warn "Could not query maximum file descriptor limit"
153 | esac
154 | case $MAX_FD in #(
155 | '' | soft) :;; #(
156 | *)
157 | # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
158 | # shellcheck disable=SC2039,SC3045
159 | ulimit -n "$MAX_FD" ||
160 | warn "Could not set maximum file descriptor limit to $MAX_FD"
161 | esac
162 | fi
163 |
164 | # Collect all arguments for the java command, stacking in reverse order:
165 | # * args from the command line
166 | # * the main class name
167 | # * -classpath
168 | # * -D...appname settings
169 | # * --module-path (only if needed)
170 | # * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables.
171 |
172 | # For Cygwin or MSYS, switch paths to Windows format before running java
173 | if "$cygwin" || "$msys" ; then
174 | APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
175 | CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )
176 |
177 | JAVACMD=$( cygpath --unix "$JAVACMD" )
178 |
179 | # Now convert the arguments - kludge to limit ourselves to /bin/sh
180 | for arg do
181 | if
182 | case $arg in #(
183 | -*) false ;; # don't mess with options #(
184 | /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath
185 | [ -e "$t" ] ;; #(
186 | *) false ;;
187 | esac
188 | then
189 | arg=$( cygpath --path --ignore --mixed "$arg" )
190 | fi
191 | # Roll the args list around exactly as many times as the number of
192 | # args, so each arg winds up back in the position where it started, but
193 | # possibly modified.
194 | #
195 | # NB: a `for` loop captures its iteration list before it begins, so
196 | # changing the positional parameters here affects neither the number of
197 | # iterations, nor the values presented in `arg`.
198 | shift # remove old arg
199 | set -- "$@" "$arg" # push replacement arg
200 | done
201 | fi
202 |
203 |
204 | # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
205 | DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
206 |
207 | # Collect all arguments for the java command:
208 | # * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
209 | # and any embedded shellness will be escaped.
210 | # * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
211 | # treated as '${Hostname}' itself on the command line.
212 |
213 | set -- \
214 | "-Dorg.gradle.appname=$APP_BASE_NAME" \
215 | -classpath "$CLASSPATH" \
216 | -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \
217 | "$@"
218 |
219 | # Stop when "xargs" is not available.
220 | if ! command -v xargs >/dev/null 2>&1
221 | then
222 | die "xargs is not available"
223 | fi
224 |
225 | # Use "xargs" to parse quoted args.
226 | #
227 | # With -n1 it outputs one arg per line, with the quotes and backslashes removed.
228 | #
229 | # In Bash we could simply go:
230 | #
231 | # readarray ARGS < <( xargs -n1 <<<"$var" ) &&
232 | # set -- "${ARGS[@]}" "$@"
233 | #
234 | # but POSIX shell has neither arrays nor command substitution, so instead we
235 | # post-process each arg (as a line of input to sed) to backslash-escape any
236 | # character that might be a shell metacharacter, then use eval to reverse
237 | # that process (while maintaining the separation between arguments), and wrap
238 | # the whole thing up as a single "set" statement.
239 | #
240 | # This will of course break if any of these variables contains a newline or
241 | # an unmatched quote.
242 | #
243 |
244 | eval "set -- $(
245 | printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" |
246 | xargs -n1 |
247 | sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' |
248 | tr '\n' ' '
249 | )" '"$@"'
250 |
251 | exec "$JAVACMD" "$@"
252 |
--------------------------------------------------------------------------------
/libs.versions.toml:
--------------------------------------------------------------------------------
1 | [versions]
2 | agp = "8.12.0-alpha04"
3 | atomicfu = "0.28.0-beta"
4 | jbCompose = "1.9.0-alpha02"
5 | kotlin = "2.1.21"
6 | ksp = "2.1.21-2.0.1"
7 |
8 | # These coordinates are othewise unused, but allow Renovate to understand the associated versions.
9 | [libraries]
10 | agp = { module = "com.android.tools.build:gradle", version.ref = "agp" }
11 | atomicfu = { module = "org.jetbrains.kotlinx:atomicfu", version.ref = "atomicfu" }
12 | jetbrains-compose = { module = "org.jetbrains.compose.runtime:runtime", version.ref = "jbCompose" }
13 | kotlin = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "kotlin" }
14 | ksp = { module = "com.google.devtools.ksp:symbol-processing-gradle-plugin", version.ref = "ksp" }
15 |
--------------------------------------------------------------------------------
/projects.yaml:
--------------------------------------------------------------------------------
1 | "cashapp/burst":
2 | pre_build: kotlinUpgradeYarnLock
3 | external_dependencies:
4 | agp: libraries.android-gradlePlugin
5 | kotlin: versions.kotlin
6 | ksp: libraries.google-ksp
7 | version:
8 | file: gradle.properties
9 | regex: "VERSION_NAME=(.*)"
10 |
11 | "cashapp/copper":
12 | external_dependencies:
13 | agp: libraries.android-gradlePlugin
14 | kotlin: libraries.kotlin-gradlePlugin
15 | internal_dependencies:
16 | "cashapp/turbine": libraries.turbine
17 | version:
18 | file: gradle.properties
19 | regex: "VERSION_NAME=(.*)"
20 |
21 | "cashapp/licensee":
22 | compile_only: true # Test golden files hard code versions.
23 | external_dependencies:
24 | agp: versions.agp
25 | kotlin: versions.kotlin
26 | internal_dependencies:
27 | "square/kotlinpoet": libraries.kotlinpoet
28 | version:
29 | file: gradle.properties
30 | regex: "VERSION_NAME=(.*)"
31 |
32 | "cashapp/molecule":
33 | pre_build: kotlinUpgradeYarnLock
34 | external_dependencies:
35 | agp: libraries.android-plugin
36 | jbCompose: versions.jetbrains-compose
37 | kotlin: versions.kotlin
38 | internal_dependencies:
39 | "cashapp/turbine": libraries.turbine
40 | "square/okhttp": versions.squareup-okhttp
41 | "square/retrofit": versions.squareup-retrofit
42 | version:
43 | file: gradle.properties
44 | regex: "VERSION_NAME=(.*)"
45 |
46 | "cashapp/paraphrase":
47 | external_dependencies:
48 | agp: versions.agp
49 | kotlin: versions.kotlin
50 | internal_dependencies:
51 | "square/kotlinpoet": libraries.kotlinPoet
52 | version:
53 | file: gradle.properties
54 | regex: "VERSION_NAME=(.*)"
55 |
56 | "cashapp/redwood":
57 | pre_build: kotlinUpgradeYarnLock
58 | post_build: -x :redwood-treehouse-host:check
59 | external_dependencies:
60 | agp: libraries.androidGradlePlugin
61 | atomicfu: libraries.atomicFuPlugin
62 | jbCompose: versions.jbCompose
63 | kotlin: versions.kotlin
64 | ksp: versions.ksp
65 | internal_dependencies:
66 | "cashapp/burst": versions.burst
67 | "cashapp/turbine": libraries.turbine
68 | "square/kotlinpoet": libraries.kotlinPoet
69 | "square/okio": versions.okio
70 | "square/okhttp": libraries.okhttp
71 | version:
72 | file: build-support/src/main/kotlin/app/cash/redwood/buildsupport/RedwoodBuildPlugin.kt
73 | regex: "REDWOOD_VERSION = \"(.*)\""
74 |
75 | "cashapp/turbine":
76 | pre_build: kotlinUpgradeYarnLock
77 | external_dependencies:
78 | kotlin: plugins.kotlin
79 | version:
80 | file: gradle.properties
81 | regex: "VERSION_NAME=(.*)"
82 |
83 | "JakeWharton/cite":
84 | pre_build: kotlinUpgradeYarnLock
85 | external_dependencies:
86 | agp: libraries.android-gradlePlugin
87 | kotlin: versions.kotlin
88 | version:
89 | file: gradle.properties
90 | regex: "VERSION_NAME=(.*)"
91 |
92 | "JakeWharton/crossword":
93 | pre_build: kotlinUpgradeYarnLock
94 | external_dependencies:
95 | kotlin: libraries.kotlinPlugin
96 | version:
97 | file: gradle.properties
98 | regex: "VERSION_NAME=(.*)"
99 |
100 | "JakeWharton/dependency-tree-diff":
101 | external_dependencies:
102 | kotlin: libraries.kotlin-gradle-plugin
103 |
104 | "JakeWharton/dependency-watch":
105 | external_dependencies:
106 | kotlin: versions.kotlin
107 | internal_dependencies:
108 | "square/okhttp": versions.okhttp
109 |
110 | "JakeWharton/diffuse":
111 | external_dependencies:
112 | agp: libraries.apkSigner
113 | kotlin: libraries.kotlinPlugin
114 | internal_dependencies:
115 | "square/okio": libraries.okio
116 | version:
117 | file: gradle.properties
118 | regex: "VERSION_NAME=(.*)"
119 |
120 | "JakeWharton/finalization-hook":
121 | external_dependencies:
122 | kotlin: versions.kotlin
123 | version:
124 | file: gradle.properties
125 | regex: "VERSION_NAME=(.*)"
126 |
127 | "JakeWharton/hardcover-data-sync":
128 | external_dependencies:
129 | kotlin: libraries.kotlin-gradlePlugin
130 | internal_dependencies:
131 | "square/okhttp": versions.okhttp
132 |
133 | "JakeWharton/kmp-missing-targets":
134 | compile_only: true # Test golden files hard code versions.
135 | external_dependencies:
136 | agp: libraries.android-gradlePlugin
137 | kotlin: versions.kotlin
138 | version:
139 | file: gradle.properties
140 | regex: "VERSION_NAME=(.*)"
141 |
142 | "JakeWharton/mosaic":
143 | external_dependencies:
144 | jbCompose: versions.jetbrains-compose
145 | kotlin: versions.kotlin
146 | internal_dependencies:
147 | "JakeWharton/cite": libraries.cite-gradlePlugin
148 | "JakeWharton/finalization-hook": libraries.finalizationHook
149 | version:
150 | file: gradle.properties
151 | regex: "VERSION_NAME=(.*)"
152 |
153 | "JakeWharton/picnic":
154 | pre_build: kotlinUpgradeYarnLock
155 | external_dependencies:
156 | kotlin: libraries.kotlinPlugin
157 | internal_dependencies:
158 | "JakeWharton/crossword": libraries.crossword
159 | version:
160 | file: gradle.properties
161 | regex: "VERSION_NAME=(.*)"
162 |
163 | "JakeWharton/SaveArchived4Pocket":
164 | external_dependencies:
165 | agp: libraries.androidGradlePlugin
166 | kotlin: versions.kotlin
167 | internal_dependencies:
168 | "square/retrofit": versions.retrofit
169 | "square/okhttp": versions.okhttp
170 |
171 | "JakeWharton/video-swatch":
172 | pre_gradle: brew install ffmpeg
173 | external_dependencies:
174 | kotlin: versions.kotlin
175 | internal_dependencies:
176 | "square/okio": libraries.okio
177 |
178 | "sqldelight/Grammar-Kit-Composer":
179 | external_dependencies:
180 | kotlin: plugins.kotlinJvm
181 | internal_dependencies:
182 | "square/kotlinpoet": libraries.kotlinPoet
183 | version:
184 | file: gradle.properties
185 | regex: "VERSION_NAME=(.*)"
186 |
187 | "sqldelight/sql-psi":
188 | external_dependencies:
189 | kotlin: versions.kotlin
190 | internal_dependencies:
191 | "sqldelight/Grammar-Kit-Composer": plugins.grammarKitComposer
192 | version:
193 | file: gradle.properties
194 | regex: "VERSION_NAME=(.*)"
195 |
196 | "square/kotlinpoet":
197 | pre_build: kotlinUpgradeYarnLock
198 | external_dependencies:
199 | kotlin: versions.kotlin
200 | ksp: versions.ksp
201 | version:
202 | file: gradle.properties
203 | regex: "VERSION_NAME=(.*)"
204 |
205 | "square/okio":
206 | pre_build: kotlinUpgradeYarnLock
207 | external_dependencies:
208 | kotlin: versions.kotlin
209 | agp: libraries.android-gradle-plugin
210 | internal_dependencies:
211 | "cashapp/burst": libraries.burst-gradle-plugin
212 | version:
213 | file: gradle.properties
214 | regex: "VERSION_NAME=(.*)"
215 |
216 | "square/okhttp":
217 | compile_only: true # Build is all kinds of messed up.
218 | external_dependencies:
219 | kotlin: versions.org-jetbrains-kotlin
220 | ksp: versions.ksp
221 | internal_dependencies:
222 | "square/okio": versions.com-squareup-okio
223 | "square/kotlinpoet": libraries.squareup-kotlinPoet
224 | version:
225 | file: build.gradle.kts
226 | regex: "version = (.*)"
227 |
228 | "square/retrofit":
229 | external_dependencies:
230 | agp: libraries.androidPlugin
231 | kotlin: versions.kotlin
232 | internal_dependencies:
233 | "square/okhttp": versions.okhttp
234 | version:
235 | file: gradle.properties
236 | regex: "VERSION_NAME=(.*)"
237 |
--------------------------------------------------------------------------------
/settings.gradle:
--------------------------------------------------------------------------------
1 | dependencyResolutionManagement {
2 | repositories {
3 | mavenCentral()
4 | google()
5 | }
6 | }
7 |
--------------------------------------------------------------------------------