Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 29 additions & 0 deletions .buildkite/pipeline.yml
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,35 @@ steps:
make test-swift-package
plugins: *plugins

- label: ':xcode: Build XCFramework'
key: build-xcframework
depends_on: build-react
command: |
buildkite-agent artifact download dist.tar.gz .
tar -xzf dist.tar.gz
install_gems
bundle exec fastlane set_up_signing_release
make build-resources-xcframework
bundle exec fastlane xcframework_sign
./package_xcframework.sh
Comment on lines +74 to +80
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I admit this is quite confusing with a mash of Fastlane, make, and scripts. I'll tidy up in a follow up, my preference being to use make as the single entry point.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

artifact_paths:
- '*.xcframework.zip'
- '*.xcframework.zip.checksum.txt'
plugins: *plugins

- label: ':s3: Publish XCFramework to S3'
# Eventually, we might want to gate this based on an env var
# to be set by the process that starts the pipeline
#
# if: build.env("NEW_VERSION") != null
depends_on: build-xcframework
command: |
buildkite-agent artifact download '*.xcframework.zip' .
buildkite-agent artifact download '*.xcframework.zip.checksum.txt' .
install_gems
bundle exec fastlane publish_to_s3 version:${NEW_VERSION:-$BUILDKITE_COMMIT}
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Android publishes every version but does not have the issue of having to update Package.swift to match the checksum generated by the build.

Given storage is cheap, it might be okay for us to publish the XCFramework on every build, too, just to continue exercising the infra and avoid surprises at release time.

Or, we could be frugal and only publish when we need. I'm leaning toward publishing one every build, though. Faster feedback. And we could add additional automation to easily push a commit with updated Package.swift so that any XCFramework in S3 can be tested in WordPress iOS in a few clicks.

plugins: *plugins

- label: ':ios: Test iOS E2E'
depends_on: build-react
command: |
Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,9 @@ playground.xcworkspace
# Ruby tooling
vendor/bundle

# Fastlane
fastlane/report.xml

# Logs
logs
*.log
Expand Down
6 changes: 6 additions & 0 deletions Gemfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# frozen_string_literal: true

source 'https://rubygems.org'

gem 'fastlane', '~> 2.230'
gem 'fastlane-plugin-wpmreleasetoolkit', '~> 13.8'
Loading
Loading