1

I am working on a ruby project that its intention, at the moment, is to automate the deploy process for an iOS project. In the future, android will be considered.

The ruby deploy file will take a JSON url that contains information about the apps intended to release. The Fastlane actions will do the job.

{
    "version":1.0,
    "build":2,
    "git":{
        "name":"appName",
        "url":"git@gitlab.com:me/myapp.git"
    },
    "apps":[
        {
            "bundle_id":"com.myapp1",
            "app_name":"App1",
            "username":"me@kmail.com",
            "password":"1234",
            "team_name":"TeamName"
        },
        {
            "bundle_id":"com.App2",
            "app_name":"App2",
            "username":"me@kmail.com",
            "password":"1234",
            "team_name":"TeamName"
        }
    ]
}

The initial idea for the project was to have:

  • The deploy project (Gemfile, files, dependencies ...) with its own git repository.
  • The Xcode project with its own repository.
  • A Fastlane project (with all the fastlane files) with its own repository
  • Correct setup
  • Xcode and Fastlane projects as submodules of deploy project.

This whole project is intended to be in a CI machine.

NOTE Ask for more info if needed.

Question

The deploy project calls fastlane actions using exec(). Since the fastlane folder now is in ./XcodeProject/fastlane, How can I call the actions? My first approach was:

exec("fastlane ./XcodeProject/MyAction")

but I am wrong...

Any ideas? Thank you

Reimond Hill
  • 4,278
  • 40
  • 52

1 Answers1

1

You may be able to temporarily change your working directory using a shell script, where you enclose your cd and fastlane commands in parentheses, like so:

(cd XcodeProject && fastlane MyAction)

I'm not sure if that will work within your exec(...) call but you could write an external script that does the above, and then run that within an exec call.

See this post for more information.

dooman
  • 60
  • 7