Repository navigation
Build the SDKs' native assets once, and publish them as a release - #2
Merged
Merged
Conversation
The SDKs have each carried a copy of this repo's build output, made by scripts/sync-sdk.sh from whatever was built locally. Nothing records which commit a copy came from, and react-sdk cannot even build from a clean checkout because the web dist is gitignored there. release.yml builds web (wasm), iOS (xcframework) and Android (jniLibs) on CI and, on a v* tag, publishes them with SHA256SUMS so an SDK can pin a tag and verify what it fetched. Pull requests that touch the build run everything but the publish. scripts/package-release.sh packs each platform's products into the assets; it carries what sync-sdk.sh copies, so a release can replace a local build. bindings/js-style gains a lockfile so CI can npm ci it.
…to ci/release-artifacts
…to ci/release-artifacts
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stacked on the
feature/split-layer-bindingsPR. It needs that branch's style and PNG encoder bindings.The SDKs each carry a copy of this repo's build output, copied in by
scripts/sync-sdk.shfrom a local build. Nothing records which commit a copy came from. In react-sdk the webdist/is also gitignored, so it cannot build from a clean checkout. This adds a release that the SDKs can pin and verify instead.release.ymlbindings/jsandbindings/js-styleversions match, and on a tag, that they match the tagnpm run buildinbindings/jsandbindings/js-stylebuild-ios.sh,build-ios-style.sh,build-ios-core-png.shbuild-android.sh,build-android-style.sh,build-android-core-png.shSHA256SUMS, plus release notes with the commit and the toolchain; on av*tag, runsgh release createscripts/build-*.sh,scripts/package-release.sh) run everything except the publish. A broken build shows up before a tag is pushed.test.yml: wasm-pack is installed withcargo install, with no third-party actions beyond the existing ones.Assets (
scripts/package-release.sh)vectortile-web.tgz,vectorstyle-web.tgz(pkg/without wasm-pack's.gitignore,dist/,package.json)MvtRender.xcframework.zip,MvtStyle.xcframework.zip,TilePng.xcframework.zip(top entry is the.xcframework, asbinaryTarget(url:checksum:)expects),ios-sources.tgz(the Swift/C glue)android-{vectortile,vectorstyle,core}-jniLibs.zip,android-sources.tgz(the Kotlin glue)Each platform's assets carry what
sync-sdk.shcopies for it.bindings/js-stylegains apackage-lock.json, so CI cannpm ciit.Checked
package-release.shwas run locally on all three platforms against existing builds. Asset layout was confirmed withtar -tandunzip -l.swift package compute-checksumaccepts the iOS zips.Not changed
build-android.shstill builds onlyarm64-v8afor the renderer. The style compiler and PNG encoder have three ABIs.test.yml. The version used is written into the release notes.