From 0c6f982b5e90a9e8f5cfda1a71e58cee4d2fa9bd Mon Sep 17 00:00:00 2001 From: Alexey Alter-Pesotskiy Date: Fri, 7 Jun 2024 11:14:55 +0100 Subject: [PATCH] Update release flow to be able to start the release from CI (#423) --- .github/actions/bootstrap/action.yml | 4 +- .github/actions/xcode-cache/action.yml | 2 +- .github/workflows/cron-checks.yml | 4 +- .github/workflows/smoke-checks.yml | 2 +- .github/workflows/start-new-release.yml | 30 +++++++ Gemfile.lock | 104 +++++++++++++----------- 6 files changed, 91 insertions(+), 55 deletions(-) create mode 100644 .github/workflows/start-new-release.yml diff --git a/.github/actions/bootstrap/action.yml b/.github/actions/bootstrap/action.yml index 2abfa5a9b..09e4b476e 100644 --- a/.github/actions/bootstrap/action.yml +++ b/.github/actions/bootstrap/action.yml @@ -8,14 +8,14 @@ runs: - run: echo "$HOME/.mint/bin" >> $GITHUB_PATH shell: bash - name: Cache Mint - uses: actions/cache@v3 + uses: actions/cache@v4 id: mint-cache with: path: ~/.mint key: ${{ env.IMAGE }}-mint-${{ hashFiles('**/Mintfile') }} restore-keys: ${{ env.IMAGE }}-mint- - name: Cache brew - uses: actions/cache@v3 + uses: actions/cache@v4 id: brew-cache with: path: | diff --git a/.github/actions/xcode-cache/action.yml b/.github/actions/xcode-cache/action.yml index 027e1fc1d..0a66ca1b1 100644 --- a/.github/actions/xcode-cache/action.yml +++ b/.github/actions/xcode-cache/action.yml @@ -8,7 +8,7 @@ runs: - run: echo "$HOME/.mint/bin" >> $GITHUB_PATH shell: bash - name: Cache SPM - uses: actions/cache@v3 + uses: actions/cache@v4 id: spm-cache with: path: spm_cache diff --git a/.github/workflows/cron-checks.yml b/.github/workflows/cron-checks.yml index cfbf18003..93cfdda8c 100644 --- a/.github/workflows/cron-checks.yml +++ b/.github/workflows/cron-checks.yml @@ -74,7 +74,7 @@ jobs: INSTALL_VIDEO_BUDDY: true INSTALL_YEETD: true - name: Cache iOS Simulator Runtime - uses: actions/cache@v3 + uses: actions/cache@v4 id: runtime-cache with: path: ~/Downloads/*.dmg @@ -166,7 +166,7 @@ jobs: env: INSTALL_YEETD: true - name: Cache iOS Simulator Runtime - uses: actions/cache@v3 + uses: actions/cache@v4 id: runtime-cache with: path: ~/Downloads/*.dmg diff --git a/.github/workflows/smoke-checks.yml b/.github/workflows/smoke-checks.yml index 8e40bba65..4aa51e707 100644 --- a/.github/workflows/smoke-checks.yml +++ b/.github/workflows/smoke-checks.yml @@ -28,7 +28,7 @@ concurrency: env: HOMEBREW_NO_INSTALL_CLEANUP: 1 # Disable cleanup for homebrew, we don't need it on CI - IOS_SIMULATOR_DEVICE: "iPhone 15 Pro (17.2)" + IOS_SIMULATOR_DEVICE: "iPhone 15 Pro (17.4)" jobs: build-test-app-and-frameworks: diff --git a/.github/workflows/start-new-release.yml b/.github/workflows/start-new-release.yml new file mode 100644 index 000000000..1f434bee8 --- /dev/null +++ b/.github/workflows/start-new-release.yml @@ -0,0 +1,30 @@ +name: "Start new release" + +on: + workflow_dispatch: + inputs: + version: + description: 'Release version' + type: string + required: true + +jobs: + test-release: + name: Start new release + runs-on: macos-14 + steps: + - name: Install Bot SSH Key + uses: webfactory/ssh-agent@v0.7.0 + with: + ssh-private-key: ${{ secrets.BOT_SSH_PRIVATE_KEY }} + - uses: actions/checkout@v4.1.1 + with: + fetch-depth: 0 # to fetch git tags + - uses: ./.github/actions/ruby-cache + - uses: ./.github/actions/xcode-cache + - name: Create Release PR + run: bundle exec fastlane release version:"${{ github.event.inputs.version }}" --verbose + env: + GITHUB_TOKEN: ${{ secrets.CI_BOT_GITHUB_TOKEN }} + MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }} + APPSTORE_API_KEY: ${{ secrets.APPSTORE_API_KEY }} diff --git a/Gemfile.lock b/Gemfile.lock index a3f5f0582..585f5d89f 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,9 +1,11 @@ GEM remote: https://rubygems.org/ specs: - CFPropertyList (3.0.6) + CFPropertyList (3.0.7) + base64 + nkf rexml - activesupport (7.1.3) + activesupport (7.1.3.3) base64 bigdecimal concurrent-ruby (~> 1.0, >= 1.0.2) @@ -18,21 +20,21 @@ GEM algoliasearch (1.27.5) httpclient (~> 2.8, >= 2.8.3) json (>= 1.5.1) - artifactory (3.0.15) + artifactory (3.0.17) ast (2.4.2) atomos (0.1.3) aws-eventstream (1.3.0) - aws-partitions (1.885.0) - aws-sdk-core (3.191.0) + aws-partitions (1.937.0) + aws-sdk-core (3.196.1) aws-eventstream (~> 1, >= 1.3.0) aws-partitions (~> 1, >= 1.651.0) aws-sigv4 (~> 1.8) jmespath (~> 1, >= 1.6.1) - aws-sdk-kms (1.77.0) - aws-sdk-core (~> 3, >= 3.191.0) + aws-sdk-kms (1.82.0) + aws-sdk-core (~> 3, >= 3.193.0) aws-sigv4 (~> 1.1) - aws-sdk-s3 (1.143.0) - aws-sdk-core (~> 3, >= 3.191.0) + aws-sdk-s3 (1.151.0) + aws-sdk-core (~> 3, >= 3.194.0) aws-sdk-kms (~> 1) aws-sigv4 (~> 1.8) aws-sigv4 (1.8.0) @@ -43,17 +45,17 @@ GEM fastlane (>= 2.0) mini_magick (>= 4.9.4, < 5.0.0) base64 (0.2.0) - bigdecimal (3.1.6) + bigdecimal (3.1.8) claide (1.1.0) claide-plugins (0.9.2) cork nap open4 (~> 1.3) clamp (1.3.2) - cocoapods (1.15.0) + cocoapods (1.15.2) addressable (~> 2.8) claide (>= 1.0.2, < 2.0) - cocoapods-core (= 1.15.0) + cocoapods-core (= 1.15.2) cocoapods-deintegrate (>= 1.0.3, < 2.0) cocoapods-downloader (>= 2.1, < 3.0) cocoapods-plugins (>= 1.0.0, < 2.0) @@ -68,7 +70,7 @@ GEM nap (~> 1.0) ruby-macho (>= 2.3.0, < 3.0) xcodeproj (>= 1.23.0, < 2.0) - cocoapods-core (1.15.0) + cocoapods-core (1.15.2) activesupport (>= 5.0, < 8) addressable (~> 2.8) algoliasearch (~> 1.0) @@ -92,11 +94,11 @@ GEM colored2 (3.1.2) commander (4.6.0) highline (~> 2.0.0) - concurrent-ruby (1.2.3) + concurrent-ruby (1.3.1) connection_pool (2.4.1) cork (0.3.0) colored2 (~> 3.1) - danger (9.4.2) + danger (9.4.3) claide (~> 1.0) claide-plugins (>= 0.9.2) colored2 (~> 3.1) @@ -118,13 +120,12 @@ GEM rake (>= 12.0.0, < 14.0.0) domain_name (0.6.20240107) dotenv (2.8.1) - drb (2.2.0) - ruby2_keywords + drb (2.2.1) emoji_regex (3.2.3) escape (0.0.4) ethon (0.16.0) ffi (>= 1.15.0) - excon (0.109.0) + excon (0.110.0) faraday (1.10.3) faraday-em_http (~> 1.0) faraday-em_synchrony (~> 1.0) @@ -155,15 +156,15 @@ GEM faraday-retry (1.0.3) faraday_middleware (1.2.0) faraday (~> 1.0) - fastimage (2.3.0) - fastlane (2.219.0) + fastimage (2.3.1) + fastlane (2.220.0) CFPropertyList (>= 2.3, < 4.0.0) addressable (>= 2.8, < 3.0.0) artifactory (~> 3.0) aws-sdk-s3 (~> 1.0) babosa (>= 1.0.3, < 2.0.0) bundler (>= 1.12.0, < 3.0.0) - colored + colored (~> 1.2) commander (~> 4.6) dotenv (>= 2.1.1, < 3.0.0) emoji_regex (>= 0.1, < 4.0) @@ -184,10 +185,10 @@ GEM mini_magick (>= 4.9.4, < 5.0.0) multipart-post (>= 2.0.0, < 3.0.0) naturally (~> 2.2) - optparse (>= 0.1.1) + optparse (>= 0.1.1, < 1.0.0) plist (>= 3.1.0, < 4.0.0) rubyzip (>= 2.0.0, < 3.0.0) - security (= 0.1.3) + security (= 0.1.5) simctl (~> 1.6.3) terminal-notifier (>= 2.0.0, < 3.0.0) terminal-table (~> 3) @@ -196,7 +197,7 @@ GEM word_wrap (~> 1.0.0) xcodeproj (>= 1.13.0, < 2.0.0) xcpretty (~> 0.3.0) - xcpretty-travis-formatter (>= 0.0.3) + xcpretty-travis-formatter (>= 0.0.3, < 2.0.0) fastlane-plugin-create_xcframework (1.1.2) fastlane-plugin-lizard (1.3.3) bundler @@ -228,12 +229,12 @@ GEM google-apis-core (>= 0.11.0, < 2.a) google-apis-storage_v1 (0.31.0) google-apis-core (>= 0.11.0, < 2.a) - google-cloud-core (1.6.1) + google-cloud-core (1.7.0) google-cloud-env (>= 1.0, < 3.a) google-cloud-errors (~> 1.0) google-cloud-env (1.6.0) faraday (>= 0.17.3, < 3.0) - google-cloud-errors (1.3.1) + google-cloud-errors (1.4.0) google-cloud-storage (1.47.0) addressable (~> 2.8) digest-crc (~> 0.4) @@ -252,9 +253,9 @@ GEM http-cookie (1.0.5) domain_name (~> 0.5) httpclient (2.8.3) - i18n (1.14.1) + i18n (1.14.5) concurrent-ruby (~> 1.0) - jazzy (0.14.4) + jazzy (0.15.0) cocoapods (~> 1.5) mustache (~> 1.1) open4 (~> 1.3) @@ -265,21 +266,22 @@ GEM sqlite3 (~> 1.3) xcinvoke (~> 0.3.0) jmespath (1.6.2) - json (2.7.1) - jwt (2.7.1) + json (2.7.2) + jwt (2.8.1) + base64 kramdown (2.4.0) rexml kramdown-parser-gfm (1.1.0) kramdown (~> 2.0) liferaft (0.0.6) - method_source (1.0.0) + method_source (1.1.0) mini_magick (4.12.0) mini_mime (1.1.5) - mini_portile2 (2.8.5) - minitest (5.21.2) + mini_portile2 (2.8.6) + minitest (5.23.1) molinillo (0.8.0) multi_json (1.15.0) - multipart-post (2.3.0) + multipart-post (2.4.1) mustache (1.1.1) mustermann (3.0.0) ruby2_keywords (~> 0.0.1) @@ -288,19 +290,21 @@ GEM nap (1.1.0) naturally (2.2.1) netrc (0.11.0) - nio4r (2.7.0) + nio4r (2.7.3) + nkf (0.2.0) no_proxy_fix (0.1.2) - nokogiri (1.16.0) + nokogiri (1.16.5) mini_portile2 (~> 2.8.2) racc (~> 1.4) - octokit (8.0.0) + octokit (8.1.0) + base64 faraday (>= 1, < 3) sawyer (~> 0.9) open4 (1.3.4) - optparse (0.4.0) + optparse (0.5.0) os (1.1.4) parallel (1.24.0) - parser (3.3.0.5) + parser (3.3.2.0) ast (~> 2.4.1) racc plist (3.7.1) @@ -310,8 +314,8 @@ GEM public_suffix (4.0.7) puma (6.4.2) nio4r (~> 2.0) - racc (1.7.3) - rack (3.0.9) + racc (1.8.0) + rack (3.0.11) rack-protection (4.0.0) base64 (>= 0.1.0) rack (>= 3.0.0, < 4) @@ -321,16 +325,17 @@ GEM rack (>= 3) webrick (~> 1.8) rainbow (3.1.1) - rake (13.1.0) + rake (13.2.1) rchardet (1.8.0) redcarpet (3.6.0) - regexp_parser (2.9.0) + regexp_parser (2.9.2) representable (3.2.0) declarative (< 0.1.0) trailblazer-option (>= 0.1.1, < 0.2.0) uber (< 0.2.0) retriable (3.1.2) - rexml (3.2.6) + rexml (3.2.8) + strscan (>= 3.0.9) rouge (2.0.7) rubocop (1.38.0) json (~> 2.3) @@ -342,8 +347,8 @@ GEM rubocop-ast (>= 1.23.0, < 2.0) ruby-progressbar (~> 1.7) unicode-display_width (>= 1.4.0, < 3.0) - rubocop-ast (1.30.0) - parser (>= 3.2.1.0) + rubocop-ast (1.31.3) + parser (>= 3.3.1.0) rubocop-performance (1.19.1) rubocop (>= 1.7.0, < 2.0) rubocop-ast (>= 0.4.0) @@ -358,8 +363,8 @@ GEM sawyer (0.9.2) addressable (>= 2.3.5) faraday (>= 0.17.3, < 3) - security (0.1.3) - signet (0.18.0) + security (0.1.5) + signet (0.19.0) addressable (~> 2.8) faraday (>= 0.17.5, < 3.a) jwt (>= 1.5, < 3.0) @@ -379,8 +384,9 @@ GEM clamp (~> 1.3) nokogiri (>= 1.14.3) xcodeproj (~> 1.21) - sqlite3 (1.7.2) + sqlite3 (1.7.3) mini_portile2 (~> 2.8.0) + strscan (3.1.0) terminal-notifier (2.0.0) terminal-table (3.0.2) unicode-display_width (>= 1.1.1, < 3)