Skip to content

Production Deploy

Production Deploy #8

name: Production Deploy
on:
workflow_dispatch:
inputs:
publish_to_play_store:
required: false
default: false
description: Publish to Play Store?
type: boolean
release:
types: [ released ]
env:
SUPPLY_UPLOAD_MAX_RETRIES: 5
jobs:
play_promote_production:
name: Play Publish Production
if: ${{ inputs.publish_to_play_store == true }}
runs-on: ubuntu-latest
permissions:
contents: read
id-token: write
steps:
- uses: actions/checkout@v4
- name: Configure Ruby
uses: ruby/setup-ruby@a2bbe5b1b236842c1cb7dd11e8e3b51e0a616acc # v1.202.0
with:
bundler-cache: false
# Create and set permissions for vendor directory
- name: Set up vendor directory
run: |
mkdir -p vendor/bundle
chmod -R 777 vendor/bundle
sudo chown -R $USER:$USER vendor/bundle
- name: Install Bundler
run: |
gem install bundler -v 2.5.18
# Install gems with explicit permissions
- name: Bundle Install
run: |
bundle config set --local path 'vendor/bundle'
bundle config set --local deployment 'true'
bundle install --jobs 4 --retry 3
- uses: ./.github/actions/inflate-secrets
name: Inflate Secrets
with:
keystore: ${{ secrets.ORIGINAL_KEYSTORE_FILE }}
google-services: ${{ secrets.GOOGLESERVICES }}
playstore-creds: ${{ secrets.PLAYSTORECREDS }}
firebase-creds: ${{ secrets.FIREBASECREDS }}
# Add permissions check before running fastlane
- name: Check Permissions
run: |
ls -la vendor/bundle
whoami
groups
- name: Promote Beta to Production Play Store
run: |
which ruby
ruby -v
which bundle
bundle -v
bundle exec which fastlane
bundle exec fastlane check_version