Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[pull] trunk from Automattic:trunk #11

Merged
merged 650 commits into from
Oct 23, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
650 commits
Select commit Hold shift + click to select a range
6676dea
Replace unnecessarily reads from env of team ids with direct definition
mokagio Jul 29, 2024
03f66af
Remove `project.env` from `configure`
mokagio Jul 29, 2024
7ab3092
Replace `ios_codefreeze_prechecks` with individual checks
mokagio Jul 29, 2024
5994d4e
Use `skip_confirm:` named argument in code freeze lane
mokagio Jul 29, 2024
22c766f
Introduce version calculators and adopt in code freeze lane
mokagio Jul 29, 2024
9e757f4
Update release-toolkit to latest version
mokagio Jul 29, 2024
f390b27
Add command to check CocoaPods are using stable versions
mokagio Jul 29, 2024
2909545
DRY one release branch name computation
mokagio Jul 29, 2024
754d277
Move method to trigger Buildkite release build to `release.rb`
mokagio Jul 29, 2024
63a16fc
Add shared vars and explicitly set agents in Buildkite pipelines
mokagio Jul 29, 2024
009cbdb
Remove unnecessary comments and double quotes from Buildkite pipelines
mokagio Jul 29, 2024
98c3b93
Merge remote-tracking branch 'origin/trunk' into mokagio/release-auto…
mokagio Jul 29, 2024
96aa4d2
Double quote a var access in `release-build.sh`
mokagio Jul 29, 2024
883781d
Extract lane to build for ASC into dedicated file
mokagio Jul 29, 2024
96639bf
Use named block arguments in build for ASC lane
mokagio Jul 29, 2024
14149e9
Remove calls to delete artifacts from build for ASC lane
mokagio Jul 29, 2024
66781d6
Remove `ios_build_preflight` and `ios_build_prechecks` from build lane
mokagio Jul 29, 2024
3ca756a
Use `xcconfig` to define development team for release builds
mokagio Jul 29, 2024
447ec15
Use `xcconfig` to specify provisioning profile for ASC builds
mokagio Jul 29, 2024
4a244ca
Extract logic to build for ASC in dedicated lane
mokagio Jul 29, 2024
c704b27
Use project file as source of truth for ASC code signing settings
mokagio Jul 29, 2024
ffbe630
DRY workspace definition
mokagio Jul 29, 2024
9f96265
Update Fastlane versioning object to reflect app's strategy
mokagio Jul 29, 2024
5f8b66a
Fix incorrect config file path
mokagio Jul 29, 2024
eb52ef6
Revert commits accidentally pushed to `trunk`
mokagio Jul 29, 2024
a3c8d40
Add shared vars and explicitly set agents in Buildkite pipelines
mokagio Jul 29, 2024
6eda945
Restore `trunk` state as of `f85f732f9f6f10f0dcafc4918f94f4353f66c9a6`
jleandroperez Jul 25, 2024
ac7d678
Restore `trunk` state as of `f85f732f9` (#1627)
mokagio Jul 29, 2024
befd01a
Update `release-toolkit` to latest version 11.0.3
mokagio Jul 22, 2024
57b469d
Remove unused `Pluginfile` import from `Gemfile`
mokagio Jul 22, 2024
53ea92e
Move lane to generate strings to dedicated file
mokagio Jul 26, 2024
9e2b0b4
Move code freeze lane to dedicated file
mokagio Jul 26, 2024
1d8f8b2
Move `new_beta` lane to `release.rb`
mokagio Jul 28, 2024
490b7f8
Use `set_milestone_frozen_marker` instead of `setfrozentag`
mokagio Jul 28, 2024
e391823
Introduce `EnvManager`
mokagio Jul 28, 2024
cab110a
Remove obsolete lane to register device
mokagio Jul 28, 2024
e6b47c0
Replace unnecessarily reads from env of team ids with direct definition
mokagio Jul 29, 2024
2771552
Remove `project.env` from `configure`
mokagio Jul 29, 2024
7351555
Replace `ios_codefreeze_prechecks` with individual checks
mokagio Jul 29, 2024
cbbd28d
Use `skip_confirm:` named argument in code freeze lane
mokagio Jul 29, 2024
eec335a
Introduce version calculators and adopt in code freeze lane
mokagio Jul 29, 2024
1ca6bec
Update release-toolkit to latest version
mokagio Jul 29, 2024
09b63b7
Add command to check CocoaPods are using stable versions
mokagio Jul 29, 2024
a296663
DRY one release branch name computation
mokagio Jul 29, 2024
0806546
Move method to trigger Buildkite release build to `release.rb`
mokagio Jul 29, 2024
aad3f36
Remove unnecessary comments and double quotes from Buildkite pipelines
mokagio Jul 29, 2024
51591e8
Double quote a var access in `release-build.sh`
mokagio Jul 29, 2024
d963462
Extract lane to build for ASC into dedicated file
mokagio Jul 29, 2024
83b6230
Use named block arguments in build for ASC lane
mokagio Jul 29, 2024
6260e8c
Remove calls to delete artifacts from build for ASC lane
mokagio Jul 29, 2024
6e78eef
Remove `ios_build_preflight` and `ios_build_prechecks` from build lane
mokagio Jul 29, 2024
d13ca5b
Use `xcconfig` to define development team for release builds
mokagio Jul 29, 2024
ac3c4b5
Use `xcconfig` to specify provisioning profile for ASC builds
mokagio Jul 29, 2024
1892b8c
Extract logic to build for ASC in dedicated lane
mokagio Jul 29, 2024
260fb61
Use project file as source of truth for ASC code signing settings
mokagio Jul 29, 2024
b277305
DRY workspace definition
mokagio Jul 29, 2024
9960ee4
Update Fastlane versioning object to reflect app's strategy
mokagio Jul 29, 2024
248a254
Fix incorrect config file path
mokagio Jul 29, 2024
737c86b
Bump version number
mokagio Jul 29, 2024
d3c5bdd
Update draft release notes for 4.52.
mokagio Jul 29, 2024
c33a695
Release Notes: add new section for next version (4.53)
mokagio Jul 29, 2024
9016552
Freeze strings for localization
mokagio Jul 29, 2024
e7d2b4d
Default to current version for `update_appstore_strings`
mokagio Jul 29, 2024
a8af526
Update metadata strings
mokagio Jul 29, 2024
2e8280c
Revert "Freeze strings for localization"
mokagio Jul 29, 2024
9aafb79
Remove explicit file encoding from Localizable.strings
mokagio Jul 29, 2024
feb0405
Freeze strings for localization
mokagio Jul 29, 2024
bb009c2
Remove `strings` expected encoding and add ASC metadata source (#1628)
mokagio Jul 30, 2024
c0ace58
Limit character input on login code text field
charliescheer Jul 31, 2024
d1f6123
Validate deleting tag before completing
charliescheer Jul 31, 2024
dcb0709
Fix animation preview to be on the trailing edge regardless of direction
charliescheer Aug 1, 2024
4167152
Fixed animation direction for RTL languages when swiping markdown
charliescheer Aug 1, 2024
1a65ff6
Updated package tracks dependency to get updates to sentry build error
charliescheer Aug 1, 2024
f17db94
Merge 4.52 code freeze into `trunk` (#1634)
mokagio Aug 1, 2024
9d0b3f7
Merge 'origin/trunk' into charlie/code-input-char-limit
mokagio Aug 1, 2024
d2a9dbf
Tidy for clarity: Use `build_app` alias instead of `gym`
mokagio Aug 7, 2024
f71ac6b
Specify output folder and name when building for ASC
mokagio Aug 7, 2024
5dd9989
Extract automation to upload to TestFlight into dedicated lane
mokagio Aug 8, 2024
be1d9e7
Use `Versioning` module to read version for TestFlight upload
mokagio Aug 8, 2024
945e0ae
Strip timestamp from xcarchive name
mokagio Aug 8, 2024
9fe2ede
Define all Fastlane consts before importing the lanes...
mokagio Aug 8, 2024
4d7a230
Split ASC build from upload in CI
mokagio Aug 8, 2024
3f504a0
Manually bump build code to test release automation
mokagio Aug 8, 2024
4af91c1
Zip `xcarchive` in the same step it's generated
mokagio Aug 8, 2024
e1209d9
Manually bump build code to test release automation
mokagio Aug 8, 2024
36c7ced
Use clearer `upload_to_testflight` alias over `testflight`
mokagio Aug 8, 2024
d60768d
Configure TestFlight upload to also submit for beta review
mokagio Aug 8, 2024
41b4001
Manually bump build code
mokagio Aug 8, 2024
15ca67d
Extract `release_notes.txt` full path to a constant
mokagio Aug 8, 2024
5d7562a
Pass required `changelog` to upload to TestFlight method
mokagio Aug 8, 2024
b6ede03
Update Installable build annotation logic
mokagio Aug 8, 2024
3932d28
Fix a couple of typos in documentation comments
mokagio Aug 8, 2024
361cb27
Delete redundant `build_and_upload_to_app_store_connect` lane
mokagio Aug 8, 2024
69ba2ae
Split building for ASC from uploading in separate CI steps (#1635)
mokagio Aug 8, 2024
0bdc114
Merge pull request #1630 from Automattic/charlie/code-input-char-limit
charliescheer Aug 12, 2024
f0115a1
Merge pull request #1632 from Automattic/charlie/1150/rtl-markdown-swipe
charliescheer Aug 12, 2024
35b582f
Updated shouldRemove tag method for clarity
charliescheer Aug 12, 2024
feee2cd
Merge pull request #1633 from Automattic/charlie/prepare-for-xcode-16
charliescheer Aug 12, 2024
ad38f67
Merge pull request #1631 from Automattic/charlie/1312/validate-tag-de…
charliescheer Aug 12, 2024
78800f0
Updates localizations
jleandroperez Aug 13, 2024
d4476a8
Merge pull request #1638 from Automattic/lantean/updates-translations
jleandroperez Aug 14, 2024
3766253
Extract GlotPress URLs to constants
mokagio Aug 15, 2024
4f51693
Provide skeleton implementation for download localizations lane
mokagio Aug 15, 2024
eb70061
Move sanitize ASC keywords to lane that downloads them
mokagio Aug 15, 2024
d37c53f
Use the same GlotPress constants setup as Android
mokagio Aug 15, 2024
5daa4b5
Implement modern ASC localization download logic
mokagio Aug 15, 2024
53bf829
Remove obsolete scripts for localization
mokagio Aug 15, 2024
9e2175e
Do not attempt to download `en` from GlotPress—It's not there
mokagio Aug 15, 2024
6f6fd4a
Remove old `fastlane/metadata/default/release_notes.txt`—Now git-ignored
mokagio Aug 15, 2024
2009bfb
Fix broken localization automation in release branch (#1639)
mokagio Aug 16, 2024
8d98e35
Extract path for `Simplenote/Resources/` in const
mokagio Aug 16, 2024
3f2737c
Add method to ensure Git branch is a release branch
mokagio Aug 16, 2024
f1e1ebe
DRY logic to lint localizations in dedicated lane
mokagio Aug 16, 2024
217e4d9
Revert ignoring default `release_notes.txt` because it fails automation
mokagio Aug 16, 2024
ab3c7bf
Upgrade `new_beta_release` lane to modern syntax
mokagio Aug 16, 2024
1042c1a
Update App Store metadata translations
mokagio Aug 16, 2024
174d440
Trim ar-SA keywords to be less than 100 characters
mokagio Aug 16, 2024
cfe4aaf
Bump version number
mokagio Aug 16, 2024
2119b40
Merge changes from beta 4.52.0.4 (#1640)
mokagio Aug 20, 2024
01bf159
Run Danger on Buildkite Linter queue
iangmaia Aug 29, 2024
b9517a3
Suffix `ensure_git_branch_is_release_branch` with `!`
mokagio Aug 30, 2024
3c99076
Move `finalize_release` lane to dedicated file and modernize
mokagio Aug 30, 2024
cf4988f
Create backmerge PR from `finalize_release` lane
mokagio Aug 30, 2024
1f22312
Fix infinite loop in localization checks 😳
mokagio Aug 30, 2024
12740c9
Update App Store metadata translations
mokagio Aug 30, 2024
51d23e6
Trim ar-SA keywords to be less than 100 characters
mokagio Aug 30, 2024
415b21f
Bump version number
mokagio Aug 30, 2024
4f3df6a
Reformat comment in `ensure_git_branch_is_release_branch!`
mokagio Aug 30, 2024
382a466
Remove misplaced annotation for milestone move in release finalization
mokagio Aug 30, 2024
15b4408
Add metadata source for support URL
mokagio Aug 30, 2024
f19d2d5
Merge release/4.52 into trunk (#1645)
mokagio Sep 1, 2024
7b0502e
Add method for milestone moving
mokagio Aug 30, 2024
9b1d3a1
Use new milestones freezing method in code freeze lane
mokagio Sep 2, 2024
9705d7a
Add a note regarding the milestone moving implementation rationale
mokagio Sep 2, 2024
a5984c8
Use `return` instead of `next` in method
mokagio Sep 2, 2024
9ba4552
Add method for milestone moving (#1644)
mokagio Sep 2, 2024
31a0229
Use `fastlane/metadata/default/release_notes.txt` as source of truth
mokagio Sep 2, 2024
0f3f3d4
Clarify what the call to `ios_update_release_notes` does
mokagio Sep 2, 2024
f225c55
Update `code_freeze` to delete release notes metadata before updating
mokagio Sep 2, 2024
3cc614b
Remove `Simplenote/Resources/release_notes.txt`
mokagio Sep 2, 2024
77d8318
Remove unused script to extract release notes
mokagio Sep 2, 2024
e22d8a2
Use `STORE_METADATA_DEFAULT_LOCALE_FOLDER` for clarity
mokagio Sep 3, 2024
74512dc
Move `update_appstore_strings` lane to `localization.rb`
mokagio Sep 3, 2024
020beec
Remove unnecessary env var `APP_STORE_STRINGS_FILE_NAME`
mokagio Sep 3, 2024
163271e
Remove explicit file name from `update_appstore_strings` description
mokagio Sep 3, 2024
bf66628
Refactor `delete_all_metadata_release_notes` for clarity
mokagio Sep 3, 2024
4a6a46b
Make Fastlane the single source of truth for release notes (#1647)
mokagio Sep 3, 2024
87e34fd
Merge branch 'trunk' into iangmaia/run-danger-on-buildkite
mokagio Sep 4, 2024
2ea91a1
[Tooling] Run Danger on Buildkite Linter Agent (#1643)
mokagio Sep 4, 2024
fc32756
Add lane to start the code freeze in CI
mokagio Sep 2, 2024
fc8ebb8
Split code freeze in start and finish lanes
mokagio Sep 2, 2024
ab5ed13
Add missing beta flag to release pipeline
mokagio Sep 4, 2024
a12d241
Add Buildkite pipeline and infra to complete the code freeze in CI
mokagio Sep 4, 2024
ba38ecb
Run `update_appstore_strings` from `complete_code_freeze`
mokagio Sep 4, 2024
59dca8d
Fix TestFlight submission using release notes path instead of content
mokagio Sep 4, 2024
0d0b4fd
Fix typo
mokagio Sep 4, 2024
e6dd627
Remove log outdated pods from complete code freeze
mokagio Sep 4, 2024
3ad4417
Set `retry: manual: allowed: false` for release pipelines
mokagio Sep 4, 2024
c60f919
Remove unnecessary SwiftPM cache download from CI complete code freeze
mokagio Sep 4, 2024
e010be1
Add YAML schema to Buildkite pipelines
mokagio Sep 4, 2024
b07ebc4
Remove the need for the `RELEASE_NUMBER` argument
mokagio Sep 4, 2024
4b6090e
DRY release-env setup in dedicated script
mokagio Sep 4, 2024
757b268
Inline simplified complete-code-freeze.sh in pipeline
mokagio Sep 4, 2024
1f18f63
Run code freeze in CI (#1646)
mokagio Sep 4, 2024
230b506
Run start code freeze on `tumblr-metal` agent
mokagio Sep 4, 2024
ad15411
Inlinie `configure-environment.sh` script
mokagio Sep 4, 2024
16d6b4c
Update `configure-git-for-release-management.sh` to use modern setup
mokagio Sep 4, 2024
2f637d6
Run start code freeze on `tumblr-metal` agent (#1649)
mokagio Sep 4, 2024
16d53c2
Pass `wpmobilebot` explicitly in `start-code-freeze.yml`
mokagio Sep 4, 2024
a3ffcd1
Capitalize Git because it's a noun
mokagio Sep 4, 2024
06c692b
Pass `wpmobilebot` explicitly in `start-code-freeze.yml` (#1650)
mokagio Sep 4, 2024
d518260
Bump version number
wpmobilebot Sep 4, 2024
41582ce
Delete release notes source and localization before code freeze
wpmobilebot Sep 4, 2024
2c1c48f
Update draft release notes for 4.53.
wpmobilebot Sep 4, 2024
8e08aae
Release Notes: add new section for next version (4.54)
wpmobilebot Sep 4, 2024
47c8104
Update `release_notes.txt` with copy for 4.53
mokagio Sep 4, 2024
f788fe2
Update `release_notes.txt` with copy for 4.53 (#1651)
mokagio Sep 4, 2024
abbf62d
Fix a `ensure_git_branch_is_release_branch!` usage without `!`
mokagio Sep 4, 2024
d804416
Freeze strings for localization
wpmobilebot Sep 4, 2024
d7cc1dc
Update metadata strings
wpmobilebot Sep 4, 2024
965846e
Remove usage of undefined `computed_release_branch_name`
mokagio Sep 4, 2024
9f4ff12
Revert previous localizations changes to retry CI code freeze completion
mokagio Sep 4, 2024
27f7fe6
Remove outdated comment from `start-code-freeze.yml`
mokagio Sep 4, 2024
412c24c
Freeze strings for localization
wpmobilebot Sep 4, 2024
92fd936
Update metadata strings
wpmobilebot Sep 4, 2024
08c75e9
Make method to trigger Buildkite build annotate the caller, if any
mokagio Sep 4, 2024
46134a3
Store `build_url` before using it -.-'
mokagio Sep 6, 2024
439bc6c
Reword a release notes commit message and fix a typo
mokagio Sep 6, 2024
a40e3f8
Make method to trigger Buildkite build annotate the caller (#1653)
mokagio Sep 9, 2024
edd1080
Merge 4.53 code freeze (#1652)
mokagio Sep 10, 2024
2fd5030
Add fall back login with username and password option to login
charliescheer Sep 11, 2024
93c8848
updated link to privacy notice for CA users
codebykat Sep 12, 2024
8b5c3aa
Removed header on the login with username/password page
charliescheer Sep 12, 2024
46f2db6
Update California privacy policy link (#1657)
codebykat Sep 12, 2024
1687750
Update app translations – `Localizable.strings`
mokagio Sep 13, 2024
637fdf1
Update App Store metadata translations
mokagio Sep 13, 2024
cf2e534
Trim ar-SA keywords to be less than 100 characters
mokagio Sep 13, 2024
bcbda39
Bump version number
mokagio Sep 13, 2024
38c60a3
Restore deleted `fastlane/metadata/*/description.txt`
mokagio Sep 13, 2024
c46882c
Updated AppIcon assets to work with new ios 18 styles
charliescheer Sep 13, 2024
6909711
Merge branch 'trunk' into charlie/1654/magic-link-enter-password-button
mokagio Sep 13, 2024
0bb4dd1
Add fall back login with username and password option to login (#1656)
charliescheer Sep 13, 2024
d52df74
Merge branch 'trunk' into charlie/prepare-icons-for-ios18-mk2
charliescheer Sep 14, 2024
6da24bd
Updated AppIcon assets to work with new ios 18 styles (#1660)
charliescheer Sep 14, 2024
7b5d471
Merge branch 'trunk' into merge/release-4.53-into-trunk
mokagio Sep 16, 2024
8e0d040
Merge release/4.53 into trunk (#1659)
mokagio Sep 16, 2024
fad2445
Add CI pipeline to generate a new beta
mokagio Sep 11, 2024
76b1495
Create release backmerge as part of `new_beta_release`
mokagio Sep 11, 2024
a253155
Create backmerge PR for new beta
mokagio Sep 11, 2024
7c2f5dd
Use named block parameters in `new_hotfix_release` lane
mokagio Sep 11, 2024
1fc8223
Use named block parameters in `finalize_hotfix_release` lane
mokagio Sep 11, 2024
05f7b0f
Use named block parameters in `build_and_upload_release` lane
mokagio Sep 11, 2024
65f7877
Use named block parameters in `build_and_upload_internal` lane
mokagio Sep 11, 2024
5e59779
Use named block parameters in `update_metadata_on_app_store_connect` …
mokagio Sep 11, 2024
db50334
Remove deprecated `ios_*` actions from `new_hotfix_release`
mokagio Sep 11, 2024
eb050d1
Move `new_hotfix_release` to `release.rb`
mokagio Sep 11, 2024
2fad7e0
Move `finalize_hotfix_release` to `release.rb`
mokagio Sep 11, 2024
0f2f207
Remove deprecated `ios_*` actions from `finalize_hotfix_release`
mokagio Sep 11, 2024
a1c9481
Remove unused `build_and_upload_beta|stable_release|release` lanes
mokagio Sep 11, 2024
9ff5a06
Delete unused `build_and_upload_internal` lane
mokagio Sep 11, 2024
6eff98b
Remove deprecated `ios_get_app_version` from update ASC metadata lane
mokagio Sep 11, 2024
a7b3d5b
Remove deprecated `ios_current_branch_is_hotfix` from `finalize_release`
mokagio Sep 11, 2024
b4e2a68
Upgrade to release-toolkit 12.0
mokagio Sep 11, 2024
4d46250
Consolidate backmerge PR creation via single `release-toolkit` action
mokagio Sep 11, 2024
e9c41f0
Add lane to trigger new beta release in CI
mokagio Sep 11, 2024
6711daa
Remove noisy comment
mokagio Sep 11, 2024
67ac37c
Remove noisy comment
mokagio Sep 11, 2024
69d373e
Remove var assignment that became unnecessary along the way
mokagio Sep 11, 2024
6af72cb
Fix typo: `s/releas/release`
mokagio Sep 12, 2024
71bdb7f
Add required `.length` call in an array count check
mokagio Sep 12, 2024
05dd02e
Remove unused `ci_releases.rb` lanes
mokagio Sep 12, 2024
9da02d3
Remove code fencing from error message as it might mis-render
mokagio Sep 12, 2024
d1248f0
Remove import for removed lanes file
mokagio Sep 13, 2024
e48732f
Rename `code_freeze` to `start_code_freeze` for consistency
mokagio Sep 16, 2024
dfe03ce
Add CI automation for beta releases + automation improvements (#1661)
mokagio Sep 16, 2024
338525e
Use `start_code_freeze` in Buildkite pipeline
mokagio Sep 16, 2024
2f89dc0
Add additional entries to `RELEASE-NOTES.txt`
mokagio Sep 16, 2024
315d5f1
Bump version number
wpmobilebot Sep 16, 2024
7b59251
Delete previous version release notes before code freeze
wpmobilebot Sep 16, 2024
6c1b10b
Update draft release notes for 4.54.
wpmobilebot Sep 16, 2024
0e65e17
Release Notes: add new section for next version (4.55)
wpmobilebot Sep 16, 2024
e78730e
Freeze strings for localization
wpmobilebot Sep 16, 2024
bbb71c1
Update metadata strings
wpmobilebot Sep 16, 2024
9ae57be
Merge release/4.54 into trunk (#1662)
mokagio Sep 17, 2024
ee71ad1
Fix wrong plugin var in beta release pipeline
mokagio Sep 23, 2024
f1d9a50
Update app translations – `Localizable.strings`
wpmobilebot Sep 23, 2024
64c9741
Update App Store metadata translations
wpmobilebot Sep 23, 2024
5761479
Trim ar-SA keywords to be less than 100 characters
wpmobilebot Sep 23, 2024
a33c757
Bump version number
wpmobilebot Sep 23, 2024
d3e2599
Merge release/4.54 into trunk (#1664)
mokagio Sep 23, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
14 changes: 14 additions & 0 deletions .buildkite/commands/checkout-release-branch.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#!/bin/bash -eu

# We expect BUILDKITE_RELEASE_VERSION to be as an environment variable, e.g. by the automation that triggers the build on Buildkite.
# It must use the `BUILDKITE_` prefix to be passed to the agent due to how `hostmgr` works, in case this runs on a Mac agents.
if [[ -z "${BUILDKITE_RELEASE_VERSION}" ]]; then
echo "BUILDKITE_RELEASE_VERSION is not set."
exit 1
fi

# Buildkite, by default, checks out a specific commit.
# For many release actions, we need to be on a release branch instead.
BRANCH_NAME="release/${BUILDKITE_RELEASE_VERSION}"
git fetch origin "$BRANCH_NAME"
git checkout "$BRANCH_NAME"
8 changes: 8 additions & 0 deletions .buildkite/commands/configure-git-for-release-management.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#!/bin/bash -eu

# The Git command line client is not configured in Buildkite.
# At the moment, steps that need Git access can configure it on deman using this script.
# Later on, we should be able to configure it on the agent instead.
add_host_to_ssh_known_hosts github.com
git config --global user.email "[email protected]"
git config --global user.name "Automattic Release Bot"
8 changes: 2 additions & 6 deletions .buildkite/commands/release-build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,5 @@ install_cocoapods
echo "--- :closed_lock_with_key: Installing Secrets"
bundle exec fastlane run configure_apply

echo "--- :hammer_and_wrench: Build and Upload to App Store Connect"
bundle exec fastlane build_and_upload_to_app_store_connect \
skip_confirm:true \
skip_prechecks:true \
create_release:true \
beta_release:${1:-true} # use first call param, default to true for safety
echo "--- :hammer_and_wrench: Build for App Store Connect"
bundle exec fastlane build_for_app_store_connect
19 changes: 19 additions & 0 deletions .buildkite/commands/release-upload.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
#!/bin/bash -eu

echo "--- :arrow_down: Downloading Artifacts"
ARTIFACTS_DIR='build/results'
STEP=testflight_build
buildkite-agent artifact download "$ARTIFACTS_DIR/*.ipa" . --step $STEP
buildkite-agent artifact download "$ARTIFACTS_DIR/*.zip" . --step $STEP

echo "--- :rubygems: Setting up Gems"
install_gems

echo "--- :closed_lock_with_key: Installing Secrets"
bundle exec fastlane run configure_apply

echo "--- :hammer_and_wrench: Upload to App Store Connect"
bundle exec fastlane upload_to_app_store_connect \
skip_prechecks:true \
create_release:true \
"beta_release:${1:-true}" # use first call param, default to true for safety
45 changes: 31 additions & 14 deletions .buildkite/pipeline.yml
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
# Nodes with values to reuse in the pipeline.
common_params:
# Common plugin settings to use with the `plugins` key.
- &common_plugins
- automattic/a8c-ci-toolkit#3.0.1
# Common environment values to use with the `env` key.
- &common_env
IMAGE_ID: xcode-15.1
# yaml-language-server: $schema=https://raw.githubusercontent.com/buildkite/pipeline-schema/main/schema.json
---

# Variables used in this pipeline are defined in `shared-pipeline-vars`, which is `source`'d before calling `buildkite-agent pipeline upload`

agents:
queue: mac

env:
IMAGE_ID: $IMAGE_ID

# This is the default pipeline – it will build and test the app
steps:
Expand All @@ -15,18 +17,34 @@ steps:
#################
- label: "🔬 Build and Test"
command: ".buildkite/commands/build-and-test.sh"
env: *common_env
plugins: *common_plugins
plugins: [$CI_TOOLKIT_PLUGIN]
artifact_paths:
- "build/results/*"

#################
# Linters
#################
- label: "☢️ Danger - PR Check"
command: danger
key: danger
if: "build.pull_request.id != null"
retry:
manual:
permit_on_passed: true
agents:
queue: "linter"

- label: ":swift: SwiftLint"
command: swiftlint
agents:
queue: "linter"

#################
# Create Installable Build
#################
- label: "🛠 Installable Build"
command: ".buildkite/commands/build-prototype.sh"
env: *common_env
plugins: *common_plugins
plugins: [$CI_TOOLKIT_PLUGIN]
if: "build.pull_request.id != null || build.pull_request.draft"
artifact_paths:
- "build/results/*"
Expand All @@ -36,7 +54,6 @@ steps:
#################
- label: "🔬 UI Test (Full)"
command: ".buildkite/commands/build-and-ui-test.sh SimplenoteUITests 'iPhone SE (3rd generation)'"
env: *common_env
plugins: *common_plugins
plugins: [$CI_TOOLKIT_PLUGIN]
artifact_paths:
- "build/results/*"
30 changes: 16 additions & 14 deletions .buildkite/release-build.yml
Original file line number Diff line number Diff line change
@@ -1,20 +1,22 @@
# This pipeline is meant to be run via the Buildkite API, and is only used for release builds

# Nodes with values to reuse in the pipeline.
common_params:
# Common plugin settings to use with the `plugins` key.
- &common_plugins
- automattic/a8c-ci-toolkit#3.0.1
# Common environment values to use with the `env` key.
- &common_env
IMAGE_ID: xcode-15.1
env:
IMAGE_ID: $IMAGE_ID
agents:
queue: mac

steps:
- label: ":testflight: Build Simplenote iOS for App Store Connect"
key: testflight_build
command: .buildkite/commands/release-build.sh
priority: 1
plugins: [$CI_TOOLKIT_PLUGIN]
artifact_paths:
- build/results/*.zip
- build/results/*.ipa

- label: ":testflight: Simplenote iOS Release Build (App Store Connect)"
command: ".buildkite/commands/release-build.sh"
- label: ":testflight: Upload Simplenote iOS to App Store Connect"
depends_on: testflight_build
command: .buildkite/commands/release-upload.sh $BETA_RELEASE
priority: 1
env: *common_env
plugins: *common_plugins
plugins: [$CI_TOOLKIT_PLUGIN]
notify:
- slack: "#build-and-ship"
36 changes: 36 additions & 0 deletions .buildkite/release-pipelines/complete-code-freeze.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# yaml-language-server: $schema=https://raw.githubusercontent.com/buildkite/pipeline-schema/main/schema.json
---

# Variables used in this pipeline are defined in `shared-pipeline-vars`, which is `source`'d before calling `buildkite-agent pipeline upload`

env:
IMAGE_ID: $IMAGE_ID

# The code freeze completion needs to run on macOS because it uses genstrings under the hood.
agents:
queue: mac

steps:
- label: Complete Code Freeze
key: complete_code_freeze
plugins: [$CI_TOOLKIT_PLUGIN]
command: |
echo '--- :git: Configure Git for Release Management'
.buildkite/commands/configure-git-for-release-management.sh

echo '--- :git: Checkout release branch'
.buildkite/commands/checkout-release-branch.sh

echo '--- :ruby: Set up Ruby Tools'
install_gems

echo '--- :closed_lock_with_key: Access secrets'
bundle exec fastlane run configure_apply

echo '--- :shipit: Complete code freeze'
bundle exec fastlane complete_code_freeze skip_confirm:true
retry:
manual:
# If failed, we prefer retrying via ReleaseV2 rather than Buildkite.
# Rationale: ReleaseV2 is the source of truth for the process and track links to the various builds.
allowed: false
35 changes: 35 additions & 0 deletions .buildkite/release-pipelines/new-beta-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# yaml-language-server: $schema=https://raw.githubusercontent.com/buildkite/pipeline-schema/main/schema.json
---

agents:
queue: mac

# The new beta workflow needs to run on macOS because it uses SwiftGen under the hood.
#
# Notice that SwiftGen should work Linux, but we haven't tested it yet.
# One thing at a time...
env:
IMAGE_ID: $IMAGE_ID

steps:
- label: New Beta Release
plugins: [$CI_TOOLKIT_PLUGIN]
command: |
echo '--- :git: Configure Git for Release Management'
.buildkite/commands/configure-git-for-release-management.sh

echo '--- :git: Checkout Release Branch'
.buildkite/commands/checkout-release-branch.sh

echo '--- :ruby: Set up Ruby Tools'
install_gems

echo '--- :closed_lock_with_key: Access Secrets'
bundle exec fastlane run configure_apply

echo '--- :shipit: New Beta Release'
bundle exec fastlane new_beta_release skip_confirm:true
retry:
manual:
# If those jobs fail, one should always prefer re-triggering a new build from ReleaseV2 rather than retrying the individual job from Buildkite
allowed: false
25 changes: 25 additions & 0 deletions .buildkite/release-pipelines/start-code-freeze.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# yaml-language-server: $schema=https://raw.githubusercontent.com/buildkite/pipeline-schema/main/schema.json
---

# Variables used in this pipeline are defined in `shared-pipeline-vars`, which is `source`'d before calling `buildkite-agent pipeline upload`

steps:
- label: Start Code Freeze
plugins:
- $CI_TOOLKIT_PLUGIN
agents:
queue: tumblr-metal
command: |
echo '--- :robot_face: Use bot for Git operations'
source use-bot-for-git wpmobilebot

echo '--- :ruby: Setup Ruby Tools'
install_gems

echo '--- :shipit: Start code freeze'
bundle exec fastlane start_code_freeze skip_confirm:true
retry:
manual:
# If failed, we prefer retrying via ReleaseV2 rather than Buildkite.
# Rationale: ReleaseV2 is the source of truth for the process and track links to the various builds.
allowed: false
11 changes: 11 additions & 0 deletions .buildkite/shared-pipeline-vars
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#!/bin/sh

# This file is `source`'d before calling `buildkite-agent pipeline upload`, and can be used
# to set up some variables that will be interpolated in the `.yml` pipeline before uploading it.

# The ~> modifier is not currently used, but we check for it just in case
XCODE_VERSION=$(sed -E -n 's/^(~> )?(.*)/xcode-\2/p' .xcode-version)
export CI_TOOLKIT_PLUGIN_VERSION="3.4.2"

export IMAGE_ID="$XCODE_VERSION"
export CI_TOOLKIT_PLUGIN="automattic/a8c-ci-toolkit#$CI_TOOLKIT_PLUGIN_VERSION"
1 change: 1 addition & 0 deletions .bundle/config
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
---
BUNDLE_BUNDLE_SPECIFIC_PLATFORM: "false"
BUNDLE_PATH: "vendor/bundle"
BUNDLE_RETRY: "3"
BUNDLE_JOBS: "3"
5 changes: 0 additions & 5 deletions .configure
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,6 @@
"destination": "~/.configure/simplenote-ios/secrets/google_cloud_keys.json",
"encrypt": true
},
{
"file": "iOS/simplenote/project.env",
"destination": "~/.configure/simplenote-ios/secrets/project.env",
"encrypt": true
},
{
"file": "iOS/app_store_connect_fastlane_api_key.json",
"destination": "~/.configure/simplenote-ios/secrets/app_store_connect_fastlane_api_key.json",
Expand Down
17 changes: 17 additions & 0 deletions .github/workflows/run-danger.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
name: ☢️ Trigger Danger On Buildkite

on:
pull_request:
types: [labeled, unlabeled, milestoned, demilestoned, ready_for_review]

jobs:
dangermattic:
if: ${{ (github.event.pull_request.draft == false) }}
uses: Automattic/dangermattic/.github/workflows/[email protected]
with:
org-slug: "automattic"
pipeline-slug: "simplenote-ios"
retry-step-key: "danger"
build-commit-sha: "${{ github.event.pull_request.head.sha }}"
secrets:
buildkite-api-token: ${{ secrets.TRIGGER_BK_BUILD_TOKEN }}
7 changes: 0 additions & 7 deletions .hound.yml

This file was deleted.

29 changes: 29 additions & 0 deletions .rubocop.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
inherit_from: .rubocop_todo.yml

AllCops:
Exclude:
- DerivedData/**/*
- Pods/**/*
- vendor/**/*
NewCops: enable
SuggestExtensions:
rubocop-rake: false

Metrics/MethodLength:
Max: 30

Layout/LineLength:
Max: 180

Metrics/BlockLength:
Exclude: &xfiles
- fastlane/Fastfile
- fastlane/lanes/*.rb
- Rakefile

Style/HashSyntax:
EnforcedShorthandSyntax: never
# Used by UI test account methods. See https://github.com/Automattic/simplenote-ios/pull/1275 for more details.
Style/GlobalVars:
AllowedVariables:
- $used_test_account_index
40 changes: 40 additions & 0 deletions .rubocop_todo.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# This configuration was generated by
# `rubocop --auto-gen-config`
# on 2024-02-20 18:18:24 UTC using RuboCop version 1.60.2.
# The point is for the user to remove these configuration records
# one by one as the offenses are removed from the code base.
# Note that changes in the inspected code, or installation of new
# versions of RuboCop, may require this file to be generated again.

# Offense count: 2
# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: Max, AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, AllowedPatterns.
# URISchemes: http, https
Layout/LineLength:
Exclude:
- 'fastlane/Fastfile'

# Offense count: 6
# Configuration parameters: AllowedMethods.
# AllowedMethods: enums
Lint/ConstantDefinitionInBlock:
Exclude:
- 'fastlane/Fastfile'

# Offense count: 2
Lint/NonLocalExitFromIterator:
Exclude:
- 'Scripts/update-translations.rb'

# Offense count: 1
# Configuration parameters: MinNameLength, AllowNamesEndingInNumbers, AllowedNames, ForbiddenNames.
# AllowedNames: as, at, by, cc, db, id, if, in, io, ip, of, on, os, pp, to
Naming/MethodParameterName:
Exclude:
- 'Scripts/update-translations.rb'

# Offense count: 9
# Configuration parameters: AllowedVariables.
Style/GlobalVars:
Exclude:
- 'fastlane/Fastfile'
Loading