name: Update lock files on: workflow_dispatch: # Manual trigger pull_request: branches: - master jobs: pod-update: runs-on: macos-latest permissions: contents: write steps: - name: Checkout project uses: actions/checkout@v4 with: fetch-depth: 0 # Fetches all history - name: Specify node version uses: actions/setup-node@v4 with: node-version: 20 - uses: maxim-lobanov/setup-xcode@v1 with: xcode-version: 15.4 - name: Set up Ruby uses: ruby/setup-ruby@v1 with: ruby-version: 3.1.6 bundler-cache: true - name: Install dependencies with Bundler run: | bundle config path vendor/bundle bundle install --jobs 4 --retry 3 --quiet - name: Install node_modules run: npm install --production # Step 4: Install CocoaPods and update pods - name: Install CocoaPods Dependencies run: | cd ios pod install pod update # Step 5: Set up Git authentication to push changes - name: Set up Git Authentication env: ACCESS_TOKEN: ${{ secrets.LOCKFILES_WORKFLOW }} run: | git config --global credential.helper 'cache --timeout=3600' git config --global http.https://github.com/.extraheader "AUTHORIZATION: basic $(echo -n x-access-token:${ACCESS_TOKEN} | base64)" # Step 6: Commit and push changes for package-lock.json, Podfile.lock, and Gemfile.lock - name: Commit and create PR for dependency updates run: | git checkout -b pod-update-branch git add package-lock.json ios/Podfile.lock Gemfile.lock git commit -m "Update dependencies (npm, CocoaPods, Ruby gems)" git push origin pod-update-branch gh pr create --title "Pod and Dependency Update" --body "This PR updates npm, CocoaPods, and Ruby gem dependencies" --base master env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}