mirror of
https://github.com/selfxyz/self.git
synced 2026-01-08 06:14:07 -05:00
* use yarn 4.12.0 * upgrade tsx * update 4.6.0 references to 4.12.0 * update lock file * update lock file * update lock
103 lines
3.0 KiB
YAML
103 lines
3.0 KiB
YAML
name: Setup Mobile Environment
|
|
|
|
description: "Sets up the environment for mobile app builds"
|
|
|
|
inputs:
|
|
app_path:
|
|
description: "Path to the app directory"
|
|
required: true
|
|
node_version:
|
|
description: "Node version"
|
|
required: true
|
|
ruby_version:
|
|
description: "Ruby version"
|
|
required: true
|
|
workspace:
|
|
description: "Workspace directory path"
|
|
required: true
|
|
|
|
runs:
|
|
using: "composite"
|
|
steps:
|
|
- name: Install locales and dialog for local development
|
|
if: ${{ env.ACT }}
|
|
shell: bash
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y locales dialog unzip
|
|
|
|
# for fastlane
|
|
- name: Install locales and dialog
|
|
if: runner.os != 'macOS'
|
|
shell: bash
|
|
run: |
|
|
sudo locale-gen en_US.UTF-8
|
|
sudo update-locale LANG=en_US.UTF-8
|
|
|
|
- name: Setup Ruby environment
|
|
uses: ruby/setup-ruby@v1
|
|
with:
|
|
ruby-version: ${{ inputs.ruby_version }}
|
|
|
|
- name: Setup Node.js environment
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: ${{ inputs.node_version }}
|
|
|
|
- name: Configure bundler
|
|
shell: bash
|
|
run: |
|
|
cd ${{ inputs.app_path }}
|
|
bundle config set --local path 'vendor/bundle'
|
|
bundle config set --local deployment 'true'
|
|
echo "✅ Bundler configured for strict mode (deployment=true)"
|
|
|
|
- name: Install app dependencies
|
|
shell: bash
|
|
run: |
|
|
cd ${{ inputs.app_path }}
|
|
|
|
# Configure Yarn
|
|
corepack enable
|
|
yarn set version 4.12.0
|
|
|
|
echo "📦 Installing JavaScript dependencies with strict lock file..."
|
|
if ! yarn install --immutable --inline-builds; then
|
|
echo ""
|
|
echo "❌ ERROR: yarn.lock is out of date!"
|
|
echo ""
|
|
echo "This happens when package.json was modified but yarn.lock wasn't updated."
|
|
echo ""
|
|
echo "To fix this:"
|
|
echo " 1. Run 'yarn install' locally in the app directory"
|
|
echo " 2. Commit the updated yarn.lock file"
|
|
echo " 3. Push your changes"
|
|
echo ""
|
|
echo "This ensures everyone has the exact same dependency versions."
|
|
exit 1
|
|
fi
|
|
|
|
# Run mobile-specific installation
|
|
yarn install-app:mobile-deploy
|
|
|
|
- name: Install Ruby dependencies
|
|
shell: bash
|
|
run: |
|
|
cd ${{ inputs.app_path }}
|
|
# Install Ruby gems with bundler (respecting cache)
|
|
echo "📦 Installing Ruby gems with strict lock file..."
|
|
if ! bundle install --jobs 4 --retry 3; then
|
|
echo ""
|
|
echo "❌ ERROR: Gemfile.lock is out of date!"
|
|
echo ""
|
|
echo "This happens when Gemfile was modified but Gemfile.lock wasn't updated."
|
|
echo ""
|
|
echo "To fix this:"
|
|
echo " 1. Run 'bundle install' locally in the app directory"
|
|
echo " 2. Commit the updated Gemfile.lock file"
|
|
echo " 3. Push your changes"
|
|
echo ""
|
|
echo "This ensures everyone has the exact same gem versions."
|
|
exit 1
|
|
fi
|